TIP: You can type at any time to perform a new search.
Role Policy
role_policy · OCA/role-policy
- Repository
- OCA/role-policy · module folder · Try on Runboat
- Module version
- 1.3.0
- Category
- Tools
- Folder size
- 0.25 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/role-policy
- Last tracking update
- 2026-08-07 07:38:33
- Authors
- Noviat, Odoo Community Association (OCA)
- Maintainers
- Noviat, Odoo Community Association (OCA)
- Committers
- Els Van Vossel, GitHub, Luc De Meyer, OCA-git-bot, oca-travis, Kevin Graveman, oca-ci, s j
- Odoo dependencies
- Python dependencies
- lxml, xlrd
- System dependencies
- None
- Required by
- role_policy_account, role_policy_demo, role_policy_hr, role_policy_sale
- Description
Code Analysis ⓘ
Views touched (28)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
act_report_xml_view |
ir.actions.report.form | ir.actions.report | form | Inherits base.act_report_xml_view |
assets_backend |
amlse assets | ir.ui.view | qweb | Inherits web.assets_backend |
edit_menu_access |
ir.ui.menu.form | ir.ui.menu | form | Inherits base.edit_menu_access |
ir_actions_client_view_form |
ir.actions.client.form | ir.actions.client | form | New |
ir_actions_client_view_search |
ir.actions.client.search | ir.actions.client | search | New |
ir_actions_client_view_tree |
ir.actions.client.tree | ir.actions.client | tree | New |
res_role_acl_view_search |
res.role.acl.search | res.role.acl | search | New |
res_role_acl_view_tree |
res.role.acl.tree | res.role.acl | tree | New |
res_role_view_form |
res.role.form | res.role | form | New |
res_role_view_search |
res.role.search | res.role | search | New |
res_role_view_tree |
res.role.tree | res.role | tree | New |
role_policy_import_view_form |
role.policy.import.form | role.policy.import | form | New |
role_policy_import_view_form_result |
role.policy.import.form.result | role.policy.import | form | New |
security_policy_tag_view_form |
security.policy.tag.form | security.policy.tag | form | New |
security_policy_tag_view_search |
security.policy.tag.search | security.policy.tag | search | New |
security_policy_tag_view_tree |
security.policy.tag.tree | security.policy.tag | tree | New |
view_groups_form |
res.groups.search | res.groups | search | Inherits base.view_groups_form |
view_groups_search |
res.groups.search | res.groups | search | Inherits base.view_groups_search |
view_model_operation_view_search |
view.model.operation.search | view.model.operation | search | New |
view_model_operation_view_tree |
view.model.operation.tree | view.model.operation | tree | New |
view_modifier_rule_view_search |
view.modifier.rule.search | view.modifier.rule | search | New |
view_modifier_rule_view_tree |
view.modifier.rule.tree | view.modifier.rule | tree | New |
view_server_action_form |
ir.actions.server.form | ir.actions.server | form | Inherits base.view_server_action_form |
view_type_attribute_view_search |
view.type.attribute.search | view.type.attribute | search | New |
view_type_attribute_view_tree |
view.type.attribute.tree | view.type.attribute | tree | New |
view_users_form |
res.users.form | res.users | form | Inherits base.view_users_form |
view_users_form_simple_modif |
res.users.preferences.form | res.users | form | Inherits base.view_users_form_simple_modif |
view_window_action_form |
ir.actions.windows.form | ir.actions.act_window | form | Inherits base.view_window_action_form |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (22)
New fields (0)
No new fields.
Public methods (1)-
user_has_groups(self, groups)@api.modelDisable no-role groups except for user_admin & user_root.
New fields (1)
-
role_idsMany2many → res.rolecolumn1='act_window_id'column2='role_id'comodel_name='res.role'relation='res_role_act_window_rel'string='Roles'
No public methods.
New fields (0)
No new fields.
Public methods (1)-
get_bindings(self, model_name)@api.model
New fields (1)
-
role_idsMany2many → res.rolecolumn1='act_client_id'column2='role_id'comodel_name='res.role'relation='res_role_client_rel'string='Roles'
No public methods.
New fields (1)
-
role_idsMany2many → res.rolecolumn1='act_report_id'column2='role_id'comodel_name='res.role'relation='res_role_report_rel'string='Roles'
No public methods.
New fields (1)
-
role_idsMany2many → res.rolecolumn1='act_server_id'column2='role_id'comodel_name='res.role'relation='res_role_server_rel'string='Roles'
No public methods.
New fields (0)
No new fields.
Public methods (1)-
session_info(self)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (1)
-
role_idsMany2many → res.rolecolumn1='menu_id'column2='role_id'comodel_name='res.role'relation='res_role_menu_rel'string='Roles'
No public methods.
New fields (0)
No new fields.
Public methods (5)-
apply_inheritance_specs(self, source, specs_tree, inherit_id, pre_locate=<expr>)@api.modelAvoid raise for syntax errors in web modifier rules. Those errors are logged into the logfile, cf. base/models/ir.ui.view.py, method raise_view_error: _logger.info(message) -
create(self, vals_list)@api.model_create_multi -
get_inheriting_views_arch(self, view_id, model)@api.model -
read_combined(self, fields=None) -
write(self, vals)
New fields (6)
-
activeBooleandefault=True -
company_idMany2one → res.companycomodel_name='res.company'related='role_id.company_id'store=True -
methodCharcompute='_compute_model_method'help='Grant execution right for this method.'store=Truestring='Method' -
model_idMany2one → ir.modelcomodel_name='ir.model'compute='_compute_model_method'store=Truestring='Model' -
nameSelectionrequireed=Trueselection='_selection_name' -
role_idMany2one → res.rolecomodel_name='res.role'required=Truestring='Role'
-
check_right(self, name, raise_exception=True)@api.model
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (1)
-
roleBoolean
No public methods.
New fields (17)
-
acl_idsOne2many → res.role.aclcomodel_name='res.role.acl'inverse_name='role_id'string='ACL Items' -
act_client_idsMany2many → ir.actions.clientcolumn1='role_id'column2='act_client_id'comodel_name='ir.actions.client'relation='res_role_client_rel'string='Client Actions' -
act_report_idsMany2many → ir.actions.reportcolumn1='role_id'column2='act_report_id'comodel_name='ir.actions.report'relation='res_role_act_report_rel'string='Report Actions' -
act_server_idsMany2many → ir.actions.servercolumn1='role_id'column2='act_server_id'comodel_name='ir.actions.server'relation='res_role_act_server_rel'string='Server Actions' -
act_window_idsMany2many → ir.actions.act_windowcolumn1='role_id'column2='act_window_id'comodel_name='ir.actions.act_window'relation='res_role_act_window_rel'string='Window Actions' -
activeBooleandefault=True -
codeCharrequired=Truesize=5 -
company_idMany2one → res.companycomodel_name='res.company'default=<expr>string='Company' -
group_idMany2one → res.groupscomodel_name='res.groups'ondelete='restrict'readonly=True -
menu_idsMany2many → ir.ui.menucolumn1='role_id'column2='menu_id'comodel_name='ir.ui.menu'relation='res_role_menu_rel'string='Menu Items' -
model_method_idsOne2many → model.method.execution.rightcomodel_name='model.method.execution.right'inverse_name='role_id'string='Method Execution Rights' -
model_operation_idsOne2many → view.model.operationcomodel_name='view.model.operation'inverse_name='role_id'string='View Model Operation' -
modifier_rule_idsOne2many → view.modifier.rulecomodel_name='view.modifier.rule'inverse_name='role_id'string='View Modifier Rules' -
nameCharrequired=True -
sequenceInteger -
user_idsMany2many → res.userscolumn1='role_id'column2='uid'comodel_name='res.users'relation='res_role_users_rel'string='Users' -
view_type_attribute_idsOne2many → view.type.attributecomodel_name='view.type.attribute'inverse_name='role_id'string='View Type Attributes'
-
create(self, vals)@api.model -
export_xls(self) -
import_policy(self) -
init(self)Role groups that have been added to e.g. ir.ui.menu will be removed during 'upgrade all' processing. This happens only for those records that have the groups_id set in the base module (e.g. Settings menu). We cannot prevent this since the addons path modules are not yet imported when the xml files of the base module are loaded. As a consequence we use the init method to restore the role groups. -
unlink(self) -
write(self, vals)
New fields (11)
-
access_idMany2one → ir.model.accesscomodel_name='ir.model.access'ondelete='restrict'readonly=True -
activeBooleandefault=True -
company_idMany2one → res.companycomodel_name='res.company'related='role_id.company_id'store=True -
group_idMany2one → res.groupscomodel_name='res.groups'readonly=True -
model_idMany2one → ir.modelcomodel_name='ir.model'required=True -
nameCharreadonly=True -
perm_createBooleanstring='Create Access' -
perm_readBooleanstring='Read Access' -
perm_unlinkBooleanstring='Delete Access' -
perm_writeBooleanstring='Write Access' -
role_idMany2one → res.rolecomodel_name='res.role'required=True
-
create(self, vals)@api.model -
unlink(self) -
write(self, vals)
New fields (3)
-
enabled_role_idsMany2many → res.rolecolumn1='uid'column2='role_id'comodel_name='res.role'domain="[('id', 'in', role_ids)]"help='If you have multiple roles you may experience loss of functionality.\nE.g. Role 2 may hide a button which you need to do your job in Role 1.\nYou can enable here a subset of your roles.\nLeave this field blank to enable all your roles.'relation='res_role_users_enabled_rel'string='Enabled Roles' -
exclude_from_role_policyBooleancompute='_compute_exclude_from_role_policy'store=True -
role_idsMany2many → res.rolecolumn1='uid'column2='role_id'comodel_name='res.role'relation='res_role_users_rel'string='Roles'
-
create(self, vals_list)@api.model_create_multiRemove no role groups. -
fields_view_get(self, view_id=None, view_type=False, toolbar=False, submenu=False)@api.model -
has_role(self, code) -
write(self, vals)
New fields (8)
-
codepageChardefault=<expr>help='Code Page of the system that has generated the file.'string='Code Page' -
file_typeSelectiondefault=<expr>selection='_selection_file_type' -
noteTextargs: 'Log' -
policy_dataBinaryrequired=Truestring='File' -
policy_fnameCharstring='Filename' -
sheetSelectionhelp='Specify the Excel sheet.\nIf not specified all sheets will be imported.'selection='_selection_sheet' -
skip_checksBooleanhelp='Skip Sanity Checks.\nSetting this option will increase import performance by skipping a number of resource intensive rule sanity checks.' -
warningTextreadonly=True
-
role_policy_import(self)
New fields (0)
No new fields.
Public methods (2)-
create(self, vals_list)@api.model_create_multi -
write(self, vals)
New fields (6)
-
activeBooleandefault=True -
codeCharrequired=True -
company_idMany2one → res.companycomodel_name='res.company'default=<expr>string='Company' -
modifier_idsMany2many → view.modifier.rulecolumn1='tag_id'column2='modifier_id'comodel_name='view.modifier.rule'help='Security Policy reporting tags'relation='policy_tag_modifier_rel'string='Tags' -
nameCharrequired=True -
noteTextname='Description'
No public methods.
New fields (8)
-
activeBooleandefault=True -
company_idMany2one → res.companycomodel_name='res.company'related='role_id.company_id'store=True -
disableBooleandefault=Truehelp='Disable this operation' -
modelCharhelp="Specify 'default' or a 'model name, e.g. sale.order"required=True -
operationSelectionrequired=Trueselection='_selection_operation' -
priorityIntegerdefault=16help='The priority determines which rule will be selected in case of conflicting rules. Rule conflicts may exist for users with multiple roles or inconsistent role definitions.'required=True -
role_idMany2one → res.rolecomodel_name='res.role'required=Truestring='Role' -
sortCharcompute='_compute_sort'store=True
No public methods.
New fields (17)
-
activeBooleandefault=True -
company_idMany2one → res.companycomodel_name='res.company'related='role_id.company_id'store=True -
elementCharcompute='_compute_element'help='Technical field containt the element after XML_ID resolution'store=Truestring='Element (internal)' -
element_uiCharhelp='Specify the view element. E.g.\nbutton name="button_cancel"\nxpath expr="//page[@id=\'invoice_tab\\]"'string='Element' -
modelCharrelated='model_id.model'store=Truestring='model_name' -
model_idMany2one → ir.modelcomodel_name='ir.model'string='Model' -
modifier_invisibleCharhelp='Specify 1 (True), 0 (False) or a domain expression.'string='Invisible' -
modifier_readonlyCharhelp='Specify 1 (True), 0 (False) or a domain expression.'string='Readonly' -
modifier_requiredCharhelp='Specify 1 (True), 0 (False) or a domain expression.'string='Required' -
priorityIntegerdefault=16group_operator=Falsehelp='The priority determines which rule will be selected in case of conflicting rules. Rule conflicts may exist for users with multiple roles or inconsistent role definitions.'required=True -
removeBooleanhelp="Remove this view or view element from the user interface. You should use this option in stead of 'Invisible' in order to hide view elements for which the user's role does not have read Access rights." -
role_idMany2one → res.rolecomodel_name='res.role'required=Truestring='Role' -
sequenceIntegerdefault=16required=True -
tag_idsMany2many → security.policy.tagcolumn1='modifier_id'column2='tag_id'comodel_name='security.policy.tag'help='Security Policy reporting tags'relation='policy_tag_modifier_rel'string='Tags' -
view_idMany2one → ir.ui.viewcomodel_name='ir.ui.view'domain="['|', ('model', '=', model), ('model', '=', '')]" -
view_typeSelectionselection='_selection_view_type' -
view_xml_idCharrelated='view_id.xml_id'store=Truestring='View External Identifier'
No public methods.
New fields (10)
-
activeBooleandefault=True -
attribCharrequired=Truestring='Attribute' -
attrib_valCharrequired=Truestring='Attribute Value' -
company_idMany2one → res.companycomodel_name='res.company'related='role_id.company_id'store=True -
priorityIntegerdefault=16help='The priority determines which attribute rule will be selected in case of conflicting attribute rules. Rule conflicts may exist for users with multiple roles or inconsistent role definitions.'required=True -
role_idMany2one → res.rolecomodel_name='res.role'required=Truestring='Role' -
sequenceIntegerdefault=16required=True -
view_idMany2one → ir.ui.viewcomodel_name='ir.ui.view'required=True -
view_typeSelectionrelated='view_id.type' -
view_xml_idCharrelated='view_id.xml_id'store=Truestring='View External Identifier'
No public methods.