TIP: You can type at any time to perform a new search.
Group backend
base_group_backend · OCA/server-backend
- Repository
- OCA/server-backend · module folder · Try on Runboat
- Module version
- 1.1.0
- Category
- Tools
- Folder size
- 0.14 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/server-backend
- Last tracking update
- 2026-08-07 08:43:03
- Authors
- Odoo Community Association (OCA), Pierre Verkest
- Maintainers
- Odoo Community Association (OCA), Pierre Verkest
- Committers
- Florian da Costa, OCA-git-bot, oca-ci
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- None
- Description
This module adds two "Backend User" groups (`group_backend` and `group_backend_ui_users`) with restricted access to odoo backend only (`/web`), with less and more controlled access than the native "Internal User" group. > The problem with the "Internal User" group (`base.group_user`) is that > it can be used by any new module added to your project, so you don't > control clearly this group's accesses. The UI access is provided only for `group_backend_ui_users` : - minimal default access rules to access the user's own data: - users and partners - mail activity, notification and channel - presence - minimal default menu to restrict the available ones: - notification - activities Here is an example where a user from `group_backend_ui_users` can only access and use the Dummy App. No other application is available to this user (you may define your own application instead of the Dummy one).  We suggest to use this module with its companion `base_user_role`. ## Limitations At the time of writing, Odoo uses `user.share == False` and `user.has_group("base.group_user") == True` to give the backend access to `user`. So technically, the module does 2 things : - It sets the `share` parameter to `False` for `group_backend` users. - It hijacks the `has_group` method of res.users by returning `True` for `group_backend` users when the requested group is `base.group_user` This avoids to write a lot of overwrite in different controllers from different modules ('portal', 'web', 'base', 'website') with hard coded statements that check if user is part of the `base.group_user` or `share == False` group.
Code Analysis ⓘ
Views touched (1)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
backend_dummy_model_tree_view |
Backend dummy list view | backend.dummy.model | list | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (3)
New fields (4)
-
date_startDatetimedefault=fields.Datetime.nowname='Date start'required=True -
date_stopDatetimedefault=fields.Datetime.nowname='Date stop'required=True -
my_other_valueCharname='Other value'required=True -
my_valueCharname='Value'required=True
No public methods.
New fields (0)
No new fields.
Public methods (1)-
get_user_roots(self)@api.model@api.returns('self')Avoid to display root menus with no defined groups_id to Backend UI Users like 'spreadsheet_dashboard.spreadsheet_dashboard_menu_root' or 'base.menu_management'.
New fields (0)
No new fields.
Public methods (0)No public methods.
Loading…
- Status
- Open migration PR — not merged yet for this version
- CI status
- green — ready to merge
- Open since
- 469 days ago
- Last activity
- 88 days ago
- Repository
- OCA/server-backend
- Pull request
- [15.0][MIG] base_group_backend: Migration to 15.0 (#359)