PageRenderTime 39ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/web/concrete/core/models/permission/keys/workflow.php

https://github.com/glockops/concrete5
PHP | 30 lines | 28 code | 2 blank | 0 comment | 1 complexity | 185a6231c00ed33ed8be068562a89e12 MD5 | raw file
Possible License(s): MIT, LGPL-2.1, BSD-3-Clause
  1. <?
  2. defined('C5_EXECUTE') or die("Access Denied.");
  3. abstract class Concrete5_Model_WorkflowPermissionKey extends PermissionKey {
  4. public function getCurrentlyActiveUsers(WorkflowProgress $wp) {
  5. $paa = $this->getPermissionAccessObject();
  6. if (!$paa) {
  7. return array();
  8. }
  9. $paa->setWorkflowProgressObject($wp);
  10. $included = $this->getAccessListItems(PermissionKey::ACCESS_TYPE_INCLUDE);
  11. $excluded = $this->getAccessListItems(PermissionKey::ACCESS_TYPE_EXCLUDE);
  12. $included = PermissionDuration::filterByActive($included);
  13. $excluded = PermissionDuration::filterByActive($excluded);
  14. $users = array();
  15. $usersExcluded = array();
  16. foreach($included as $inc) {
  17. $pae = $inc->getAccessEntityObject();
  18. $users = array_merge($users, $pae->getAccessEntityUsers($paa));
  19. }
  20. $users = array_unique($users);
  21. foreach($excluded as $inc) {
  22. $pae = $inc->getAccessEntityObject();
  23. $usersExcluded = array_merge($usersExcluded, $pae->getAccessEntityUsers());
  24. }
  25. $users = array_diff($users, $usersExcluded);
  26. return $users;
  27. }
  28. }