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
odoo/odoo:
- web
- bus
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).

![dummy_app](../static/description/dummy_app.png)

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 IDNameModelTypeStatus
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_start Datetime
    default=fields.Datetime.now name='Date start' required=True
  • date_stop Datetime
    default=fields.Datetime.now name='Date stop' required=True
  • my_other_value Char
    name='Other value' required=True
  • my_value Char
    name='Value' required=True
Public methods (0)

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)