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