- Home
- Apps
- SaaS Tools
- Generic Security Restriction
Illustrative previewA build-to-order Odoo module that restricts menus, fields,
buttons, and actions with granular model-level access controls and record rules.
ECOSIRE scopes, builds, installs, and supports it for your Odoo 17/18/19 environment.
What is Generic Security Restriction?
A build-to-order Odoo module that restricts menus, fields, buttons, and actions with granular model-level access controls and record rules. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17/18/19 environment. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your Odoo.
- 3
Go live + support
You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.
Technical Specifications
- Odoo Compatibility
- Odoo 17, Odoo 18, Odoo 19
- Editions
- Enterprise & Community
- License
- Licence confirmation required
- Python Requirement
- Python 3.10+
- Database
- PostgreSQL 12+
About this Product
Most teams reach a point where Odoo's out-of-the-box security is either too coarse or too fiddly to manage safely. A salesperson can see margin fields they shouldn't; a warehouse user stumbles into Accounting menus; a junior can still click Validate, Cancel, or Post on documents that should be locked to a supervisor. Odoo core gives you res.groups, ir.model.access.csv, and ir.rule record rules — powerful primitives — but wiring field-level visibility, button-level restrictions, and multi-dimensional record rules by hand across dozens of models quickly becomes an unmaintainable sprawl of XML and CSV that breaks on every upgrade. This is where native Odoo runs out of road: it has the mechanisms, but no unified, admin-friendly control surface to govern who sees which menu, which field, and which action, without a developer editing source every time policy changes.
Generic Security Restriction is a made-to-order Odoo module that ECOSIRE designs, builds, and installs for you to close exactly that gap. Rather than hard-coding restrictions, we deliver a configurable security layer: a settings-driven model where administrators define restriction profiles that hide or read-only menus (ir.ui.menu), fields (via groups attributes and dynamic fields_view_get/get_views overrides in the ORM), and action buttons in both backend XML/OWL views and QWeb-driven flows. Under the hood we generate the appropriate res.groups, ir.model.access.csv entries, and parameterized ir.rule domains, then bind them to your restriction profiles so policy changes become configuration, not code. Field masking is enforced server-side in the models.Model read path — not just hidden in the UI — so the same rules hold over the XML-RPC/JSON-RPC API and in exports, closing the common loophole where a restricted field leaks through a report or an external integration.
Technically, the module is built to your model map. We audit the objects you need to govern, define compute-backed visibility helpers (@api.depends where a restriction is contextual), and apply record rules scoped by company, team, department, or any field you nominate — including multi-company setups where company_ids and company_id must be honored consistently. Menu and action restrictions are applied through group membership so they survive upgrades, and every override is written to be idempotent and version-aware across Odoo 17.0, 18.0, and 19.0 (we account for the get_views API changes and OWL view differences between those releases, and for Community vs Enterprise where an Enterprise-only view or action is in scope). We keep the footprint minimal and dependency-light so it coexists cleanly with your other apps and does not fight the standard upgrade path.
Because this is build-to-order, delivery starts with a short scoping call, not a download. We confirm the exact models, fields, menus, and actions in scope, agree the restriction profiles and who they map to, then build against a copy of your database, validate on staging, and install into production with a rollback plan. Typical delivery is one working week from confirmed scope, depending on how many models and profiles are involved and whether integrations or data migration are required. Pricing starts from $999 (indicative, single-company base scope); broader model coverage, multi-company record rules, deeper localization, and additional integration surfaces (API clients, external reports) increase the quoted scope. You receive a fixed written quote after the scoping call — never a surprise.
What you get
- Installable module source code for your target Odoo version (17.0, 18.0, or 19.0), built to your model and profile map
- Installation and configuration on your environment, including group/profile setup and initial restriction rules
- Technical documentation covering the module architecture, res.groups, ir.rule domains, and how to extend restriction profiles
- End-user and administrator guide plus a live training session for the team who will manage restrictions
- Post-go-live support window for defect fixes and configuration questions after production install
- UAT on a staging copy of your database with a documented, tested rollback plan before production cutover
- Git repository handover with full commit history and tagged release for your version
- Configuration reference mapping each restriction profile to the menus, fields, and actions it governs
Who this is for
Odoo Administrator / Internal IT
Owns user roles and wants to manage who sees which menu, field, and button from configuration rather than filing a developer ticket every time a policy changes or a new hire needs a scoped role.
Operations or Finance Manager
Needs to ensure staff cannot see sensitive data (margins, salaries, cost prices) or trigger privileged actions like posting or cancelling documents, with enforcement that holds over reports and the API, not just hidden in the screen.
Compliance / Data-Governance Lead
Must demonstrate least-privilege access and an auditable trail of who can do what, especially in regulated or multi-company groups where record-level segregation between entities is mandatory.
Multi-Company Group Controller
Runs several companies in one Odoo database and needs consistent record rules so users only see their entity's data while shared-service roles retain the cross-company access they legitimately require.
How Generic Security Restriction Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Menu, field, and action control | Unified restriction profiles governing menus, fields, buttons, and actions from one configurable layer | Possible but you design and maintain the whole framework yourself | Often covers menus and fields but rarely all four in one consistent model | Manual res.groups + CSV + view groups edited case by case |
| Enforcement depth | Server-side in the ORM and ir.rule, holds over API, exports, and reports | Depends entirely on the developer's rigor | Frequently UI-only, leaks via API or exports | Strong at record-rule level, weak for granular field/button UI |
| Fit to your models | Built to your exact model map after a scoping call | Fully bespoke but slow and costly to build from zero | Generic; you adapt your process to its assumptions | You configure within core limits, no tailoring |
| Multi-company record rules | Company/team/department-scoped ir.rule handled and tested for your setup | Achievable with significant in-house effort | Basic multi-company support, edge cases often unhandled | Available but manual to configure and easy to get wrong |
| Upgrade safety (17/18/19) | Version-aware, idempotent data files, tested across 17.0/18.0/19.0 | Whatever you build must be re-tested each upgrade | Depends on vendor's version cadence | Core upgrades cleanly but your manual edits may not |
| Support and ownership | Post-go-live support window plus full git repo and source handover | You own it and you support it entirely | Vendor support varies; source may be obfuscated | Community/Enterprise support, no custom logic covered |
| Total cost and time | Indicative from $999, fixed quote after scoping, one working week | Highest cost and longest timeline | Low upfront license but adaptation and gaps add cost | No license cost but heavy admin time and risk of misconfiguration |
| Audit and compliance | Optional automated-action logging and documented least-privilege mapping | Only if you scope and build it | Rarely includes audit tooling | No built-in restriction audit trail |
Frequently Asked Questions about Generic Security Restriction
How long does delivery take?
This is a build-to-order module, not an instant download. After a scoping call to confirm the exact models, fields, menus, and actions in scope, typical delivery is one working week from confirmed scope. Timelines lengthen with more models and profiles, multi-company record rules, or integration and data-migration work, and we give you a schedule with your fixed quote.
How does pricing and scoping work?
Pricing starts from $999 as an indicative from-price for a single-company base scope. The final number depends on how many models, fields, and restriction profiles you need, multi-company complexity, localization depth, and any integrations. You get a fixed written quote after the scoping call — no charges begin until you approve that quote.
What support and updates are included?
Every build includes a post-go-live support window for defect fixes and configuration questions. Because we hand over the git repository and full source, you own the code. We also offer optional ongoing support and paid version upgrades to keep the module current as you move between Odoo 17.0, 18.0, and 19.0.
Does this work with Odoo Community and Enterprise?
Yes. The module is built on standard security primitives (res.groups, ir.model.access.csv, ir.rule) that exist in both editions and supports Odoo 17.0, 18.0, and 19.0. Where an Enterprise-only view or action is in your scope, we handle it as part of the build; we confirm your edition and version during scoping.
Are restrictions actually enforced, or just hidden in the interface?
Enforced. Field and record restrictions are applied server-side in the ORM read/write path and via ir.rule domains, so they hold over the XML-RPC/JSON-RPC API, exports, and QWeb reports — not only in the screen. UI hiding is layered on top for a clean experience, but the security boundary is at the model level.
Can restrictions depend on record state, not just the user's role?
Yes. Alongside static group-based rules we can implement contextual restrictions using compute helpers and @api.depends — for example, making a field read-only once a document is confirmed, or blocking cancel after posting. We agree these conditional rules during scoping so behavior is explicit and testable.
Will it survive Odoo upgrades?
We build restrictions through group membership and idempotent, version-aware data files rather than ad-hoc source edits, which is far more upgrade-friendly than hand-patching views. Major Odoo version jumps can still require a compatibility pass, which we can quote as an upgrade engagement when you move versions.
Related Modules

