Вход Регистрация
Файл: concrete5.7.5.6/concrete/controllers/single_page/dashboard/system/permissions/site.php
Строк: 135
<?php
namespace ConcreteControllerSinglePageDashboardSystemPermissions;
use 
ConcreteCorePageControllerDashboardPageController;
use 
Config;
use 
Core;
use 
Loader;
use 
PermissionKey;
use 
TaskPermission;
use 
PermissionAccess;
use 
GroupList;
use 
Page;
use 
Group;
use 
ConcreteCorePermissionAccessEntityGroupEntity as GroupPermissionAccessEntity;

class 
Site extends DashboardPageController {
    public function 
view() {
        
$editAccess = array();
        if (
Config::get('concrete.permissions.model') != 'simple') {
            return;
        }


        
$home Page::getByID(1"RECENT");
        
$pk PermissionKey::getByHandle('view_page');
        
$pk->setPermissionObject($home);
        
$assignments $pk->getAccessListItems();
        foreach(
$assignments as $asi) {
            
$ae $asi->getAccessEntityObject();
            if (
$ae->getAccessEntityTypeHandle() == 'group' && $ae->getGroupObject()->getGroupID() == GUEST_GROUP_ID) {
                
$this->set('guestCanRead'true);
            } else if (
$ae->getAccessEntityTypeHandle() == 'group' && $ae->getGroupObject()->getGroupID() == REGISTERED_GROUP_ID) {
                
$this->set('registeredCanRead'true);
            }
        }

        
$gl = new GroupList();
        
$gl->filter('gID'REGISTERED_GROUP_ID'>');
        
$gIDs $gl->getResults();
        
$gArray = array();
        foreach(
$gIDs as $g) {
            
$gArray[] = $g;
        }

        
$pk PermissionKey::getByHandle('edit_page_contents');
        
$pk->setPermissionObject($home);
        
$assignments $pk->getAccessListItems();
        foreach(
$assignments as $asi) {
            
$ae $asi->getAccessEntityObject();
            if (
$ae->getAccessEntityTypeHandle() == 'group') {
                
$groupObject $ae->getGroupObject();
                if (
$groupObject){
                   
$editAccess[] = $ae->getGroupObject()->getGroupID();
                }
            }
        }

        
$this->set('home'$home);
        
$this->set('gArray'$gArray);
        
$this->set('editAccess'$editAccess);

        if (
$this->isPost()) {
            if (
$this->token->validate('site_permissions_code')) {

                switch(
$_POST['view']) {
                    case 
"ANYONE":
                        
$viewObj GroupPermissionAccessEntity::getOrCreate(Group::getByID(GUEST_GROUP_ID));
                        break;
                    case 
"USERS":
                        
$viewObj GroupPermissionAccessEntity::getOrCreate(Group::getByID(REGISTERED_GROUP_ID));
                        break;
                    case 
"PRIVATE":
                        
$viewObj GroupPermissionAccessEntity::getOrCreate(Group::getByID(ADMIN_GROUP_ID));
                        break;
                }


                
$pk PermissionKey::getByHandle('view_page');
                
$pk->setPermissionObject($home);
                
$pt $pk->getPermissionAssignmentObject();
                
$pt->clearPermissionAssignment();
                
$pa PermissionAccess::create($pk);
                
$pa->addListItem($viewObj);
                
$pt->assignPermissionAccess($pa);

                
$editAccessEntities = array();
                if (
is_array($_POST['gID'])) {
                    foreach(
$_POST['gID'] as $gID) {
                        
$editAccessEntities[] = GroupPermissionAccessEntity::getOrCreate(Group::getByID($gID));
                    }
                }

                
$editPermissions = array(
                    
'view_page_versions',
                    
'edit_page_properties',
                    
'edit_page_contents',
                    
'edit_page_speed_settings',
                    
'edit_page_multilingual_settings',
                    
'edit_page_theme',
                    
'edit_page_page_type',
                    
'edit_page_template',
                    
'edit_page_permissions',
                    
'delete_page',
                    
'preview_page_as_user',
                    
'schedule_page_contents_guest_access',
                    
'delete_page_versions',
                    
'approve_page_versions',
                    
'add_subpage',
                    
'move_or_copy_page',
                );
                foreach(
$editPermissions as $pkHandle) {
                    
$pk PermissionKey::getByHandle($pkHandle);
                    
$pk->setPermissionObject($home);
                    
$pt $pk->getPermissionAssignmentObject();
                    
$pt->clearPermissionAssignment();
                    
$pa PermissionAccess::create($pk);
                    foreach(
$editAccessEntities as $editObj) {
                        
$pa->addListItem($editObj);
                    }
                    
$pt->assignPermissionAccess($pa);
                }
                
$pkx PermissionKey::getbyHandle('add_block');
                
$pt $pkx->getPermissionAssignmentObject();
                
$pt->clearPermissionAssignment();
                
$pa PermissionAccess::create($pkx);
                foreach(
$editAccessEntities as $editObj) {
                    
$pa->addListItem($editObj);
                }
                
$pt->assignPermissionAccess($pa);

                
$pkx PermissionKey::getbyHandle('add_stack');
                
$pt $pkx->getPermissionAssignmentObject();
                
$pt->clearPermissionAssignment();
                
$pa PermissionAccess::create($pkx);
                foreach(
$editAccessEntities as $editObj) {
                    
$pa->addListItem($editObj);
                }
                
$pt->assignPermissionAccess($pa);

                
$cms Core::make('app');
                
$cms->clearCaches();
                
$this->redirect('/dashboard/system/permissions/site/''saved');
            } else {
                
$this->error->add($this->token->getErrorMessage());
            }
        }
    }

    public function 
saved() {
        
$this->view();
        
$this->set('message't('Permissions saved'));
    }
}
Онлайн: 0
Реклама