Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Productivity
  3. Access Control — Hide & Lock Fields, Buttons, Menus, Records by Role v 16.0
  4. Sales Conditions FAQ

Access Control — Hide & Lock Fields, Buttons, Menus, Records by Role

by TLL Studios https://tlldevelopers.com/
Odoo

$ 92.16

v 16.0 Third Party
Apps purchases are linked to your Odoo account, please sign in or sign up first.
You bought this module and need support? Click here!
  • Description
  • Manifest
  • Documentation
  • License
TLL Studios · Access Control

Odoo access control · in context

Decide who sees and does what — right from the screen.

Hide or lock fields, buttons, menus, tabs, filters, whole view types, model actions and records for any role — set straight from the record you are looking at, and enforced on the server, not just hidden in the interface.

9 things you can restrict Enforced server-side No code, no XML
€79.90one-time
OPL-1 · Odoo 16 · 17 · 18 · 19
res.partner · form
Company name Email Phone Website Bank account Tax ID Restrict “Bank account” Hide Read-only Sales

The problem

In Odoo, most permissions live in code.

To hide a field, block a button or restrict a menu for one role, someone usually edits XML, adds a group to a view, or writes an ir.rule by hand. The person who knows who should see what — the administrator — can’t do it from where the problem actually is: the screen in front of them. And when an add-on only hides a field in the interface, that field is often still writable through an import or an API call.

This module fixes both. You set access from the screen, and it is enforced for real.

How it works

Three clicks, no configuration screen.

Turn on access mode, click the thing you want to restrict, pick the role. That’s the whole workflow.

Turn on access mode

Click the lock in the systray. The screen becomes clickable — every field, button, menu and tab is now a target.

Click what to restrict

Point at the actual element — a field, the New button, a menu item, a notebook tab, a search filter. A small panel opens right there.

Pick the role & rule

Choose the role and whether to hide, make read-only or required — for this view or the whole model. Done.

One tool, nine kinds of access

Everything you’d otherwise touch code for.

The same in-context click covers the whole surface of the interface — and the model behind it.

field

Fields

Hide, make read-only or required — per view or across the whole model.

button

Buttons

Hide any object or action button on a form or list for a role.

menu

Menus

Hide a single submenu — or the whole parent menu — from a role.

model

Model capabilities

Create, edit, delete, duplicate, archive, export — blocked in UI and server.

action · report

Actions & reports

Remove print menus and server actions from the cog for a role.

view type

View types

Take away List, Kanban, Pivot, Calendar… switchers a role shouldn’t use.

page

Notebook tabs

Hide an entire tab inside a form — the whole page, not just its fields.

filter

Search filters

Hide specific filters and group-bys from the search menu.

record

Records (row level)

Limit which rows a role sees: their own, their company, or a custom domain.

Why it’s different

Hidden is not the same as locked.

Most access add-ons only tidy up the interface. A hidden field can still be written by an import or an API call. This one closes every door with the same rule.

The interface

The field, button or menu disappears from the screen.

HIDDEN

The server (ORM)

Create, write, delete, archive and export are checked and refused.

BLOCKED

Imports & API (RPC)

The same wall applies — even a spreadsheet import or external call is stopped.

BLOCKED

Read-only and required are enforced the same way. Hidden fields are also blanked in the data a restricted user reads back — not just removed from the form.

RPC · write() rejected
> env['res.partner'].with_user(sales) .write({'bank_account': 'ES91...'}) AccessError You are not allowed to modify 'Bank account' on 'Contact'. Restricted for role: Sales
The rule is checked in the ORM, so it holds outside the UI too.

How it compares

Set from the screen. Locked on the server.

What you getTypical UI-only add-onAccess Control
Hide fields & buttons in the interface ✓✓
Set it from the screen — no XML, no dev sometimes✓
Field stays unwritable by import / API ✕✓
Block create / edit / delete / export on the server ✕✓
Row-level record rules (own / company / domain) ✕✓
Menus, view types, tabs & filters too partial✓
Preview the interface as another role ✕✓
No activation key · your data never leaves Odoo varies✓

Preview as role

See Odoo exactly as another role sees it.

Pick a role and the whole interface re-renders as that role would experience it — hidden fields gone, blocked buttons gone, restricted menus gone. Without ever touching your own groups.

  • Check a rule in one second, instead of creating a test user and logging out.
  • Your admin account keeps all its own access — nothing is changed on your user.
  • Only administrators can preview — the impersonation can’t be abused to bypass rules.
systray · preview
Preview as role ROLE Sales / User Apply Exit
Impersonate a role visually — admin groups stay untouched.
record scope
Sales Orders SO0031 — assigned to me SO0044 — assigned to me Own Company Domain
Row-level rules are generated as native Odoo record rules.

Record-level access

Limit which rows a role can even see.

Not just how fields look — which records exist for a role. Choose a scope and the module writes a proper Odoo record rule for you, combined safely so a permissive rule elsewhere can’t undo it.

Only their own records Only their company A custom domain

Stay in control

Every rule for this screen, one click away.

From any record, jump straight to all the access rules that touch this model and this view — already filtered. Review what’s restricted, for whom, and switch a rule off without hunting through a settings list. And a rule affects one role: the most restrictive one wins, so access only ever subtracts, never leaks.

