PageRenderTime 49ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/concrete/core/models/permission/keys/custom/add_file.php

https://bitbucket.org/selfeky/xclusivescardwebsite
PHP | 50 lines | 40 code | 10 blank | 0 comment | 11 complexity | 550e96b8725852312112da9e19a20ef4 MD5 | raw file
  1. <?php
  2. defined('C5_EXECUTE') or die("Access Denied.");
  3. class Concrete5_Model_AddFileFileSetPermissionKey extends FileSetPermissionKey {
  4. public function getAllowedFileExtensions() {
  5. $u = new User();
  6. $extensions = array();
  7. if ($u->isSuperUser()) {
  8. $extensions = Loader::helper('concrete/file')->getAllowedFileExtensions();
  9. return $extensions;
  10. }
  11. $pae = $this->getPermissionAccessObject();
  12. if (!is_object($pae)) {
  13. return array();
  14. }
  15. $accessEntities = $u->getUserAccessEntityObjects();
  16. $accessEntities = $pae->validateAndFilterAccessEntities($accessEntities);
  17. $list = $this->getAccessListItems(FileSetPermissionKey::ACCESS_TYPE_ALL, $accessEntities);
  18. $list = PermissionDuration::filterByActive($list);
  19. foreach($list as $l) {
  20. if ($l->getFileTypesAllowedPermission() == 'N') {
  21. $extensions = array();
  22. }
  23. if ($l->getFileTypesAllowedPermission() == 'C') {
  24. $extensions = array_unique(array_merge($extensions, $l->getFileTypesAllowedArray()));
  25. }
  26. if ($l->getFileTypesAllowedPermission() == 'A') {
  27. $extensions = Loader::helper('concrete/file')->getAllowedFileExtensions();
  28. }
  29. }
  30. return $extensions;
  31. }
  32. public function validate($extension = false) {
  33. $extensions = $this->getAllowedFileExtensions();
  34. if ($ext != false) {
  35. return in_array($extension, $extensions);
  36. } else {
  37. return count($extensions) > 0;
  38. }
  39. }
  40. }