@@ -8,14 +8,13 @@ enum Ability: string
8
8
{
9
9
use NamedOption;
10
10
11
- case ViewAccount = 'users.view_account ' ;
12
- case EditAccount = 'users.edit_account ' ;
13
- case ManagePersonalAccessTokens = 'personal_access_tokens.manage_own ' ;
14
-
11
+ // Events
15
12
case ViewEvents = 'events.view ' ;
16
13
case ViewPrivateEvents = 'events.view_private ' ;
17
14
case CreateEvents = 'events.create ' ;
18
15
case EditEvents = 'events.edit ' ;
16
+ case ViewResponsibilitiesOfEvents = 'events.responsibilities.view ' ;
17
+
19
18
case ManageBookingOptionsOfEvent = 'events.manage_booking_options ' ;
20
19
case ViewBookingsOfEvent = 'events.view_bookings ' ;
21
20
case ExportBookingsOfEvent = 'events.export_bookings ' ;
@@ -24,39 +23,45 @@ enum Ability: string
24
23
case EditBookingComment = 'events.edit_booking_comment ' ;
25
24
case ViewPaymentStatus = 'events.view_payment_status ' ;
26
25
case EditPaymentStatus = 'events.edit_payment_status ' ;
26
+
27
27
case ManageGroupsOfEvent = 'events.manage_groups ' ;
28
28
case ExportGroupsOfEvent = 'events.export_groups ' ;
29
- case ViewDocumentsOfEvents = 'events.documents.view ' ;
30
- case AddDocumentsToEvents = 'events.documents.create ' ;
31
- case EditDocumentsOfEvents = 'events.documents.edit ' ;
32
- case DeleteDocumentsOfEvents = 'events.documents.delete ' ;
33
- case ViewResponsibilitiesOfEvents = 'events.responsibilities.view ' ;
34
29
35
30
case ViewEventSeries = 'event_series.view ' ;
36
31
case ViewPrivateEventSeries = 'event_series.view_private ' ;
37
32
case CreateEventSeries = 'event_series.create ' ;
38
33
case EditEventSeries = 'event_series.edit ' ;
39
- case ViewDocumentsOfEventSeries = 'event_series.documents.view ' ;
40
- case AddDocumentsToEventSeries = 'event_series.documents.create ' ;
41
- case EditDocumentsOfEventSeries = 'event_series.documents.edit ' ;
42
- case DeleteDocumentsOfEventSeries = 'event_series.documents.delete ' ;
43
34
case ViewResponsibilitiesOfEventSeries = 'event_series.responsibilities.view ' ;
44
35
36
+ // Basic data
37
+ case ViewOrganizations = 'organizations.view ' ;
38
+ case CreateOrganizations = 'organizations.create ' ;
39
+ case EditOrganizations = 'organizations.edit ' ;
40
+ case ViewResponsibilitiesOfOrganizations = 'organizations.responsibilities.view ' ;
41
+
45
42
case ViewLocations = 'locations.view ' ;
46
43
case CreateLocations = 'locations.create ' ;
47
44
case EditLocations = 'locations.edit ' ;
48
45
49
- case ViewOrganizations = 'organizations.view ' ;
50
- case CreateOrganizations = 'organizations.create ' ;
51
- case EditOrganizations = 'organizations.edit ' ;
46
+ // Documents
47
+ case ViewDocuments = 'documents.view ' ;
48
+
49
+ case ViewDocumentsOfEvents = 'events.documents.view ' ;
50
+ case AddDocumentsToEvents = 'events.documents.create ' ;
51
+ case EditDocumentsOfEvents = 'events.documents.edit ' ;
52
+ case DeleteDocumentsOfEvents = 'events.documents.delete ' ;
53
+
54
+ case ViewDocumentsOfEventSeries = 'event_series.documents.view ' ;
55
+ case AddDocumentsToEventSeries = 'event_series.documents.create ' ;
56
+ case EditDocumentsOfEventSeries = 'event_series.documents.edit ' ;
57
+ case DeleteDocumentsOfEventSeries = 'event_series.documents.delete ' ;
58
+
52
59
case ViewDocumentsOfOrganizations = 'organizations.documents.view ' ;
53
60
case AddDocumentsToOrganizations = 'organizations.documents.create ' ;
54
61
case EditDocumentsOfOrganizations = 'organizations.documents.edit ' ;
55
62
case DeleteDocumentsOfOrganizations = 'organizations.documents.delete ' ;
56
- case ViewResponsibilitiesOfOrganizations = 'organizations.responsibilities.view ' ;
57
-
58
- case ViewDocuments = 'documents.view ' ;
59
63
64
+ // Users and abilities
60
65
case ViewUsers = 'users.view ' ;
61
66
case CreateUsers = 'users.create ' ;
62
67
case EditUsers = 'users.edit ' ;
@@ -65,17 +70,84 @@ enum Ability: string
65
70
case CreateUserRoles = 'user_roles.create ' ;
66
71
case EditUserRoles = 'user_roles.edit ' ;
67
72
68
- public function getTranslatedName (): string
73
+ case ViewAccount = 'users.view_account ' ;
74
+ case ViewAbilities = 'users.view_account.abilities ' ;
75
+ case EditAccount = 'users.edit_account ' ;
76
+ case ManagePersonalAccessTokens = 'personal_access_tokens.manage_own ' ;
77
+
78
+ public function getAbilityGroup (): AbilityGroup
69
79
{
70
80
return match ($ this ) {
71
- self ::ViewAccount => __ ('View own account ' ),
72
- self ::EditAccount => __ ('Edit own account ' ),
73
- self ::ManagePersonalAccessTokens => __ ('Manage personal access tokens ' ),
81
+ // Events
82
+ self ::ViewEvents,
83
+ self ::ViewPrivateEvents,
84
+ self ::CreateEvents,
85
+ self ::EditEvents,
86
+ self ::ViewResponsibilitiesOfEvents => AbilityGroup::Events,
87
+ self ::ManageBookingOptionsOfEvent,
88
+ self ::ViewBookingsOfEvent,
89
+ self ::ExportBookingsOfEvent,
90
+ self ::EditBookingsOfEvent,
91
+ self ::DeleteAndRestoreBookingsOfEvent,
92
+ self ::EditBookingComment,
93
+ self ::ViewPaymentStatus,
94
+ self ::EditPaymentStatus => AbilityGroup::Bookings,
95
+ self ::ManageGroupsOfEvent,
96
+ self ::ExportGroupsOfEvent => AbilityGroup::Groups,
97
+ self ::ViewEventSeries,
98
+ self ::ViewPrivateEventSeries,
99
+ self ::CreateEventSeries,
100
+ self ::EditEventSeries,
101
+ self ::ViewResponsibilitiesOfEventSeries => AbilityGroup::EventSeries,
102
+
103
+ // Basic data
104
+ self ::ViewOrganizations,
105
+ self ::CreateOrganizations,
106
+ self ::EditOrganizations,
107
+ self ::ViewResponsibilitiesOfOrganizations => AbilityGroup::Organizations,
108
+ self ::ViewLocations,
109
+ self ::CreateLocations,
110
+ self ::EditLocations => AbilityGroup::Locations,
111
+
112
+ // Documents
113
+ self ::ViewDocuments => AbilityGroup::Documents,
114
+ self ::ViewDocumentsOfEvents,
115
+ self ::AddDocumentsToEvents,
116
+ self ::EditDocumentsOfEvents,
117
+ self ::DeleteDocumentsOfEvents => AbilityGroup::DocumentsOfEvents,
118
+ self ::ViewDocumentsOfEventSeries,
119
+ self ::AddDocumentsToEventSeries,
120
+ self ::EditDocumentsOfEventSeries,
121
+ self ::DeleteDocumentsOfEventSeries => AbilityGroup::DocumentsOfEventSeries,
122
+ self ::ViewDocumentsOfOrganizations,
123
+ self ::AddDocumentsToOrganizations,
124
+ self ::EditDocumentsOfOrganizations,
125
+ self ::DeleteDocumentsOfOrganizations => AbilityGroup::DocumentsOfOrganizations,
126
+
127
+ // Users and abilities
128
+ self ::ViewUsers,
129
+ self ::CreateUsers,
130
+ self ::EditUsers => AbilityGroup::Users,
131
+ self ::ViewUserRoles,
132
+ self ::CreateUserRoles,
133
+ self ::EditUserRoles => AbilityGroup::UserRoles,
134
+ self ::ViewAccount,
135
+ self ::ViewAbilities,
136
+ self ::EditAccount,
137
+ self ::ManagePersonalAccessTokens => AbilityGroup::OwnAccount,
138
+ };
139
+ }
74
140
141
+ public function getTranslatedName (): string
142
+ {
143
+ return match ($ this ) {
144
+ // Events
75
145
self ::ViewEvents => __ ('View events ' ),
76
146
self ::ViewPrivateEvents => __ ('View private events ' ),
77
147
self ::CreateEvents => __ ('Create events ' ),
78
148
self ::EditEvents => __ ('Edit events ' ),
149
+ self ::ViewResponsibilitiesOfEvents => __ ('View responsibilities of events ' ),
150
+
79
151
self ::ManageBookingOptionsOfEvent => __ ('Manage booking options of event ' ),
80
152
self ::ViewBookingsOfEvent => __ ('View bookings of event ' ),
81
153
self ::ExportBookingsOfEvent => __ ('Export bookings of event ' ),
@@ -84,46 +156,67 @@ public function getTranslatedName(): string
84
156
self ::EditBookingComment => __ ('Edit booking comment ' ),
85
157
self ::ViewPaymentStatus => __ ('View payment status ' ),
86
158
self ::EditPaymentStatus => __ ('Edit payment status ' ),
159
+
87
160
self ::ManageGroupsOfEvent => __ ('Manage groups of event ' ),
88
161
self ::ExportGroupsOfEvent => __ ('Export groups of event ' ),
89
- self ::ViewDocumentsOfEvents => __ ('View documents of events ' ),
90
- self ::AddDocumentsToEvents => __ ('Add documents to events ' ),
91
- self ::EditDocumentsOfEvents => __ ('Update documents of events ' ),
92
- self ::DeleteDocumentsOfEvents => __ ('Delete documents of events ' ),
93
- self ::ViewResponsibilitiesOfEvents => __ ('View responsibilities of events ' ),
94
162
95
163
self ::ViewEventSeries => __ ('View event series ' ),
96
164
self ::ViewPrivateEventSeries => __ ('View private event series ' ),
97
165
self ::CreateEventSeries => __ ('Create event series ' ),
98
166
self ::EditEventSeries => __ ('Edit event series ' ),
99
- self ::ViewDocumentsOfEventSeries => __ ('View documents of event series ' ),
100
- self ::AddDocumentsToEventSeries => __ ('Add documents to event series ' ),
101
- self ::EditDocumentsOfEventSeries => __ ('Update documents of event series ' ),
102
- self ::DeleteDocumentsOfEventSeries => __ ('Delete documents of event series ' ),
103
167
self ::ViewResponsibilitiesOfEventSeries => __ ('View responsibilities of event series ' ),
104
168
169
+ // Basic data
170
+ self ::ViewOrganizations => __ ('View organizations ' ),
171
+ self ::CreateOrganizations => __ ('Create organizations ' ),
172
+ self ::EditOrganizations => __ ('Edit organizations ' ),
173
+ self ::ViewResponsibilitiesOfOrganizations => __ ('View responsibilities of organizations ' ),
174
+
105
175
self ::ViewLocations => __ ('View locations ' ),
106
176
self ::CreateLocations => __ ('Create locations ' ),
107
177
self ::EditLocations => __ ('Edit locations ' ),
108
178
109
- self ::ViewOrganizations => __ ('View organizations ' ),
110
- self ::CreateOrganizations => __ ('Create organizations ' ),
111
- self ::EditOrganizations => __ ('Edit organizations ' ),
179
+ // Documents
180
+ self ::ViewDocuments => __ ('View documents ' ),
181
+
182
+ self ::ViewDocumentsOfEvents => __ ('View documents of events ' ),
183
+ self ::AddDocumentsToEvents => __ ('Add documents to events ' ),
184
+ self ::EditDocumentsOfEvents => __ ('Update documents of events ' ),
185
+ self ::DeleteDocumentsOfEvents => __ ('Delete documents of events ' ),
186
+
187
+ self ::ViewDocumentsOfEventSeries => __ ('View documents of event series ' ),
188
+ self ::AddDocumentsToEventSeries => __ ('Add documents to event series ' ),
189
+ self ::EditDocumentsOfEventSeries => __ ('Update documents of event series ' ),
190
+ self ::DeleteDocumentsOfEventSeries => __ ('Delete documents of event series ' ),
191
+
112
192
self ::ViewDocumentsOfOrganizations => __ ('View documents of organizations ' ),
113
193
self ::AddDocumentsToOrganizations => __ ('Add documents to organizations ' ),
114
194
self ::EditDocumentsOfOrganizations => __ ('Update documents of organizations ' ),
115
195
self ::DeleteDocumentsOfOrganizations => __ ('Delete documents of organizations ' ),
116
- self ::ViewResponsibilitiesOfOrganizations => __ ('View responsibilities of organizations ' ),
117
-
118
- self ::ViewDocuments => __ ('View documents ' ),
119
196
197
+ // Users and abilities
120
198
self ::ViewUsers => __ ('View users ' ),
121
199
self ::CreateUsers => __ ('Create users ' ),
122
200
self ::EditUsers => __ ('Edit users ' ),
123
201
124
202
self ::ViewUserRoles => __ ('View user roles ' ),
125
203
self ::CreateUserRoles => __ ('Create user roles ' ),
126
204
self ::EditUserRoles => __ ('Edit user roles ' ),
205
+
206
+ self ::ViewAccount => __ ('View own account ' ),
207
+ self ::ViewAbilities => __ ('View abilities ' ),
208
+ self ::EditAccount => __ ('Edit own account ' ),
209
+ self ::ManagePersonalAccessTokens => __ ('Manage personal access tokens ' ),
127
210
};
128
211
}
212
+
213
+ /**
214
+ * @return self[]
215
+ */
216
+ public static function apiCases (): array
217
+ {
218
+ return [
219
+ self ::EditAccount,
220
+ ];
221
+ }
129
222
}
0 commit comments