Skip to content

[IMP] Access Rights: Technical Access Rights #12830

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 68 additions & 7 deletions content/applications/general/users/access_rights.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ should not have access to.
Once complete, click :guilabel:`Save` to save the changes, and implement the user as an
administrator.

Users
=====
Manage user permissions
=======================

The access rights for :ref:`individual users <users/add-individual>` are set when the user is added
to the database, but they can be adjusted at any point in the user's profile.
Expand All @@ -52,6 +52,67 @@ The :guilabel:`Administration` field in the :guilabel:`Access Rights` tab has th
.. image:: access_rights/user-permissions-dropdown-menu.png
:alt: The Sales apps drop-down menu to set the user's level of permissions.

Manage specific permissions
---------------------------

While access rights are typically assigned in bundles under specific roles, they can also be set as
explicit permissions.

.. example::
For example, giving a user the :guilabel:`Administrator` permission for **Timesheets**
gives them full access to that app. That user, while holding full access, can *still* have their
ability to manage *their own* timesheets restricted — such as in the case of a salaried payroll
administrator who does not need to track time.

To manage specific permissions, :ref:`developer mode <developer-mode>` must be enabled.

After that, navigate to the :menuselection:`Settings` app. Then click :guilabel:`Manage Users`,
select a user, and go to the :guilabel:`Technical Access Rights` tab. From here, :guilabel:`Groups`
can be edited, and specific access rights can be managed across the various sections. If no changes
are made to these groups, then their permissions will mirror the selections made in the
:guilabel:`Access Rights` tab.

- :guilabel:`Selected groups`: a list of detailed access rights, set by choices made in the
:guilabel:`Access Rights` tab.
- :guilabel:`Groups added automatically`: *implied* permissions that are *inherited* with the
explicit permissions already granted to the user. The values here will match the values listed
under a given *Group*'s form located under the :menuselection:`Users & Companies --> Groups` menu,
in the :guilabel:`Inherited` tab.

.. image:: access_rights/tech-access-rights.png
:alt: The technical access rights tab opened up for a user profile.

.. example::
When the *Sales Administrator* permission set is assigned to a user, then the *Canned Responses
Administrator* permissions are inherited automatically. These assignments are reflected across
the values listed in the :guilabel:`Selected Groups` and :guilabel:`Groups added automatically`
tables, respectively.
Comment on lines +86 to +89
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be precise with matching the UI, I recommend restating like so with :guilabel:s for the UI text

Suggested change
When the *Sales Administrator* permission set is assigned to a user, then the *Canned Responses
Administrator* permissions are inherited automatically. These assignments are reflected across
the values listed in the :guilabel:`Selected Groups` and :guilabel:`Groups added automatically`
tables, respectively.
When the :guilabel:`Sales` app's :guilabel:`Administrator` permission is assigned to a user, then
the :guilabel:`Canned Responses Administrator` permissions are inherited automatically. These
assignments are reflected across the values listed in the :guilabel:`Selected Groups` and
:guilabel:`Groups added automatically` tables, respectively.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're entertaining a hypothetical example, we do not need guis here


To add a permission to this user profile, click :guilabel:`Add a line` in the :guilabel:`Selected
groups` table, and then add permissions to this user profile. To remove a permission, click the
:icon:`fa-times` :guilabel:`(cancel)` at the end of that permission's row.
Comment on lines +91 to +93
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would mention here that removing permissions may have further permission removal consequences in the Groups added automatically table, since one informs the other. Maybe a warning block would be a useful format to emphasize this?


.. warning::
Removing permissions from the :guilabel:`Selected Groups` list can impact what permissions are
listed in the :guilabel:`Groups added automatically` list, since selected permission groups
inform what permission groups are added automatically.

Clicking on the permission itself will open a group management form. Learn more about :ref:`managing
groups <access-rights/groups>`.

Any permission in the :guilabel:`Groups added automatically` section are implied or required by the
permission shown in the :guilabel:`Selected groups` section. These cannot be removed, but more users
can be given these permissions by clicking on the permission itself, and then adding the user to
that permission's group.

.. note::
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good detail! I was wondering what the colors and italics meant!

- Any permission in green is already provided by another permission (for example, setting the
:guilabel:`Website` app's permission to :guilabel:`Editor and Designer` will also give that
user the :guilabel:`Restricted Editor` permission).
- Any permissions in red are conflicting and cannot be active at the same time.
- Any permissions in *italics* is implied by a :guilabel:`Selected group` (these are usually
found in the :guilabel:`Groups added automatically`).

.. _access-rights/groups:

Create and modify groups
Expand Down Expand Up @@ -102,8 +163,8 @@ The group form contains multiple tabs for managing all elements of the group. In
- :guilabel:`Views` tab: lists which views in Odoo the group has access to. Click :guilabel:`Add a
line` to add a view to the group.
- :guilabel:`Access Rights` tab: lists the first level of rights (models) that this group has. The
:guilabel:`Name` column represents the name for the current group's access to the model
selected in the :guilabel:`Model` column.
:guilabel:`Name` column represents the name for the current group's access to the model selected
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Optional fix, on line 142.

content/applications/general/users/access_rights.rst:142: consider moving ":guilabel:`Add" to line 142 (early-line-breaks)
make: *** [review] Error 1

in the :guilabel:`Model` column.

To link a new access right to a group, click :guilabel:`Add a line`. Select the appropriate model
from the :guilabel:`Model` drop-down, then enter a name for the access right in the
Expand All @@ -125,9 +186,9 @@ The group form contains multiple tabs for managing all elements of the group. In
.. image:: access_rights/name-field.png
:alt: Name of access rights to a model.

To find the model's technical name from the current view, first enter a placeholder text
in the :guilabel:`Name` field, then click the :guilabel:`Model` name, then the
:icon:`fa-arrow-right` :guilabel:`(Internal link)` icon.
To find the model's technical name from the current view, first enter a placeholder text in the
:guilabel:`Name` field, then click the :guilabel:`Model` name, then the :icon:`fa-arrow-right`
:guilabel:`(Internal link)` icon.

- :guilabel:`Record Rules`: lists the second layer of editing and visibility rights.
:guilabel:`Record Rules` overwrite, or refine, the group's access rights. Click :guilabel:`Add a
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.