82 lines
2.1 KiB
PHP
Raw Normal View History

2014-05-14 23:24:20 +10:00
<?php namespace Backend\Controllers;
use BackendMenu;
use BackendAuth;
use Backend\Classes\Controller;
/**
* Backend user groups controller
*
* @package october\backend
* @author Alexey Bobkov, Samuel Georges
*
*/
class UserGroups extends Controller
2014-05-14 23:24:20 +10:00
{
public $implement = [
'Backend.Behaviors.FormController',
'Backend.Behaviors.ListController'
];
public $formConfig = 'config_form.yaml';
public $listConfig = 'config_list.yaml';
public $requiredPermissions = ['backend.manage_users'];
public function __construct()
{
parent::__construct();
BackendMenu::setContext('October.System', 'system', 'users');
}
/**
* Add available permission fields to the Group form.
*/
2015-05-21 22:54:44 +10:00
protected function formExtendFields($form)
{
/*
* Add permissions tab
*/
$form->addTabFields($this->generatePermissionFields());
}
/**
* Generates an array of form fields to assign permissions provided
* by the system.
* @return array
*/
protected function generatePermissionFields()
2014-05-14 23:24:20 +10:00
{
$permissionFields = [];
2015-05-21 22:54:44 +10:00
foreach (BackendAuth::listTabbedPermissions() as $tab => $permissions) {
$fieldName = 'permissions_'.snake_case($tab).'_section';
2014-05-14 23:24:20 +10:00
$fieldConfig = [
2015-05-21 22:54:44 +10:00
'label' => $tab,
'type' => 'section',
'tab' => 'backend::lang.user.permissions',
'containerAttributes' => ['data-field-collapsible' => 1]
2014-05-14 23:24:20 +10:00
];
$permissionFields[$fieldName] = $fieldConfig;
2015-05-21 22:54:44 +10:00
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;
}
2014-05-14 23:24:20 +10:00
}
2015-05-21 22:54:44 +10:00
return $permissionFields;
2014-05-14 23:24:20 +10:00
}
2014-10-10 23:26:57 +02:00
}