跳至主要内容
产品详细信息以英文显示。翻译即将推出。
Multi-Company Access Rights — A build-to-order Odoo security layer that gives multi-company users different access rights, me — 1/1示意预览

A build-to-order Odoo security layer that gives multi-company users different access rights,

menus, and record visibility per company they operate in.

ECOSIRE scopes, builds, installs, and supports it for your exact org structure.

什么是 Multi-Company Access Rights?

A build-to-order Odoo security layer that gives multi-company users different access rights, menus, and record visibility per company they operate in. ECOSIRE scopes, builds, installs, and supports it for your exact org structure. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

核心功能

Per-company access mapping model linking user, `res.company`, and a security profile, so effective rights change with the active company
Company-aware `ir.rule` record rules whose domains reference `self.env.company` and the user-company profile mapping
Purpose-built security groups plus `ir.model.access.csv` entries for precise model-level create/read/write/unlink control per profile
Group-conditional menu and action visibility via `<menuitem groups="...">` so users never see models they are not entitled to in the current company
ORM-level enforcement (`create`/`write`/`read` overrides honoring `self.env.companies`) so the boundary holds for UI, XML-RPC, and JSON-RPC alike
Compute fields with `@api.depends` deriving the user's effective profile for the active company context
Optional read-only vs read-write role split per company for the same shared user (e.g. manager in HQ, reviewer in a subsidiary)
Automated/server actions to reassign or lock profiles when a user's company assignment changes
Configurable field-level restrictions on sensitive fields (cost, margin, salary) scoped per company
Audit-friendly design: the per-company rule set is inspectable and exportable to hand an auditor a clear access boundary
Python unit tests covering each enforcement path so the boundary survives future Odoo upgrades
Compatibility handling for Community vs Enterprise editions, wiring Enterprise-only apps only where your edition includes them
Built and validated for Odoo 17.0, 18.0, and 19.0 with a clean `__manifest__.py` and versioned dependencies
Admin configuration screen (OWL/XML views) to assign profiles per user per company without touching code

按需定制,全程代劳

无需自行搭建——由 ECOSIRE 构建、安装并提供支持的可用应用。

  1. 1

    您下单

    以一次性构建价格开始。我们在启动时与您共同确定范围。

  2. 2

    我们构建与安装

    ECOSIRE 在您的 Odoo 上构建、配置并安装。

  3. 3

    上线 + 支持

    约一个工作周内上线,并包含两周上线支持。我们交付的代码中的缺陷免费修复。

技术规格

Odoo 兼容性
Odoo 17, Odoo 18, Odoo 19
版本
企业版和社区版
许可证
许可证需要确认
Python 要求
Python 3.10+
数据库
PostgreSQL 12+

关于此产品

Once a single Odoo database serves several legal entities, the native multi-company model shows its limits. Odoo lets a user belong to multiple companies and switch between them, but a user's security groups (groups_id) are global — a person who is Accounting Manager in the parent company carries that same manager profile into every subsidiary the moment they toggle the company selector. Record rules (ir.rule) filter which records are visible, but they do not cleanly grant a user Sales-Manager rights in Company A while pinning them to a read-only role in Company B. Finance and compliance leads discover this during audits: a shared controller can post journal entries in an entity they were only meant to review, and there is no per-company access boundary to show an auditor.

Multi-Company Access Rights closes that gap. We build a custom module that introduces a per-company access mapping — a model (models.Model) linking a user, a company, and a chosen security profile — and enforces it so that a user's effective permissions change with the active company context. Technically this is delivered through purpose-built security groups, ir.model.access.csv entries for model-level CRUD, and company-aware ir.rule record rules whose domains reference the active company and the user-company profile mapping. Where menus and actions must differ per entity, we drive visibility with group-conditional <menuitem groups="..."> and action bindings, so a user simply does not see the models, buttons, or reports they are not entitled to in the company they are currently in.

Under the hood we lean on Odoo's own primitives rather than fighting them. Compute fields with @api.depends derive the user's effective profile for the active company; overrides on the relevant models respect self.env.company and self.env.companies so that reads, writes, and create() all honor the per-company rule set. We add automated actions or server actions where a change of company must trigger a reassignment, and every enforcement path is covered by Python unit tests so the boundary holds after future upgrades. The same rules are honored by the XML-RPC/JSON-RPC API, because record rules apply at the ORM layer — an integration or a portal request cannot slip past the per-company profile the way a bolt-on UI check could. The design accounts for Community vs Enterprise differences (Enterprise-only apps such as full Accounting or Studio-generated models are wired in only when your edition includes them) and is delivered for Odoo 17.0, 18.0, or 19.0.

Because this is build-to-order, nothing ships until we have mapped your actual company tree and role matrix. Delivery starts with a short scoping call, followed by a written scope and fixed quote, development on a branch, UAT on a staging database with your real company structure, and a supervised go-live with a rollback plan. Typical delivery is one working week from confirmed scope, depending on the number of companies and the depth of role differences. Pricing starts from $999 (indicative, single-company base scope); the number of companies, the number of distinct per-company role profiles, cross-company sharing exceptions, and any Enterprise-app coverage increase the quoted scope. You receive the installable source, the git repository, and a documented rule map so your team — or ours — can maintain it.