Filtered by model & view Most restrictive wins Toggle any rule off

Built the honest way

Native mechanics. No lock-in.

Safe by default

With no rules, everything stays visible and editable. Each rule only subtracts access from one role.

Uses Odoo’s own layers

Access checks run in the ORM; row rules are standard record rules. Nothing exotic, nothing to trust blindly.

No key, no phone-home

No activation key and no external service. Your data and access rights never leave your Odoo.

Clean uninstall

Removing the module removes the record rules it generated — no orphaned restrictions left behind.

Supported Odoo versions

Maintained across four releases.

Each version lives on its own branch and is validated on that release. Install and it works — no configuration.

16.0Community & Enterprise
17.0Community & Enterprise
18.0Community & Enterprise
19.0Community & Enterprise

Get it

Give the right people the right access — from the screen.

Questions, feature requests or a bug to report? Use the Support link on this page, or reach us at tlldevelopers.com.

€79.90one-time · OPL-1
TLL Studios · Odoo 16–19
Availability
Odoo Online
Odoo.sh
On Premise
Lines of code 2274
Technical Name tll_access
LicenseOPL-1
Websitehttps://tlldevelopers.com/

Access Control — in-context permissions for Odoo, enforced

Decide who can see and do what in Odoo, set directly from the screen you are looking at, and enforced on the server — not just hidden in the interface. A complete, no-code access rights and record-rules manager for administrators.

The problem it solves

In Odoo, most permissions live in code. To hide a field, block a button or restrict a menu for one role you usually edit XML, add a group to a view, or write an ir.rule by hand — and the person who knows who should see what, the administrator, cannot do it from where the problem is: the screen in front of them. On top of that, an add-on that only hides a field in the interface often leaves that field still writable through an import or an API call.

This module fixes both. You set access from the screen, and it is enforced for real, in the ORM.

How it works

  1. Turn on access mode from the systray lock. The screen becomes clickable: every field, button, menu and tab is now a target.
  2. Click the element you want to restrict. A small panel opens right there.
  3. Pick the role and the rule — for this view or the whole model. Done.

Nine things you can restrict

Fields

Hide a field, make it read-only or make it required for a role, scoped to a single view or to the whole model.

Buttons

Hide any object or action button on a form or list view for a role.

Menus

Hide a single submenu, or the whole parent menu, from a role. Clicking a parent menu in access mode lets you restrict the whole menu; clicking a submenu restricts just that entry.

Model capabilities

Restrict create, edit, delete, duplicate, archive/unarchive and export on a model. The matching button is hidden and the action is refused on the server.

Actions and reports

Remove print menus and server actions from the Actions cog for a role.

View types

Take away the switchers a role should not use — List, Kanban, Pivot, Calendar, Graph, Activity, and so on.

Notebook pages

Hide an entire tab inside a form — the whole page, not only its fields.

Search filters

Hide specific filters and group-bys from the search menu.

Records (row level)

Limit which rows a role can even see:

  • Only their own records — using the model's user field.
  • Only their company — using company_id.
  • A custom domain — any Odoo domain you write.

Row-level rules are generated as native Odoo record rules, combined safely (as a global conditional rule) so a permissive rule elsewhere cannot undo them.

Enforced, not just hidden

Hidden is not the same as locked. A restricted field, button or capability is checked and refused in the ORM, so create / write / unlink / archive / export are blocked even from a spreadsheet import or an external RPC call. Read-only and required are enforced the same way, and a hidden field is blanked in the data a restricted user reads back — not just removed from the form.

Preview as role

Pick a role and the whole interface re-renders as that role would experience it — hidden fields gone, blocked buttons gone, restricted menus gone — without ever changing your own groups. Only administrators can preview, so the impersonation cannot be used to bypass rules.

Every rule for a screen, one click away

From any record, jump to all the access rules that touch this model and this view, already filtered. Review what is restricted, for whom, and switch a rule off in one click.

Safe by default

With no rules, everything stays visible and editable. Each rule only subtracts access from one role, and the most restrictive rule wins, so access never leaks. There is no activation key and no external service: your data and access rights never leave your Odoo. Uninstalling the module also removes the record rules it generated, leaving nothing behind.

Supported Odoo versions

Odoo 16.0, 17.0, 18.0 and 19.0, each maintained on its own branch.

Support

Questions, bug reports or feature requests: https://tlldevelopers.com/

License

OPL-1 (Odoo Proprietary License v1.0).

Odoo Proprietary License v1.0

This software and associated files (the "Software") may only be used (executed,
modified, executed after modifications) if you have purchased a valid license
from the authors, typically via Odoo Apps, or if you have received a written
agreement from the authors of the Software (see the COPYRIGHT file).

You may develop Odoo modules that use the Software as a library (typically
by depending on it, importing it and using its resources), but without copying
any source code or material from the Software. You may distribute those
modules under the license of your choice, provided that this license is
compatible with the terms of the Odoo Proprietary License (For example:
LGPL, MIT, or proprietary licenses similar to this one).

It is forbidden to publish, distribute, sublicense, or sell copies of the Software
or modified copies of the Software.

The above copyright notice and this permission notice must be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with