Users - OpenSlides/OpenSlides GitHub Wiki
The user model generally does not belong to a meeting (in contrast to OS3). A user has a scope which is mostly used to determinate who can update a user. Archived meetings are ignored for scope calculation.
- Meeting: The user is assigned to exactly one meeting and one committee.
- Committee: The user is assigned to exactly one committee and more than one assigned meeting belonging to this committee.
- Organization: None of the above: The user is in multiple committees or the user is neither in a meeting nor in a committee.
A user is associated to a committee if he has a committee_management_level
for this committee or is associated via group membership to at least one meeting of the committee. He will be removed if these conditions are not fulfilled anymore.
A user is associated to a meeting if he is in at least one group of the meeting. There is a calculated relation user/meeting_ids
that the client can use. There is also a calculated reverse relation meeting/user_ids
.
Whether the request user is allowed to execute the action depends on the scope of the updated user:
-
organization:
The request user needs the OML
can_manage_users
-
Committee:
The request user needs at least one of:
- the OML
can_manage_users
- the CML
can_manage
in the committee
- the OML
-
Meeting:
The request user needs at least one of:
- the OML
can_manage_users
- the CML
can_manage
in the meeting's committee -
user.can_manage
in the meeting
- the OML
A user can delegegate his vote right to another user (meeting_user/vote_delegated_to_id
) and a user can
receive delegations (meeting_user/vote_delegations_from_ids
). These relations are set up per meeting. It
is not allowed to delegate to oneself and it is not allowed to receive delegations and delegate at
the same time. So one relation has to be not set all the time.