86 lines
1.8 KiB
PHP
86 lines
1.8 KiB
PHP
<?php
|
|
|
|
class Controller_Permissions_Groups extends Crunchbutton_Controller_Account {
|
|
|
|
public function init() {
|
|
|
|
if (!c::admin()->permission()->check(['global','permissions-all', 'permission-groups'])) {
|
|
return ;
|
|
}
|
|
|
|
c::view()->page = 'permissions';
|
|
|
|
$action = c::getPagePiece(2);
|
|
|
|
switch ( $action ) {
|
|
|
|
case 'permissions':
|
|
$this->form_permissions();
|
|
break;
|
|
|
|
case 'content':
|
|
$this->search();
|
|
break;
|
|
|
|
case 'new':
|
|
$this->form();
|
|
break;
|
|
|
|
case 'remove':
|
|
$id_group = $_REQUEST[ 'id_group' ];
|
|
$group = Crunchbutton_Group::o( $id_group );
|
|
if( $group->id_group ){
|
|
$group->delete();
|
|
}
|
|
echo 'ok';
|
|
break;
|
|
|
|
default:
|
|
if( is_numeric( $action ) ){
|
|
$this->form();
|
|
exit;
|
|
}
|
|
c::view()->display('permissions/groups/index');
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
private function search(){
|
|
$search = [];
|
|
if ( $_REQUEST[ 'name' ] ) {
|
|
$search[ 'name' ] = $_REQUEST[ 'name' ];
|
|
}
|
|
c::view()->groups = Crunchbutton_Group::find( $search );
|
|
c::view()->layout( 'layout/ajax' );
|
|
c::view()->display( 'permissions/groups/content' );
|
|
}
|
|
|
|
private function form_permissions(){
|
|
if( c::getPagePiece(3) ){
|
|
|
|
$permissions = new Crunchbutton_Admin_Permission();
|
|
if( c::getPagePiece(4) == 'new' ){
|
|
c::view()->default = $permissions->groupDefaultPermissions();
|
|
} else {
|
|
c::view()->default = array();
|
|
}
|
|
|
|
c::view()->group = Crunchbutton_Group::o( c::getPagePiece(3) );
|
|
c::view()->permissions = $permissions->all();
|
|
c::view()->elements = $permissions->elements();
|
|
c::view()->display( 'permissions/groups/permissions' );
|
|
}
|
|
}
|
|
|
|
private function form(){
|
|
$id_group = c::getPagePiece(2);
|
|
if( $id_group != 'new' ){
|
|
c::view()->group = Crunchbutton_Group::o( $id_group );
|
|
} else {
|
|
c::view()->group = new Crunchbutton_Group();
|
|
}
|
|
c::view()->display( 'permissions/groups/form' );
|
|
}
|
|
|
|
} |