Skip to main content
Role & Group Access Designer — A build-to-order Odoo module that turns raw security groups into job-based business roles, ass — 1/1Illustrative preview

A build-to-order Odoo module that turns raw security groups into job-based business roles,

assigns them across users in a bulk matrix, and clones one user's access onto many.

ECOSIRE designs, builds, and installs it to your access model — it is not an off-the-shelf download.

What is Role & Group Access Designer?

A build-to-order Odoo module that turns raw security groups into job-based business roles, assigns them across users in a bulk matrix, and clones one user's access onto many. ECOSIRE designs, builds, and installs it to your access model — it is not an off-the-shelf download. 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

`res.role` model bundling any number of `res.groups` into one named business role, with a compute method that recomputes each user's effective `groups_id` on assignment via `@api.depends`
Automatic effective-group recomputation that keeps `ir.model.access` and record rules derived from roles rather than hand-edited per user
Bulk user-to-group assignment matrix — an OWL/JS client action with multi-select rows, group-column filtering, and inline toggles that write in batched ORM calls
Clone-access action that copies the complete `groups_id` set of one source user onto one or many target users in a single confirmed operation
Implied/inherited group visualizer that walks the `res.groups` inheritance graph so admins see the full effective permission set behind any user or role
Time-bound roles with optional start/end dates and an `ir.cron` scheduled action that auto-revokes expired temporary access
Role-template library with XML/JSON export and import for deploying the same role set across staging, production, and multiple databases
Company-scoped role assignment for multi-company deployments, so a user's function can differ per `res.company`
Side-by-side diff view comparing two users' or two roles' group membership, highlighting added/removed groups
Orphan and over-privileged detection flagging users in `base.group_system`/technical groups or holding no role at all
Full assignment audit trail recording who granted which role to whom and when, queryable and exportable
JSON-RPC/XML-RPC-friendly role and assignment models so external HR or IdP systems can provision access programmatically
Read-only 'effective access' report (QWeb) summarizing a user's or role's resolved permissions for audit sign-off
Built for Odoo 17.0 / 18.0 / 19.0 in both Community and Enterprise editions, respecting edition-specific group definitions

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 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

Odoo's native access control is powerful but atomic: permissions are scattered across dozens of individual security groups, and there is no first-class notion of a "job role." When a warehouse lead or an AP clerk joins, an admin opens each user form and hand-ticks the right combination of groups from memory, then repeats the guesswork for the next hire. res.groups inheritance means one wrong checkbox silently grants far more than intended, ir.model.access.csv and record rules become impossible to reason about at a glance, and there is no bulk way to onboard twenty people to the same access profile or to see who is over-privileged. Odoo core gives you the raw groups; it gives you no way to manage access the way the business actually thinks about it — by function.

