1313 instances :
1414 - version :
1515 major : 1
16- minor : 1
16+ minor : 2
1717 patch : 1
1818 authorizationModel : |
1919 model
@@ -31,21 +31,42 @@ spec:
3131 define owner: [team#member] or owner from parent
3232 define writer: [user] or owner or writer from parent
3333 define auditor: [user, team#member] or writer or auditor from parent
34+ # The meeting_coordinator relation identifies a user who can manage any meeting
35+ # for a given project.
36+ define meeting_coordinator: [user]
3437 define viewer: [user:*] or auditor or auditor from parent
3538
3639 type committee
3740 relations
3841 define member: [user]
3942 define project: [project]
4043 define writer: writer from project
41- define auditor: auditor from project
44+ define auditor: auditor from project or meeting_coordinator from project
4245 define viewer: [user:*] or auditor from project
4346
4447 type meeting
4548 relations
4649 define project: [project]
4750 define committee: [committee]
48- define organizer: [user]
49- define participant: [user, committee#member]
50- define viewer: [user:*, committee#member] or participant or auditor from project
51+ # The organizer relation identifies a user who can manage this one meeting.
52+ # That means they can update the meeting details, invite/uninvite participants, etc.
53+ define organizer: [user] or meeting_coordinator from project or writer from project
54+ # The host relation identifies a user who is a host of this meeting.
55+ # This is different than the organizer relation because an organizer isn't necessarily
56+ # the user who is hosting the meeting, nor is the host necessarily the one who is
57+ # organizing the meeting. For example, a host may need to retrieve the Zoom host key
58+ # but shouldn't be able to update the meeting details.
59+ define host: [user] or organizer
60+ # The participant relation identifies a user who is a participant in this meeting.
61+ # This can either mean they are invited to the meeting or they attended the meeting
62+ # without being invited. In either case, they are a participant of that meeting.
63+ # Note that committee members are not automatically participants of meetings,
64+ # because the backend service needs to only include members from the committee
65+ # based on the voting status filters of that meeting. That is managed by the backend
66+ # services and therefore can't be a relationship in the authorization model.
67+ define participant: [user] or host
68+ # The viewer relation identifies a user who can view this meeting.
69+ # If the meeting is public, then any user can view it; but if it is private, then
70+ # only certain privileged users can view it.
71+ define viewer: [user:*] or participant or organizer or auditor from project
5172{{- end }}
0 commit comments