Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/Workflow/Request/ChangePagePermissionsRequest.php
Строк: 165
<?php
namespace ConcreteCoreWorkflowRequest;
use 
Workflow;
use 
Loader;
use 
Page;
use 
ConcreteCoreWorkflowDescription as WorkflowDescription;
use 
Permissions;
use 
PermissionKey;
use 
ConcreteCoreWorkflowProgressProgress as WorkflowProgress;
use 
CollectionVersion;
use 
Events;
use 
PermissionAccess;
use 
ConcreteCoreWorkflowProgressActionAction as WorkflowProgressAction;
use 
ConcreteCoreWorkflowProgressResponse as WorkflowProgressResponse;
use 
ConcreteCorePermissionSet as PermissionSet;

class 
ChangePagePermissionsRequest extends PageRequest {

    protected 
$wrStatusNum 30;

    public function 
__construct() {
        
$pk PermissionKey::getByHandle('edit_page_permissions');
        
parent::__construct($pk);
    }

    public function 
setPagePermissionSet(PermissionSet $set) {
        
$this->permissionSet $set;
    }

    public function 
getPagePermissionSet() {
        return 
$this->permissionSet;
    }

    public function 
getWorkflowRequestDescriptionObject() {
        
$d = new WorkflowDescription();
        
$c Page::getByID($this->cID'ACTIVE');
        
$link Loader::helper('navigation')->getLinkToCollection($ctrue);
        
$d->setEmailDescription(t(""%s" has pending permission changes. View the page here: %s."$c->getCollectionName(), $link));
        
$d->setInContextDescription(t("Page Submitted for Permission Changes."));
        
$d->setDescription(t("<a href="%s">%s</a> submitted for Permission Changes."$link$c->getCollectionName()));
        
$d->setShortStatus(t("Permission Changes"));
        return 
$d;
    }

    public function 
getWorkflowRequestStyleClass() {
        return 
'info';
    }

    public function 
getWorkflowRequestApproveButtonClass() {
        return 
'btn-success';
    }

    public function 
getWorkflowRequestApproveButtonInnerButtonRightHTML() {
        return 
'<i class="fa fa-thumbs-o-up"></i>';
    }

    public function 
getWorkflowRequestApproveButtonText() {
        return 
t('Change Permissions');
    }

    public function 
getWorkflowRequestAdditionalActions(WorkflowProgress $wp) {
        
$buttons = array();
        
$w $wp->getWorkflowObject();
        if (
$w->canApproveWorkflowProgressObject($wp)) {
            
$c Page::getByID($this->cID'ACTIVE');
            
$button = new WorkflowProgressAction();
            
$button->setWorkflowProgressActionLabel(t('View Pending Permissions'));
            
$button->addWorkflowProgressActionButtonParameter('dialog-title't('Pending Permissions'));
            
$button->addWorkflowProgressActionButtonParameter('dialog-width''400');
            
$button->addWorkflowProgressActionButtonParameter('dialog-height''360');
            
$button->setWorkflowProgressActionStyleInnerButtonLeftHTML('<i class="icon-eye-open"></i>');
            
$button->setWorkflowProgressActionURL(REL_DIR_FILES_TOOLS_REQUIRED '/workflow/dialogs/change_page_permissions?wpID=' $wp->getWorkflowProgressID());
            
$button->setWorkflowProgressActionStyleClass('dialog-launch');
            
$buttons[] = $button;
        }
        return 
$buttons;
    }

    public function 
approve(WorkflowProgress $wp) {
        
$c Page::getByID($this->getRequestedPageID());
        
$ps $this->getPagePermissionSet();
        
$assignments $ps->getPermissionAssignments();
        foreach(
$assignments as $pkID => $paID) {
            
$pk PermissionKey::getByID($pkID);
            
$pk->setPermissionObject($c);
            
$pt $pk->getPermissionAssignmentObject();
            
$pt->clearPermissionAssignment();
            if (
$paID 0) {
                
$pa PermissionAccess::getByID($paID$pk);
                if (
is_object($pa)) {
                    
$pt->assignPermissionAccess($pa);
                }
            }
        }
        
$c->refreshCache();
        
$wpr = new WorkflowProgressResponse();
        
$wpr->setWorkflowProgressResponseURL(URL::to($c));
        return 
$wpr;
    }


}
Онлайн: 1
Реклама