Role & Group Access Designer is a made-to-order Odoo module that ECOSIRE builds on base and web to add a role abstraction layer on top of res.groups. We introduce a res.role model whose many2many bundles the exact security groups that define a business function — 'Warehouse Lead', 'AP Clerk', 'Sales Manager' — and a compute method (@api.depends on the role's group set) that recomputes each assigned user's effective groups_id automatically, so ir.model.access and record rules stay clean and derived rather than hand-maintained. The build includes a bulk user-to-group matrix view (OWL/JS client action over a server-side read) with multi-select, filtering, and inline toggles; a clone-access action that copies every group from a source user onto one or many targets in a single call; and an implied-groups visualizer that walks the inheritance graph so an admin sees the full effective permission set behind any user or role, not just the boxes they ticked.

Beyond the core, we build the operational guardrails that make access governance auditable. Time-bound roles carry optional start/end dates and an ir.cron scheduled action that auto-revokes expired temporary access; a diff view compares two users' or two roles' group membership side by side; and an orphan/over-privileged detector flags anyone sitting in base.group_system or technical groups, or holding no role at all. Every grant is written to a full assignment audit trail (who assigned which role to whom, and when), and a role-template library with export/import — serialized as XML data or pushed via the JSON-RPC/XML-RPC API — lets you deploy the same role set across staging, production, and multiple databases. In multi-company environments, role assignment is company-scoped so a user's function can differ per company. Everything is delivered in both Community and Enterprise flavors and targets Odoo 17.0, 18.0, and 19.0.

Because this is build-to-order, we start with a short scoping call to map your existing groups, job functions, and multi-company topology, then confirm a fixed scope and quote before writing a line of code. We build against your target Odoo version, deliver on a staging database for UAT, and only cut over to production once you have signed off — typical delivery is one working week from confirmed scope. You receive the full source, git repo handover, and a defined post-go-live support window. Pricing starts from $999 (indicative, single-company base scope); multi-company role scoping, heavier group inheritance graphs, cross-database template syncing, and integration with an external IdP or SSO provisioning flow increase the quoted scope.

What you get

  • Installable, version-pinned source code for your build, targeting your chosen Odoo 17.0 / 18.0 / 19.0 edition
  • Installation and configuration on your environment, including initial role definitions mapped from your current groups
  • Technical documentation covering the data model, compute logic, scheduled actions, and API endpoints
  • End-user guide plus a live training session for your admins and consultants
  • UAT on a staging database with a documented rollback plan before production cutover
  • Defined post-go-live support window for defect fixes and configuration questions
  • Git repository handover with full commit history and branch/tag structure
  • Seed set of role templates (export/import files) for your common job functions

Who this is for

HR-adjacent access administrator

Owns onboarding and offboarding for dozens to hundreds of employees and needs to grant the right access by job function in minutes, not by hand-ticking groups per user. Wants roles, a bulk matrix, and clone-access so a new warehouse hire gets exactly the same access as the last one.

Odoo implementation consultant

Deploys the same access model across multiple client databases and staging/production environments. Needs exportable role templates, a diff view to reconcile drift between databases, and a clean role abstraction that survives migrations across Odoo 17/18/19.

IT security and compliance lead

Accountable for who can access what and for proving it during audits. Wants the over-privileged/orphan detector, the full assignment audit trail, time-bound temporary access that auto-expires, and an effective-access report to sign off against.

Multi-company operations manager

Runs several legal entities in one Odoo database where the same person may hold different functions per company. Needs company-scoped role assignment and a clear view of each user's effective permissions per `res.company`.

How Role & Group Access Designer Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Job-based rolesFirst-class `res.role` bundling groups by functionPossible, but you design and maintain the abstraction yourselfSome offer a role concept; fit and depth varyNone — only individual security groups
Bulk assignmentOWL user-to-group matrix with multi-select and inline togglesBuild the UI and batching from scratchOften list-based, rarely a true editable matrixOne user form at a time, manual checkboxes
Clone accessCopy a user's full group set onto many targets in one actionScriptable, but you write and test the logicSometimes single-target duplication onlyNo clone — re-tick every group by hand
Over-privileged detectionFlags admin/technical-group and no-role users automaticallyRequires custom queries and a reporting viewRarely includedNo detection — manual inspection only
Time-bound accessStart/end dates with `ir.cron` auto-revocationBuild the model field and scheduled action yourselfUncommon; expiry usually manualNo expiry — access persists until removed
Audit trailFull record of who assigned which role, to whom, whenYou design the logging model and viewsVaries; often partial or absentNo dedicated access-assignment audit log
Cross-database templatesExport/import role templates across staging and prodHand-roll XML data or migration scriptsRarely supported out of the boxNo template concept for reusing role sets
Delivery & fitBuilt to your model, UAT on staging, source + supportFull in-house build, longer and higher riskGeneric install; you adapt to its assumptionsIncluded, but no role tooling to configure

Frequently Asked Questions about Role & Group Access Designer

Is this an app I can download and install today?

No. Role & Group Access Designer is built to order. ECOSIRE designs and builds it against your specific groups, job functions, and Odoo version, then installs it for you. It is not an existing apps.odoo.com download, and we never ship a generic binary — every build is scoped to your access model.

How long does delivery take?

Typical delivery is one working week from confirmed scope. After the scoping call we agree on the exact role model and features, you approve a fixed quote, then we build against your target Odoo version, deliver on a staging database for UAT, and cut over to production once you sign off. Larger multi-company or IdP-integrated scopes may extend the timeline, which we confirm up front.

How does pricing and scoping work?

Pricing starts from $999 as an indicative from-price for a single-company base scope. It is not a fixed final price. After a short scoping call we send a fixed written quote based on your actual requirements — multi-company role scoping, complex group inheritance, cross-database template syncing, and SSO/IdP integration increase the quoted scope. You approve the fixed quote before we start building.

What happens to support and updates after go-live?

Every build includes a defined post-go-live support window for defect fixes and configuration questions, plus full source and git repo handover so your team can maintain it. Version upgrades (for example moving your build from Odoo 18.0 to 19.0) or new feature work are quoted separately as a follow-on engagement.

Will it work with my existing security groups and record rules?

Yes. The module layers a role abstraction on top of your existing `res.groups` — it does not replace them. Roles bundle the groups you already have, and assigning a role recomputes each user's effective `groups_id`, so your `ir.model.access.csv` entries and record rules keep working. During scoping we map your current groups to business roles so nothing is lost.

Does it support multi-company and both Community and Enterprise?

Yes. Role assignment can be scoped per `res.company`, so the same user can hold different functions in different companies. We build for both Community and Enterprise editions, respecting the group definitions that differ between them, and target Odoo 17.0, 18.0, or 19.0 as you specify.

Can external systems assign roles automatically?

Yes. The role and assignment models are exposed over Odoo's JSON-RPC/XML-RPC API, so an external HR system or identity provider can create roles, assign them, and read effective access programmatically. Provisioning integrations are scoped as an add-on and confirmed in the quote.

Request a quote

Role & Group Access Designer

A build-to-order Odoo module that turns raw security groups into job-based business roles, assigns them across users in a bulk matrix, and clones one user's access onto many. ECOSIRE designs, builds, and installs it to your access model — it is not an off-the-shelf download.

  • `res.role` model bundling any number of `res.groups` into one named business role, with a compute method that recomputes each user's effective `groups_id` on assignment via `@api.depends`
  • Automatic effective-group recomputation that keeps `ir.model.access` and record rules derived from roles rather than hand-edited per user
  • Bulk user-to-group assignment matrix — an OWL/JS client action with multi-select rows, group-column filtering, and inline toggles that write in batched ORM calls
  • Clone-access action that copies the complete `groups_id` set of one source user onto one or many target users in a single confirmed operation

Request a Quotation

Tell us about your Role & Group Access Designer requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.