Example #1
0
 public function addWorkflowProgress(Workflow $wf)
 {
     Loader::model('workflow/progress/categories/user');
     $uwp = UserWorkflowProgress::add($wf, $this);
     $r = $uwp->start();
     $uwp->setWorkflowProgressResponseObject($r);
     return $uwp;
 }
 public function get($itemsToGet = 0, $offset = 0)
 {
     $_users = DatabaseItemList::get($itemsToGet, $offset);
     $users = array();
     foreach ($_users as $row) {
         $u = UserInfo::getByID($row['uID']);
         $wp = UserWorkflowProgress::getByID($row['wpID']);
         $users[] = new ProgressUser($u, $wp);
     }
     return $users;
 }
 public static function getList($requestedUID, $filters = array('wpIsCompleted' => 0), $sortBy = 'wpDateAdded asc')
 {
     $db = Loader::db();
     $filter = '';
     foreach ($filters as $key => $value) {
         $filter .= ' and ' . $key . ' = ' . $value . ' ';
     }
     $filter .= ' order by ' . $sortBy;
     $r = $db->Execute('SELECT wp.wpID FROM UserWorkflowProgress uwp INNER JOIN WorkflowProgress wp ON wp.wpID = uwp.wpID WHERE uwp.uID = ? ' . $filter, $requestedUID);
     $list = array();
     while ($row = $r->FetchRow()) {
         $wp = UserProgress::getByID($row['wpID']);
         if (is_object($wp)) {
             $list[] = $wp;
         }
     }
     return $list;
 }
Example #4
0
 public function view($uID = false, $status = false)
 {
     if ($uID) {
         $this->setupUser($uID);
     }
     $this->requireAsset('selectize');
     $ui = $this->user;
     if (is_object($ui)) {
         $dh = $this->app->make('helper/date');
         /* @var $dh \Concrete\Core\Localization\Service\Date */
         $this->requireAsset('core/app/editable-fields');
         $uo = $this->user->getUserObject();
         $groups = [];
         foreach ($uo->getUserGroupObjects() as $g) {
             $obj = new stdClass();
             $obj->gDisplayName = $g->getGroupDisplayName();
             $obj->gID = $g->getGroupID();
             $obj->gDateTimeEntered = $dh->formatDateTime($g->getGroupDateTimeEntered($this->user));
             $groups[] = $obj;
         }
         $this->set('groupsJSON', json_encode($groups));
         $attributes = UserAttributeKey::getList(true);
         $this->set('attributes', $attributes);
         $this->set('pageTitle', t('View/Edit %s', $this->user->getUserDisplayName()));
         $workflowRequestActions = [];
         $workflowList = UserWorkflowProgress::getList($uo->getUserID());
         $this->set('workflowList', $workflowList);
         if (count($workflowList) > 0) {
             foreach ($workflowList as $wp) {
                 $wr = $wp->getWorkflowRequestObject();
                 $workflowRequestActions[] = $wr->getRequestAction();
             }
         }
         $this->set('workflowRequestActions', $workflowRequestActions);
         $headerMenu = new \Concrete\Controller\Element\Dashboard\Users\Header($this->user);
         $headerMenu->set('canActivateUser', $this->canActivateUser);
         $headerMenu->set('canSignInAsUser', $this->canSignInAsUser);
         $headerMenu->set('canDeleteUser', $this->canDeleteUser);
         $headerMenu->set('workflowRequestActions', $workflowRequestActions);
         $this->set('headerMenu', $headerMenu);
         switch ($status) {
             case 'activated':
                 if (in_array("activate", $workflowRequestActions)) {
                     $this->set('message', t('User activation workflow initiated.'));
                 } else {
                     $this->set('success', t('User activated successfully.'));
                 }
                 break;
             case 'deactivated':
                 if (in_array("deactivate", $workflowRequestActions)) {
                     $this->set('message', t('User deactivation workflow initiated.'));
                 } else {
                     $this->set('message', t('User deactivated successfully.'));
                 }
                 break;
             case 'created':
                 $this->set('message', t('User created successfully.'));
                 break;
             case 'email_validated':
                 $this->set('message', t('Email marked as valid.'));
                 break;
             case 'workflow_canceled':
                 $this->set('message', t('Workflow request is canceled.'));
                 break;
             case 'deleted':
                 // TODO show username
                 // $this->set('message', t('User %s has been deleted.', $ui->getUserDisplayName()));
                 if (in_array('delete', $workflowRequestActions)) {
                     $this->set('message', t('User deletion workflow initiated.'));
                 } else {
                     $this->set('message', t('User has been deleted.'));
                 }
                 break;
         }
     } else {
         switch ($status) {
             case 'deleted':
                 $this->set('message', t('User has been deleted.'));
                 break;
         }
         $header = new Header();
         $header->setShowAddButton(true);
         $this->set('headerMenu', $header);
         $search = $this->app->make('Concrete\\Controller\\Search\\Users');
         $result = $search->getCurrentSearchObject();
         if (is_object($result)) {
             $this->set('result', $result);
         }
     }
 }
Example #5
0
<?php

defined('C5_EXECUTE') or die("Access Denied.");
$u = User::getByUserID($_REQUEST['uID']);
$obj = new stdClass();
$obj->tableData = t('None');
use Concrete\Core\Workflow\Progress\Response as WorkflowProgressResponse;
use Concrete\Core\Workflow\Progress\Progress as WorkflowProgress;
use Concrete\Core\Workflow\Progress\UserProgress as UserWorkflowProgress;
use Concrete\Core\Workflow\Progress\Category as WorkflowProgressCategory;
if ($_REQUEST['task'] == 'save_user_workflow_progress' && Loader::helper("validation/token")->validate('save_user_workflow_progress')) {
    $wp = UserWorkflowProgress::getByID($_REQUEST['wpID']);
    if (is_object($wp)) {
        $wf = $wp->getWorkflowObject();
        $form = Loader::helper('form');
        $obj->wpID = $wp->getWorkflowProgressID();
        if ($wf->canApproveWorkflowProgressObject($wp)) {
            $task = WorkflowProgress::getRequestedTask();
            if ($task) {
                $r = $wp->runTask($task, $_POST);
                if ($r instanceof WorkflowProgressResponse && $r->getWorkflowProgressResponseURL() != '') {
                    $obj->redirect = $r->getWorkflowProgressResponseURL();
                    $obj->message = $r->message;
                } else {
                    $obj->redirect = BASE_URL . View::url('/dashboard/users/search') . '?uID=' . $_REQUEST['uID'];
                }
                $category = WorkflowProgressCategory::getByID($wp->getWorkflowProgressCategoryID());
                $list = $category->getPendingWorkflowProgressList();
                $items = $list->get();
                // start a new buffer
                ob_start();