diff --git a/addons/base_setup/res_config_view.xml b/addons/base_setup/res_config_view.xml index 6067af0ca52..a18fbce50e4 100644 --- a/addons/base_setup/res_config_view.xml +++ b/addons/base_setup/res_config_view.xml @@ -114,7 +114,7 @@ form inline - + diff --git a/addons/web_settings_dashboard/views/dashboard_views.xml b/addons/web_settings_dashboard/views/dashboard_views.xml index 3bf85772f4b..2a051860708 100644 --- a/addons/web_settings_dashboard/views/dashboard_views.xml +++ b/addons/web_settings_dashboard/views/dashboard_views.xml @@ -4,5 +4,5 @@ Dashboard web_settings_dashboard.main - + diff --git a/openerp/addons/base/base_menu.xml b/openerp/addons/base/base_menu.xml index e8e33230148..bdacce6ff4c 100644 --- a/openerp/addons/base/base_menu.xml +++ b/openerp/addons/base/base_menu.xml @@ -11,7 +11,7 @@ icon="fa-cog" web_icon="base,static/description/settings.png" sequence="500" - groups="base.group_system"/> + groups="base.group_erp_manager"/> diff --git a/openerp/addons/base/res/res_security.xml b/openerp/addons/base/res/res_security.xml index a5f7550492c..35c0c5e4521 100644 --- a/openerp/addons/base/res/res_security.xml +++ b/openerp/addons/base/res/res_security.xml @@ -11,12 +11,26 @@ - - - company rule + + + company rule portal - - + + + [('id','child_of',[user.company_id.id])] + + + company rule employee + + + + [('id','child_of',[user.company_id.id])] + + + company rule public + + + [('id','child_of',[user.company_id.id])] diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index 00f30c4bc83..c657e3ba847 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -183,7 +183,7 @@ class Users(models.Model): return (default_user or self.env['res.users']).groups_id def _companies_count(self): - return self.env['res.company'].search_count([]) + return self.env['res.company'].sudo().search_count([]) partner_id = fields.Many2one('res.partner', required=True, ondelete='restrict', auto_join=True, string='Related Partner', help='Partner-related data of the user') @@ -674,7 +674,8 @@ class GroupsView(models.Model): @api.multi def write(self, values): res = super(GroupsView, self).write(values) - self._update_user_groups_view() + if 'category_id' in values: + self._update_user_groups_view() # ir_values.get_actions() depends on action records self.env['ir.values'].clear_caches() return res diff --git a/openerp/addons/base/security/ir.model.access.csv b/openerp/addons/base/security/ir.model.access.csv index 21a18587c18..1736580b147 100644 --- a/openerp/addons/base/security/ir.model.access.csv +++ b/openerp/addons/base/security/ir.model.access.csv @@ -17,7 +17,7 @@ "access_ir_model_data_all","ir_model_data all","model_ir_model_data",,1,0,0,0 "access_ir_model_data_user","ir_model_data user","model_ir_model_data",base.group_user,1,0,1,0 "access_ir_model_fields_all","ir_model_fields all","model_ir_model_fields",,1,0,0,0 -"access_ir_module_category_group_user","ir_module_category group_user","model_ir_module_category","group_system",1,0,0,0 +"access_ir_module_category_group_user","ir_module_category group_user","model_ir_module_category","group_erp_manager",1,0,0,0 "access_ir_module_module_group_user","ir_module_module group_user","model_ir_module_module","group_system",1,1,1,1 "access_ir_module_module_dependency_group_system","ir_module_module_dependency group_system","model_ir_module_module_dependency","group_system",1,1,1,1 "access_ir_property_group_user","ir_property group_user","model_ir_property",,1,0,0,0 diff --git a/openerp/addons/base/tests/test_ir_rule.yml b/openerp/addons/base/tests/test_ir_rule.yml index 82e8b0c14a7..02fc2e3d3b4 100644 --- a/openerp/addons/base/tests/test_ir_rule.yml +++ b/openerp/addons/base/tests/test_ir_rule.yml @@ -124,7 +124,7 @@ Modify the global rule on res_company which triggers a recursive check of the rules on company. - - !record {model: ir.rule, id: res_company_rule}: + !record {model: ir.rule, id: res_company_rule_employee}: domain_force: "[('id','child_of',[user.company_id.id])]" - Read as demo user the partners (exercising the global company rule).