GCC Unified Payroll Pack
Build-to-order Odoo module: six-country GCC payroll rules, per-country WPS/SIF/Mudad exports and unified EOSB across one multi-company instance.

GCC Withholding Tax (WHT) Engine
Build-to-order Odoo module that auto-computes, deducts and reports withholding tax on vendor bills and payments across GCC and emerging markets.

Ghana E-VAT Compliance
A build-to-order Odoo module that turns your posted customer invoices into GRA E-VAT compliant submissions, with rejection handling, correction workflow and a compliant archive. ECOSIRE builds, installs and supports it for your exact Odoo version and chart of accounts.

Gift Cards & E-Vouchers at Checkout for Odoo
A build-to-order Odoo module that lets you sell digital and physical gift cards, generate secure codes, track balances, and apply partial redemptions directly in the Odoo eCommerce and POS checkout. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17, 18, or 19 instance.
Generic Security Restriction
A build-to-order Odoo module that restricts menus, fields, buttons, and actions with granular model-level access controls and record rules. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17/18/19 environment.
- Restriction profiles that bundle menu, field, button, and action rules and map to Odoo res.groups so they survive module upgrades
- Server-side field masking enforced in the models.Model read path, not just UI hiding — restricted fields stay hidden over XML-RPC/JSON-RPC and in exports
- Menu visibility control over ir.ui.menu, hiding or exposing app and submenu entries per profile without editing source XML
- Read-only and hidden field enforcement via dynamic get_views / fields_view_get overrides plus groups attributes on view nodes