你得到什么

  • Installable source code for your Odoo version (17.0, 18.0, or 19.0), packaged as a proper addon with `__manifest__.py`
  • Installation and configuration on your environment, including security groups, access CSV, and record rules wired to your company tree
  • Technical documentation: model design, the per-company rule map, and how to extend profiles
  • End-user guide plus a live training session for admins and security owners
  • Post-go-live support window for defect fixes and adjustments
  • UAT on a staging database with your real company structure, plus a documented rollback plan
  • Git repository handover with full commit history and tagged release
  • Configuration matrix mapping each user, company, and profile for audit reference

这是给谁的

Group Finance Controller

Runs consolidated accounting across several legal entities in one Odoo database and needs shared staff to hold different rights per entity — manager in one company, reviewer in another — with a clean boundary an auditor can inspect.

ERP / Odoo Administrator

Maintains a multi-company database and is tired of global groups leaking rights across companies. Wants per-company profiles enforced at the ORM so UI, API, and portal access all obey the same rules, plus tests that survive upgrades.

Compliance / Internal Audit Lead

Needs demonstrable segregation of duties between entities: proof that a shared user cannot post, approve, or edit records in a company they are only meant to review, exportable as an access matrix.

Operations Director, multi-brand group

Oversees several trading companies sharing one system and wants each brand's team to see only their menus, products, and reports when working in that company, without maintaining separate databases.

Multi-Company Access Rights 如何比较

标准伊科西尔定制建造竞争对手Odoo 原生
Per-company rights for one shared userCore capability — profile mapped per user per companyAchievable but you design the model yourselfUsually one global role, limited per-company nuanceNot supported — groups are global across companies
Enforcement layerORM-level `ir.rule` + access CSV, honored by UI and APIDepends on how you build itOften UI-focused, may leak via APIRecord rules exist but not per-company profiles
Menu & action isolation per companyGroup-conditional menus/actions tailored to your entitiesPossible with in-house effortPartial, generic togglesMenus are the same regardless of active company
Fit to your org structureBuilt from your actual company tree and role matrixFully bespoke but you own the whole buildGeneric; you bend your setup to fit itGeneric multi-company defaults only
Audit / segregation of duties evidenceExportable access matrix and documented rule mapOnly if you build reporting for itRarely providedNo per-company access boundary to show
Upgrade safety across 17/18/19Unit-tested enforcement; migration quoted per releaseYou maintain and re-test each upgradeDepends on vendor's update cadenceNative, but the capability is absent to begin with
Support & accountabilityPost-go-live support window, single vendorInternal team owns all fixesVendor support varies, no scope ownershipCommunity/Enterprise support, feature not present
Time to running solutionone working week from confirmed scope, fixed quoteLonger — full design, build, and test cycleFast to install but may not fitImmediate, but does not solve the problem

关于Multi-Company Access Rights的常见问题

Is this an existing app I can download and install today?

No. This is a build-to-order module that ECOSIRE designs, builds, installs, and supports for your specific company structure. We start from your actual org chart and role matrix rather than shipping a generic package, so there is no instant download — you request a quotation and we build your version.

How long does delivery take?

Typical delivery is one working week from confirmed scope. The exact timeline depends on how many companies are involved and how different the per-company roles need to be. After the scoping call we give you a written scope and a target date before any development begins.

How does pricing and scoping work?

Pricing starts from $999 (indicative, single-company base scope). We hold a short scoping call, then send a fixed quote. Cost is driven by the number of companies, the number of distinct per-company role profiles, cross-company sharing exceptions, and any Enterprise-app coverage. You approve the fixed quote before work starts — no open-ended billing.

What about support and future Odoo updates?

Every build includes a post-go-live support window for defect fixes and adjustments. Because enforcement lives at the ORM layer and is covered by unit tests, the module is designed to survive version upgrades; when you move to a newer Odoo release (17.0 → 18.0 → 19.0) we can quote a migration and re-validation pass.

How is this different from Odoo's built-in multi-company feature?

Odoo's native multi-company lets a user belong to several companies but applies one global set of security groups everywhere. Our module maps a security profile per user per company, enforced through company-aware record rules and access controls, so the same person can hold different rights in each company they operate in.

Will the rules also apply to API and integration access?

Yes. Because the per-company profile is enforced with `ir.rule` record rules and access controls at the ORM level, the same boundaries apply to XML-RPC and JSON-RPC calls and to portal requests — an integration cannot bypass the per-company rules the way a UI-only check could.

Can we restrict specific sensitive fields per company?

Yes. Beyond model-level access, we can scope field-level restrictions (for example cost, margin, or salary fields) so they are hidden or read-only for a given profile in a given company, while remaining editable for authorized roles elsewhere.

申请报价

Multi-Company Access Rights

A build-to-order Odoo security layer that gives multi-company users different access rights, menus, and record visibility per company they operate in. ECOSIRE scopes, builds, installs, and supports it for your exact org structure.

  • Per-company access mapping model linking user, `res.company`, and a security profile, so effective rights change with the active company
  • Company-aware `ir.rule` record rules whose domains reference `self.env.company` and the user-company profile mapping
  • Purpose-built security groups plus `ir.model.access.csv` entries for precise model-level create/read/write/unlink control per profile
  • Group-conditional menu and action visibility via `<menuitem groups="...">` so users never see models they are not entitled to in the current company

申请报价

告诉我们您对 Multi-Company Access Rights 的需求,我们将发送价格、许可选项和量身定制的方案,通常在一个工作日内。

现在无需付款。此操作会向我们的团队发送报价请求——我们会通过邮件跟进价格和后续步骤。