diff --git a/bin/addons/__init__.py b/bin/addons/__init__.py index e008c20b66f..920567b0bdb 100644 --- a/bin/addons/__init__.py +++ b/bin/addons/__init__.py @@ -273,28 +273,13 @@ def load_module_graph(cr, graph, status=None, **kwargs): cr.execute('update ir_module_module set demo=%s where name=%s', (True, package.name)) package_todo.append(package.name) cr.execute("update ir_module_module set state='installed' where state in ('to upgrade', 'to install') and name=%s", (package.name,)) - - # check if all model of the module have at least a access rule. - # TODO: improve this query which is very slow !!! - cr.execute(""" SELECT name - FROM ir_model m - WHERE EXISTS (SELECT 1 - FROM ir_model_data - WHERE module = %s - AND model = m.name - ) - AND NOT EXISTS (SELECT 1 - FROM ir_model_access - WHERE model_id = m.id - ) - """, (m,)) - - for (model,) in cr.fetchall(): - logger.notifyChannel('init', netsvc.LOG_WARNING, 'addon:%s:object %s has no access rules!' % (m,model,)) - cr.commit() statusi+=1 + cr.execute("""select model,name from ir_model where id not in (select model_id from ir_model_access)""") + for (model,name) in cr.fetchall(): + logger.notifyChannel('init', netsvc.LOG_WARNING, 'addon:object %s (%s) has no access rules!' % (model,name)) + pool = pooler.get_pool(cr.dbname) cr.execute('select * from ir_model where state=%s', ('manual',)) for model in cr.dictfetchall(): diff --git a/bin/addons/base/base_security.xml b/bin/addons/base/base_security.xml index 2f9b2dcc18b..7e498a60256 100644 --- a/bin/addons/base/base_security.xml +++ b/bin/addons/base/base_security.xml @@ -6,11 +6,11 @@ Users Groups --> - System + Administrator / Configuration - ERP Manager + Administrator / Access Rights @@ -21,20 +21,12 @@ Account Manager - - Request - - - - Cron Jobs - - - Extended View + Useability / Extended View - No One + Useability / No One