| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- @php
- $effects = old($inputName, $permissionEffects ?? []);
- $adminLocked = $adminLocked ?? false;
- $inheritLabel = $inheritLabel ?? 'Наследовать';
- @endphp
- <div class="accordion" id="permissionsAccordion">
- @foreach($permissionGroups as $group => $permissions)
- @php($groupId = 'permissions-' . \Illuminate\Support\Str::slug($group ?: 'other') . '-' . $loop->index)
- <div class="accordion-item">
- <h2 class="accordion-header" id="{{ $groupId }}-heading">
- <button class="accordion-button @if(!$loop->first) collapsed @endif" type="button"
- data-bs-toggle="collapse"
- data-bs-target="#{{ $groupId }}"
- aria-expanded="{{ $loop->first ? 'true' : 'false' }}"
- aria-controls="{{ $groupId }}">
- {{ $group ?: 'Прочее' }}
- <span class="text-muted small ms-2">{{ $permissions->count() }}</span>
- </button>
- </h2>
- <div id="{{ $groupId }}" class="accordion-collapse collapse @if($loop->first) show @endif"
- aria-labelledby="{{ $groupId }}-heading">
- <div class="accordion-body p-0">
- <div class="table-responsive">
- <table class="table table-sm align-middle mb-0">
- <thead>
- <tr>
- <th>Право</th>
- <th>Код</th>
- <th class="text-end">Доступ</th>
- </tr>
- </thead>
- <tbody>
- @foreach($permissions as $permission)
- @php($value = $adminLocked ? 'allow' : ($effects[$permission->id] ?? 'none'))
- <tr>
- <td>
- {{ $permission->name }}
- @if($permission->type === \App\Models\Permission::TYPE_FIELD)
- <span class="badge text-bg-light">поле</span>
- @endif
- </td>
- <td><code>{{ $permission->slug }}</code></td>
- <td class="text-end" style="min-width: 180px;">
- <select name="{{ $inputName }}[{{ $permission->id }}]"
- class="form-select form-select-sm"
- @disabled($adminLocked)>
- <option value="none" @selected($value === 'none')>{{ $inheritLabel }}</option>
- <option value="allow" @selected($value === 'allow')>Разрешить</option>
- <option value="deny" @selected($value === 'deny') @disabled($adminLocked)>Запретить</option>
- </select>
- @if($adminLocked)
- <input type="hidden" name="{{ $inputName }}[{{ $permission->id }}]" value="allow">
- @endif
- </td>
- </tr>
- @endforeach
- </tbody>
- </table>
- </div>
- </div>
- </div>
- </div>
- @endforeach
- </div>
|