anchor.diff:      		Vis -> 
       		    CurrVis = case Id of 
       		                insert_rsc -> ?ACL_VIS_USER;
  -    		                _ -> m_rsc:p(Id, visible_for, Context)
  +    		                _ -> m_rsc:p_no_acl(Id, visible_for, Context)
       		              end,
       		    NewVis = z_convert:to_integer(Vis),
       		    case NewVis < CurrVis of
  
positive.code: can_edit(_Id, #context{acl=undefined}) ->
      undefined;
  can_edit(Id, #context{user_id=UserId, acl=#acl_user{only_update_own=true}} = Context) when UserId /= undefined ->
      case m_rsc:p(Id, creator_id, Context) of
          UserId -> true;
          _ -> undefined
      end;
  can_edit(Id, #context{acl=Acl} = Context) ->
      IsA = m_rsc:p(Id, is_a, Context),
      can_edit1(IsA, Acl#acl_user.categories).
  
      can_edit1([], _Allowed) -> undefined;
  
negative.code: observe({acl_is_allowed, insert, Cat}, Context) when is_atom(Cat) -> 
      can_insert(Cat, Context);
  observe({acl_is_allowed, update, Id}, Context) when is_integer(Id) ->
  	case m_rsc:p_no_acl(Id, is_authoritative, Context) of
  		true -> can_edit(Id, Context);
  		_ -> undefined
  	end;
  