Portal Access Management
by Odoo DevHouse https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse$ 50.00
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 94 |
| Technical Name |
portal_access_dv |
| License | OPL-1 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 94 |
| Technical Name |
portal_access_dv |
| License | OPL-1 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse |
| Versions | 18.0 19.0 |
Portal Access Management
Take full control of what every portal user sees. Configure which menus appear in the customer portal per user - no code, no workarounds, just a clean access tab on every user form.
In standard Odoo, every portal user sees all menus that come with the installed applications - Quotations, Orders, Invoices, Projects, Tasks, Tickets, Timesheets, and more. There is no native way to show only what is relevant to a specific user. Businesses face:
- Cluttered portal experience - customers see menus for services they have never used and never will
- Confused external users - vendors shown sales menus, customers shown purchase menus
- No role-based portal - every portal user gets the same menu structure regardless of their relationship with the business
- Information exposure risk - sections that hint at business processes the user should not even know about
- Poor onboarding experience - new portal users are overwhelmed by menus irrelevant to their purpose
- No granular control - the only knob is whether the user is a portal user or not
This module adds an "Access portal" tab directly on every user form. Administrators load the standard portal menu list with one click, then tick only the menus that user should see. The portal home page instantly reflects the configuration - hiding all unchecked entries. If the list is left empty, the portal works exactly as standard Odoo - no disruption to existing users. The moment a single item is added to the list, the portal switches to restricted mode showing only what is explicitly allowed.
The Core Visibility Rule
Portal displays all menus with standard Odoo functionality. No restriction active.
Portal displays only menus that are in the list AND have Access checked. All others are hidden.
- Access Portal Tab: Dedicated configuration tab on every user form - no hidden settings, no technical menus
- Load Portal Menu Button: One-click pre-load of all standard Odoo portal menus into the list - safe to click multiple times
- Per-User Configuration: Each portal user gets an independent menu list - full flexibility for different roles
- Access Checkbox per Menu: Fine-grained control - enable exactly the menus each user needs
- URL-Based Matching: Menus are matched by their exact portal URL (including query strings) for precise filtering
- Zero-Config Default: Empty list = standard Odoo behavior - installing the module never breaks existing users
- Works with All Installed Apps: Intercepts portal entries from Sales, Invoicing, Purchase, Project, Helpdesk, Timesheets, and any custom portal module
- Connection & Security Controllable: Even the native Connection & Security menu can be shown or hidden per user
- Custom Menu Support: Add any custom portal URL to the list - works for third-party and in-house portal modules
- Model Field: Optional model name column on each line for documentation and future extensibility
- Drag-to-Reorder: Sequence handle on every row for consistent list ordering
- No Controller Override: Template-level implementation - compatible with all portal controller customizations
Open the User Form
Navigate to Settings -> Users & Companies -> Users and open any portal user. The module adds two new elements to the form: a "Load portal menu" stat button at the top, and an "Access portal" tab in the notebook.
Load the Standard Portal Menus
Click the "Load portal menu" button. This pre-populates the "Access portal" tab with all standard Odoo portal menus - Quotations, Orders, Invoices, Payment Methods, Projects, Tasks, Timesheets, Tickets, Purchase Requests, and more - all with Access unchecked by default. Already-present items are skipped so clicking twice is safe.
Check the Menus This User Should See
In the Access portal tab, tick the Access checkbox for each menu you want visible on this user's portal. Leave the rest unchecked. You can also add custom rows manually - just enter the menu name and its /my/... URL.
Save - Portal Updates Instantly
Save the user record. The next time this user visits /my, the portal home page shows only the menus with Access = checked. All other entries are silently hidden. No cache clearing, no restart required.
Add Custom or Third-Party Portal Menus (Optional)
Use "Add a line" to manually register any custom portal URL - from third-party apps or your own development. Enter the display name and the exact URL (e.g. /my/purchase_requests). Check Access and the menu will appear in the user's portal.
Step 1 & 2 - "Access portal" Tab on the User Form (New User)
The "Load portal menu" stat button sits at the top of the user form. The "Access portal" tab in the notebook shows the full menu list after loading. Each row has a Name, optional Model, URL, and the Access checkbox.
Step 3 - Configure Access: Check Only the Menus This User Needs
In the Access portal tab, tick the Access column for each allowed menu. In this example, Purchase Requests, Stock Requests, and Connection & Security are enabled. Everything else remains unchecked and will be hidden from this user's portal.
Access Portal Tab - Existing User with Restrictions Applied
The same configuration on a saved user record. The blue info box reminds admins of the two-state logic: empty list -> full portal; any item in list -> restricted mode showing only checked entries.
Result - The Portal Home Page Shows Only Allowed Menus
When the user logs into the portal, only the three enabled menus appear - Purchase Requests, Stock Requests, and Connection & Security. All Quotations, Orders, Invoices, Projects, Tasks, and other sections are silently hidden. The result is a clean, focused portal experience tailored exactly to this user's role.
Customer Invoice Portal
Show customers only their invoices and payment methods. Hide projects, tasks, purchase orders, and any other section completely unrelated to billing.
Vendor / Supplier Portal
Give suppliers access to RFQs, Purchase Orders, and vendor bills only. Remove all sales-side menus so vendors see a clean purchasing-only portal.
Project Client Access
Project clients need only Projects, Tasks, and Timesheets. Enable exactly those three menus and hide everything else for a focused project collaboration portal.
Support-Only Portal
Some users only need to submit and track support tickets. Enable Tickets and Connection & Security - nothing else - for the simplest possible self-service experience.
Multi-Segment Business
A business serving retail customers, corporate clients, vendors, and service partners - each type gets a fully different portal layout with no custom development required.
Custom Purchase Request Portal
Enable custom portal URLs from third-party modules (e.g. /my/purchase_requests, /my/stock_requests) by adding them manually - works for any portal-capable Odoo module.
| Menu Name | Portal URL | Source Module |
|---|---|---|
| Quotations to review | /my/quotes | sale |
| Your Orders | /my/orders | sale |
| Your Invoices | /my/invoices?filterby=invoices | account |
| Payment Methods | /my/payment_method | payment |
| Projects | /my/projects | project |
| Tasks | /my/tasks | project |
| Timesheets | /my/timesheets | hr_timesheet |
| Tickets | /my/tickets | helpdesk |
| Requests for Quotation | /my/rfq | purchase |
| Our Orders | /my/purchase | purchase |
| Our Invoices | /my/invoices?filterby=bills | account |
| Connection & Security | /my/security | portal |
Any URL not in this list (from custom or third-party modules) can be added manually via "Add a line" in the tab.
Installation & Configuration
- Prerequisites: Only requires the standard
portalmodule - Community or Enterprise - Install: Copy the module to your addons path and install via Apps -> Update App List -> Search "Portal Access Management"
- No configuration needed globally: The module is silent for all users with an empty access list - existing portals are unaffected
- Configure a user: Open Settings -> Users, pick a portal user, go to the "Access portal" tab, and click "Load portal menu"
- Enable menus: Check the Access column for the menus this user should see. Save the record.
- Test: Log in as that portal user and verify that only the selected menus appear on the portal home page
Safe by design: Leaving a user's "Access portal" list empty is equivalent to doing nothing - the portal renders exactly as standard Odoo. Only users with at least one item in the list are affected.
Better User Experience
Portal users see only what is relevant to them. A cleaner, purpose-built interface reduces confusion and increases satisfaction - especially for non-technical external users.
Reduced Information Exposure
Keep business processes private from users who do not need to know about them. Vendors should not see sales menus; customers should not see purchase menus.
Faster Onboarding
New portal users do not need to figure out which sections apply to them. A pre-filtered portal reduces the learning curve and support requests.
Role-Based Portal Without Development
Create distinct portal experiences for different user types - customers, vendors, project clients, service partners - all from a simple admin tab, with zero custom code.
Need Help or Have a Feature Request?
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