addTabFields($this->generatePermissionFields()); } /** * Generates an array of form fields to assign permissions provided * by the system. * @return array */ protected function generatePermissionFields() { $permissionFields = []; foreach (BackendAuth::listTabbedPermissions() as $tab => $permissions) { $fieldName = 'permissions_'.snake_case($tab).'_section'; $fieldConfig = [ 'label' => $tab, 'type' => 'section', 'tab' => 'backend::lang.user.permissions', 'containerAttributes' => ['data-field-collapsible' => 1] ]; $permissionFields[$fieldName] = $fieldConfig; foreach ($permissions as $permission) { $fieldName = 'permissions['.$permission->code.']'; $fieldConfig = [ 'label' => $permission->label, 'comment' => $permission->comment, 'type' => 'checkbox', 'span' => 'auto', 'tab' => 'backend::lang.user.permissions' ]; $permissionFields[$fieldName] = $fieldConfig; } } return $permissionFields; } }