anchor.diff:              Result
       end.      
   
  +have_module_permission(SKey, Module, Operation) ->
  +    case get_permission_cache(SKey, {module,Module,Operation}) of
  +        true ->         true;
  +        false ->        false;
  +        no_exists ->
  +            Result = imem_seco:have_permission(SKey, {module,Module,Operation}),
  +            set_permission_cache(SKey, {module,Module,Operation}, Result),
  +            Result
  +    end.      
  +
   %% ------- local private security extension for sql and tables (do not export!!) ------------
   
   seco_authorized(SKey) -> 
  
positive.code:         ]).
  
  -export([ have_table_permission/3   %% includes table ownership and readonly
          , have_permission/2    
          ]).
  
  
negative.code: admin_exec(SKey, imem_role, Function, Params) ->
      admin_apply(SKey, imem_role, Function, Params, [manage_accounts, manage_system]);
  admin_exec(SKey, Module, Function, Params) ->
      admin_apply(SKey, Module, Function, Params, [manage_system,{module,Module,execute}]).
  
  admin_apply(SKey, Module, Function, Params, Permissions) ->
      case imem_seco:have_permission(SKey, Permissions) of
  