]> BookStack Code Mirror - bookstack/blob - resources/views/settings/roles/parts/form.blade.php
Added role permissions for exporting content
[bookstack] / resources / views / settings / roles / parts / form.blade.php
1 {!! csrf_field() !!}
2
3 <div class="card content-wrap">
4     <h1 class="list-heading">{{ $title }}</h1>
5
6     <div class="setting-list">
7
8         <div class="grid half">
9             <div>
10                 <label class="setting-list-label">{{ trans('settings.role_details') }}</label>
11             </div>
12             <div>
13                 <div class="form-group">
14                     <label for="display_name">{{ trans('settings.role_name') }}</label>
15                     @include('form.text', ['name' => 'display_name'])
16                 </div>
17                 <div class="form-group">
18                     <label for="description">{{ trans('settings.role_desc') }}</label>
19                     @include('form.text', ['name' => 'description'])
20                 </div>
21                 <div class="form-group">
22                     @include('form.checkbox', ['name' => 'mfa_enforced', 'label' => trans('settings.role_mfa_enforced') ])
23                 </div>
24
25                 @if(config('auth.method') === 'ldap' || config('auth.method') === 'saml2')
26                     <div class="form-group">
27                         <label for="name">{{ trans('settings.role_external_auth_id') }}</label>
28                         @include('form.text', ['name' => 'external_auth_id'])
29                     </div>
30                 @endif
31             </div>
32         </div>
33
34         <div permissions-table>
35             <label class="setting-list-label">{{ trans('settings.role_system') }}</label>
36             <a href="#" permissions-table-toggle-all class="text-small text-primary">{{ trans('common.toggle_all') }}</a>
37
38             <div class="toggle-switch-list grid half mt-m">
39                 <div>
40                     <div>@include('settings.roles.parts.checkbox', ['permission' => 'restrictions-manage-all', 'label' => trans('settings.role_manage_entity_permissions')])</div>
41                     <div>@include('settings.roles.parts.checkbox', ['permission' => 'restrictions-manage-own', 'label' => trans('settings.role_manage_own_entity_permissions')])</div>
42                     <div>@include('settings.roles.parts.checkbox', ['permission' => 'templates-manage', 'label' => trans('settings.role_manage_page_templates')])</div>
43                     <div>@include('settings.roles.parts.checkbox', ['permission' => 'access-api', 'label' => trans('settings.role_access_api')])</div>
44                     <div>@include('settings.roles.parts.checkbox', ['permission' => 'content-export', 'label' => trans('settings.role_export_content')])</div>
45                 </div>
46                 <div>
47                     <div>@include('settings.roles.parts.checkbox', ['permission' => 'settings-manage', 'label' => trans('settings.role_manage_settings')])</div>
48                     <div>@include('settings.roles.parts.checkbox', ['permission' => 'users-manage', 'label' => trans('settings.role_manage_users')])</div>
49                     <div>@include('settings.roles.parts.checkbox', ['permission' => 'user-roles-manage', 'label' => trans('settings.role_manage_roles')])</div>
50                     <p class="text-warn text-small mt-s mb-none">{{ trans('settings.roles_system_warning') }}</p>
51                 </div>
52             </div>
53         </div>
54
55         <div>
56             <label class="setting-list-label">{{ trans('settings.role_asset') }}</label>
57             <p>{{ trans('settings.role_asset_desc') }}</p>
58
59             @if (isset($role) && $role->system_name === 'admin')
60                 <p class="text-warn">{{ trans('settings.role_asset_admins') }}</p>
61             @endif
62
63             <table permissions-table class="table toggle-switch-list compact permissions-table">
64                 <tr>
65                     <th width="20%">
66                         <a href="#" permissions-table-toggle-all class="text-small text-primary">{{ trans('common.toggle_all') }}</a>
67                     </th>
68                     <th width="20%" permissions-table-toggle-all-in-column>{{ trans('common.create') }}</th>
69                     <th width="20%" permissions-table-toggle-all-in-column>{{ trans('common.view') }}</th>
70                     <th width="20%" permissions-table-toggle-all-in-column>{{ trans('common.edit') }}</th>
71                     <th width="20%" permissions-table-toggle-all-in-column>{{ trans('common.delete') }}</th>
72                 </tr>
73                 <tr>
74                     <td>
75                         <div>{{ trans('entities.shelves_long') }}</div>
76                         <a href="#" permissions-table-toggle-all-in-row class="text-small text-primary">{{ trans('common.toggle_all') }}</a>
77                     </td>
78                     <td>
79                         @include('settings.roles.parts.checkbox', ['permission' => 'bookshelf-create-all', 'label' => trans('settings.role_all')])
80                     </td>
81                     <td>
82                         @include('settings.roles.parts.checkbox', ['permission' => 'bookshelf-view-own', 'label' => trans('settings.role_own')])
83                         <br>
84                         @include('settings.roles.parts.checkbox', ['permission' => 'bookshelf-view-all', 'label' => trans('settings.role_all')])
85                     </td>
86                     <td>
87                         @include('settings.roles.parts.checkbox', ['permission' => 'bookshelf-update-own', 'label' => trans('settings.role_own')])
88                         <br>
89                         @include('settings.roles.parts.checkbox', ['permission' => 'bookshelf-update-all', 'label' => trans('settings.role_all')])
90                     </td>
91                     <td>
92                         @include('settings.roles.parts.checkbox', ['permission' => 'bookshelf-delete-own', 'label' => trans('settings.role_own')])
93                         <br>
94                         @include('settings.roles.parts.checkbox', ['permission' => 'bookshelf-delete-all', 'label' => trans('settings.role_all')])
95                     </td>
96                 </tr>
97                 <tr>
98                     <td>
99                         <div>{{ trans('entities.books') }}</div>
100                         <a href="#" permissions-table-toggle-all-in-row class="text-small text-primary">{{ trans('common.toggle_all') }}</a>
101                     </td>
102                     <td>
103                         @include('settings.roles.parts.checkbox', ['permission' => 'book-create-all', 'label' => trans('settings.role_all')])
104                     </td>
105                     <td>
106                         @include('settings.roles.parts.checkbox', ['permission' => 'book-view-own', 'label' => trans('settings.role_own')])
107                         <br>
108                         @include('settings.roles.parts.checkbox', ['permission' => 'book-view-all', 'label' => trans('settings.role_all')])
109                     </td>
110                     <td>
111                         @include('settings.roles.parts.checkbox', ['permission' => 'book-update-own', 'label' => trans('settings.role_own')])
112                         <br>
113                         @include('settings.roles.parts.checkbox', ['permission' => 'book-update-all', 'label' => trans('settings.role_all')])
114                     </td>
115                     <td>
116                         @include('settings.roles.parts.checkbox', ['permission' => 'book-delete-own', 'label' => trans('settings.role_own')])
117                         <br>
118                         @include('settings.roles.parts.checkbox', ['permission' => 'book-delete-all', 'label' => trans('settings.role_all')])
119                     </td>
120                 </tr>
121                 <tr>
122                     <td>
123                         <div>{{ trans('entities.chapters') }}</div>
124                         <a href="#" permissions-table-toggle-all-in-row class="text-small text-primary">{{ trans('common.toggle_all') }}</a>
125                     </td>
126                     <td>
127                         @include('settings.roles.parts.checkbox', ['permission' => 'chapter-create-own', 'label' => trans('settings.role_own')])
128                         <br>
129                         @include('settings.roles.parts.checkbox', ['permission' => 'chapter-create-all', 'label' => trans('settings.role_all')])
130                     </td>
131                     <td>
132                         @include('settings.roles.parts.checkbox', ['permission' => 'chapter-view-own', 'label' => trans('settings.role_own')])
133                         <br>
134                         @include('settings.roles.parts.checkbox', ['permission' => 'chapter-view-all', 'label' => trans('settings.role_all')])
135                     </td>
136                     <td>
137                         @include('settings.roles.parts.checkbox', ['permission' => 'chapter-update-own', 'label' => trans('settings.role_own')])
138                         <br>
139                         @include('settings.roles.parts.checkbox', ['permission' => 'chapter-update-all', 'label' => trans('settings.role_all')])
140                     </td>
141                     <td>
142                         @include('settings.roles.parts.checkbox', ['permission' => 'chapter-delete-own', 'label' => trans('settings.role_own')])
143                         <br>
144                         @include('settings.roles.parts.checkbox', ['permission' => 'chapter-delete-all', 'label' => trans('settings.role_all')])
145                     </td>
146                 </tr>
147                 <tr>
148                     <td>
149                         <div>{{ trans('entities.pages') }}</div>
150                         <a href="#" permissions-table-toggle-all-in-row class="text-small text-primary">{{ trans('common.toggle_all') }}</a>
151                     </td>
152                     <td>
153                         @include('settings.roles.parts.checkbox', ['permission' => 'page-create-own', 'label' => trans('settings.role_own')])
154                         <br>
155                         @include('settings.roles.parts.checkbox', ['permission' => 'page-create-all', 'label' => trans('settings.role_all')])
156                     </td>
157                     <td>
158                         @include('settings.roles.parts.checkbox', ['permission' => 'page-view-own', 'label' => trans('settings.role_own')])
159                         <br>
160                         @include('settings.roles.parts.checkbox', ['permission' => 'page-view-all', 'label' => trans('settings.role_all')])
161                     </td>
162                     <td>
163                         @include('settings.roles.parts.checkbox', ['permission' => 'page-update-own', 'label' => trans('settings.role_own')])
164                         <br>
165                         @include('settings.roles.parts.checkbox', ['permission' => 'page-update-all', 'label' => trans('settings.role_all')])
166                     </td>
167                     <td>
168                         @include('settings.roles.parts.checkbox', ['permission' => 'page-delete-own', 'label' => trans('settings.role_own')])
169                         <br>
170                         @include('settings.roles.parts.checkbox', ['permission' => 'page-delete-all', 'label' => trans('settings.role_all')])
171                     </td>
172                 </tr>
173                 <tr>
174                     <td>
175                         <div>{{ trans('entities.images') }}</div>
176                         <a href="#" permissions-table-toggle-all-in-row class="text-small text-primary">{{ trans('common.toggle_all') }}</a>
177                     </td>
178                     <td>@include('settings.roles.parts.checkbox', ['permission' => 'image-create-all', 'label' => ''])</td>
179                     <td style="line-height:1.2;"><small class="faded">{{ trans('settings.role_controlled_by_asset') }}</small></td>
180                     <td>
181                         @include('settings.roles.parts.checkbox', ['permission' => 'image-update-own', 'label' => trans('settings.role_own')])
182                         <br>
183                         @include('settings.roles.parts.checkbox', ['permission' => 'image-update-all', 'label' => trans('settings.role_all')])
184                     </td>
185                     <td>
186                         @include('settings.roles.parts.checkbox', ['permission' => 'image-delete-own', 'label' => trans('settings.role_own')])
187                         <br>
188                         @include('settings.roles.parts.checkbox', ['permission' => 'image-delete-all', 'label' => trans('settings.role_all')])
189                     </td>
190                 </tr>
191                 <tr>
192                     <td>
193                         <div>{{ trans('entities.attachments') }}</div>
194                         <a href="#" permissions-table-toggle-all-in-row class="text-small text-primary">{{ trans('common.toggle_all') }}</a>
195                     </td>
196                     <td>@include('settings.roles.parts.checkbox', ['permission' => 'attachment-create-all', 'label' => ''])</td>
197                     <td style="line-height:1.2;"><small class="faded">{{ trans('settings.role_controlled_by_asset') }}</small></td>
198                     <td>
199                         @include('settings.roles.parts.checkbox', ['permission' => 'attachment-update-own', 'label' => trans('settings.role_own')])
200                         <br>
201                         @include('settings.roles.parts.checkbox', ['permission' => 'attachment-update-all', 'label' => trans('settings.role_all')])
202                     </td>
203                     <td>
204                         @include('settings.roles.parts.checkbox', ['permission' => 'attachment-delete-own', 'label' => trans('settings.role_own')])
205                         <br>
206                         @include('settings.roles.parts.checkbox', ['permission' => 'attachment-delete-all', 'label' => trans('settings.role_all')])
207                     </td>
208                 </tr>
209                 <tr>
210                     <td>
211                         <div>{{ trans('entities.comments') }}</div>
212                         <a href="#" permissions-table-toggle-all-in-row class="text-small text-primary">{{ trans('common.toggle_all') }}</a>
213                     </td>
214                     <td>@include('settings.roles.parts.checkbox', ['permission' => 'comment-create-all', 'label' => ''])</td>
215                     <td style="line-height:1.2;"><small class="faded">{{ trans('settings.role_controlled_by_asset') }}</small></td>
216                     <td>
217                         @include('settings.roles.parts.checkbox', ['permission' => 'comment-update-own', 'label' => trans('settings.role_own')])
218                         <br>
219                         @include('settings.roles.parts.checkbox', ['permission' => 'comment-update-all', 'label' => trans('settings.role_all')])
220                     </td>
221                     <td>
222                         @include('settings.roles.parts.checkbox', ['permission' => 'comment-delete-own', 'label' => trans('settings.role_own')])
223                         <br>
224                         @include('settings.roles.parts.checkbox', ['permission' => 'comment-delete-all', 'label' => trans('settings.role_all')])
225                     </td>
226                 </tr>
227             </table>
228         </div>
229     </div>
230
231     <div class="form-group text-right">
232         <a href="{{ url("/settings/roles") }}" class="button outline">{{ trans('common.cancel') }}</a>
233         @if (isset($role) && $role->id)
234             <a href="{{ url("/settings/roles/delete/{$role->id}") }}" class="button outline">{{ trans('settings.role_delete') }}</a>
235         @endif
236         <button type="submit" class="button">{{ trans('settings.role_save') }}</button>
237     </div>
238
239 </div>
240
241 <div class="card content-wrap auto-height">
242     <h2 class="list-heading">{{ trans('settings.role_users') }}</h2>
243     @if(count($role->users ?? []) > 0)
244         <div class="grid third">
245             @foreach($role->users as $user)
246                 <div class="user-list-item">
247                     <div>
248                         <img class="avatar small" src="{{ $user->getAvatar(40) }}" alt="{{ $user->name }}">
249                     </div>
250                     <div>
251                         @if(userCan('users-manage') || user()->id == $user->id)
252                             <a href="{{ url("/settings/users/{$user->id}") }}">
253                                 @endif
254                                 {{ $user->name }}
255                                 @if(userCan('users-manage') || user()->id == $user->id)
256                             </a>
257                         @endif
258                     </div>
259                 </div>
260             @endforeach
261         </div>
262     @else
263         <p class="text-muted">
264             {{ trans('settings.role_users_none') }}
265         </p>
266     @endif
267 </div>