Файл: concrete5.7.5.6/concrete/src/Permission/Key/WorkflowKey.php
Строк: 34
<?php
namespace ConcreteCorePermissionKey;
use ConcreteCorePermissionDuration as PermissionDuration;
use ConcreteCoreWorkflowProgressProgress as WorkflowProgress;
abstract class WorkflowKey extends Key {
public function getCurrentlyActiveUsers(WorkflowProgress $wp) {
$paa = $this->getPermissionAccessObject();
if (!$paa) {
return array();
}
$paa->setWorkflowProgressObject($wp);
$included = $this->getAccessListItems(self::ACCESS_TYPE_INCLUDE);
$excluded = $this->getAccessListItems(self::ACCESS_TYPE_EXCLUDE);
$included = PermissionDuration::filterByActive($included);
$excluded = PermissionDuration::filterByActive($excluded);
$users = array();
$usersExcluded = array();
foreach($included as $inc) {
$pae = $inc->getAccessEntityObject();
$users = array_merge($users, $pae->getAccessEntityUsers($paa));
}
$users = array_unique($users);
foreach($excluded as $inc) {
$pae = $inc->getAccessEntityObject();
$usersExcluded = array_merge($usersExcluded, $pae->getAccessEntityUsers());
}
$users = array_diff($users, $usersExcluded);
return $users;
}
}