OdooWiki OCA HUB

Base Action Visibility Restriction Domain

base_action_visibility_restriction_domain folder_open OCA/server-ux open_in_new
Extra Tools License: AGPL-3

Using restriction records you can create domains for different groups. Domain will allow/deny action run on specific target model records.

If all restrictions of an action are without domain - action is hidden based on group (base_action_visibility_restriction behaviour).

If at least one restriction with domain - action is shown. Access will be defined once user run action.

If restriction record without domain - user can't run action. If with domain - domain defines for which records user (users group) can run action.

auto_awesome What this module does

AI-generated from the code · Odoo 14.0

Lets administrators restrict who can run a specific action and on which records, by adding group and record-filter rules to window and server actions.

This module extends the action visibility restriction feature so that restrictions can include a record filter (a domain), not just a group.

On the form of a window action or a server action you now see a Restrictions list where you can add one line per user group. Each line has a group and an optional condition domain that defines which records that group may act on.

How it behaves: - If an action has no restriction lines for the user's groups, it stays visible as before. - If the user's group has a restriction line without a domain, the action is hidden from menus and the user cannot run it. - If the user's group has a restriction line with a domain, the action is shown; when the user runs it, Odoo checks the selected records against the domain. If any selected record is outside the domain, an access error is raised and the action is blocked. - For window actions the same check happens when the action is opened on selected records.

Existing exclusions from the base module are converted into these new restriction records when the module is installed, and converted back if it is uninstalled.

It touches ir.actions.actions, ir.actions.server, ir.actions.act_window and adds the ir.actions.restriction model.

Models and fields (4)
  • ir.actions.server · extends an existing modelrestriction_ids
  • ir.actions.actions · extends an existing model
  • ir.actions.act_window · extends an existing modelrestriction_ids
  • ir.actions.restriction · new modelmodel, group_id, condition_domain, server_action_id, window_action_id

Text generated by AI (DeepSeek) from reading the Odoo 14.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 1 confirmed, 8 with no information of 9 versions.

Sources · Odoo 14.0

Confirmed on 2026-11-03 in branch 14.0 of OCA/server-ux.

terminal Installation and usage

OCA documentation · Odoo 14.0

Restrict access to a Window Action.

Window actions normally have a wizard - window that opens after you run action.

Window actions have as Destination Model a model of the wizard. Not a target model.

Lets say you want to limit access to the window action Create Invoices for Sale Order.

  • Enable debug mode.
  • Select multiple records in the Sale Orders list view.
  • Action -> Create Invoices.
  • Click bug symbol. Click Edit Action.
  • Go to Security tab.
  • Create restrictions lines and save.

Restrict access to a Server Action.

Server actions dont have a wizard. They are linked directly to a target model. They are performed right away after you click action.

Lets say you want to limit access to the server action Mark Quotation as Sent for Sale Order.

  • Enable debug mode.
  • Go to Settings -> Technical -> Server Actions.
  • Search for Mark Quotation as Sent. You can see in the Model field it is Sale Order.
  • Go to Security tab.
  • Create restrictions lines and save.

No verified information in OCA: Installation, Configuration.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.