PageRenderTime 48ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/concrete/core/models/permission/access/categories/custom/edit_page_properties.php

https://bitbucket.org/selfeky/xclusivescardwebsite
PHP | 146 lines | 137 code | 9 blank | 0 comment | 24 complexity | f61884255e213ac5c247e44cc8de0023 MD5 | raw file
  1. <?php
  2. defined('C5_EXECUTE') or die("Access Denied.");
  3. class Concrete5_Model_EditPagePropertiesPagePermissionAccess extends PagePermissionAccess {
  4. public function duplicate($newPA = false) {
  5. $newPA = parent::duplicate($newPA);
  6. $db = Loader::db();
  7. $r = $db->Execute('select * from PagePermissionPropertyAccessList where paID = ?', array($this->getPermissionAccessID()));
  8. while ($row = $r->FetchRow()) {
  9. $v = array($row['peID'], $newPA->getPermissionAccessID(),
  10. $row['attributePermission'],
  11. $row['name'],
  12. $row['publicDateTime'],
  13. $row['uID'],
  14. $row['description'],
  15. $row['paths']
  16. );
  17. $db->Execute('insert into PagePermissionPropertyAccessList (peID, paID, attributePermission, name, publicDateTime, uID, description, paths) values (?, ?, ?, ?, ?, ?, ?, ?)', $v);
  18. }
  19. $r = $db->Execute('select * from PagePermissionPropertyAttributeAccessListCustom where paID = ?', array($this->getPermissionAccessID()));
  20. while ($row = $r->FetchRow()) {
  21. $v = array($row['peID'], $newPA->getPermissionAccessID(), $row['akID']);
  22. $db->Execute('insert into PagePermissionPropertyAttributeAccessListCustom (peID, paID, akID) values (?, ?, ?)', $v);
  23. }
  24. return $newPA;
  25. }
  26. public function save($args) {
  27. parent::save();
  28. $db = Loader::db();
  29. $db->Execute('delete from PagePermissionPropertyAccessList where paID = ?', array($this->getPermissionAccessID()));
  30. $db->Execute('delete from PagePermissionPropertyAttributeAccessListCustom where paID = ?', array($this->getPermissionAccessID()));
  31. if (is_array($args['propertiesIncluded'])) {
  32. foreach($args['propertiesIncluded'] as $peID => $attributePermission) {
  33. $allowEditName = 0;
  34. $allowEditDateTime = 0;
  35. $allowEditUID = 0;
  36. $allowEditDescription = 0;
  37. $allowEditPaths = 0;
  38. if (!empty($args['allowEditName'][$peID])) {
  39. $allowEditName = $args['allowEditName'][$peID];
  40. }
  41. if (!empty($args['allowEditDateTime'][$peID])) {
  42. $allowEditDateTime = $args['allowEditDateTime'][$peID];
  43. }
  44. if (!empty($args['allowEditUID'][$peID])) {
  45. $allowEditUID = $args['allowEditUID'][$peID];
  46. }
  47. if (!empty($args['allowEditDescription'][$peID])) {
  48. $allowEditDescription = $args['allowEditDescription'][$peID];
  49. }
  50. if (!empty($args['allowEditPaths'][$peID])) {
  51. $allowEditPaths = $args['allowEditPaths'][$peID];
  52. }
  53. $v = array($this->getPermissionAccessID(), $peID, $attributePermission, $allowEditName, $allowEditDateTime, $allowEditUID, $allowEditDescription, $allowEditPaths);
  54. $db->Execute('insert into PagePermissionPropertyAccessList (paID, peID, attributePermission, name, publicDateTime, uID, description, paths) values (?, ?, ?, ?, ?, ?, ?, ?)', $v);
  55. }
  56. }
  57. if (is_array($args['propertiesExcluded'])) {
  58. foreach($args['propertiesExcluded'] as $peID => $attributePermission) {
  59. $allowEditNameExcluded = 0;
  60. $allowEditDateTimeExcluded = 0;
  61. $allowEditUIDExcluded = 0;
  62. $allowEditDescriptionExcluded = 0;
  63. $allowEditPathsExcluded = 0;
  64. if (!empty($args['allowEditNameExcluded'][$peID])) {
  65. $allowEditNameExcluded = $args['allowEditNameExcluded'][$peID];
  66. }
  67. if (!empty($args['allowEditDateTimeExcluded'][$peID])) {
  68. $allowEditDateTimeExcluded = $args['allowEditDateTimeExcluded'][$peID];
  69. }
  70. if (!empty($args['allowEditUIDExcluded'][$peID])) {
  71. $allowEditUIDExcluded = $args['allowEditUIDExcluded'][$peID];
  72. }
  73. if (!empty($args['allowEditDescriptionExcluded'][$peID])) {
  74. $allowEditDescriptionExcluded = $args['allowEditDescriptionExcluded'][$peID];
  75. }
  76. if (!empty($args['allowEditPathsExcluded'][$peID])) {
  77. $allowEditPathsExcluded = $args['allowEditPathsExcluded'][$peID];
  78. }
  79. $v = array($this->getPermissionAccessID(), $peID, $attributePermission, $allowEditNameExcluded, $allowEditDateTimeExcluded, $allowEditUIDExcluded, $allowEditDescriptionExcluded, $allowEditPathsExcluded);
  80. $db->Execute('insert into PagePermissionPropertyAccessList (paID, peID, attributePermission, name, publicDateTime, uID, description, paths) values (?, ?, ?, ?, ?, ?, ?, ?)', $v);
  81. }
  82. }
  83. if (is_array($args['akIDInclude'])) {
  84. foreach($args['akIDInclude'] as $peID => $akIDs) {
  85. foreach($akIDs as $akID) {
  86. $v = array($this->getPermissionAccessID(), $peID, $akID);
  87. $db->Execute('insert into PagePermissionPropertyAttributeAccessListCustom (paID, peID, akID) values (?, ?, ?)', $v);
  88. }
  89. }
  90. }
  91. if (is_array($args['akIDExclude'])) {
  92. foreach($args['akIDExclude'] as $peID => $akIDs) {
  93. foreach($akIDs as $akID) {
  94. $v = array($this->getPermissionAccessID(), $peID, $akID);
  95. $db->Execute('insert into PagePermissionPropertyAttributeAccessListCustom (paID, peID, akID) values (?, ?, ?)', $v);
  96. }
  97. }
  98. }
  99. }
  100. public function getAccessListItems($accessType = PagePermissionKey::ACCESS_TYPE_INCLUDE, $filterEntities = array()) {
  101. $db = Loader::db();
  102. $list = parent::getAccessListItems($accessType, $filterEntities);
  103. $list = PermissionDuration::filterByActive($list);
  104. foreach($list as $l) {
  105. $pe = $l->getAccessEntityObject();
  106. $prow = $db->GetRow('select attributePermission, name, publicDateTime, uID, description, paths from PagePermissionPropertyAccessList where peID = ? and paID = ?', array($pe->getAccessEntityID(), $l->getPermissionAccessID()));
  107. if (is_array($prow) && $prow['attributePermission']) {
  108. $l->setAttributesAllowedPermission($prow['attributePermission']);
  109. $l->setAllowEditName($prow['name']);
  110. $l->setAllowEditDateTime($prow['publicDateTime']);
  111. $l->setAllowEditUserID($prow['uID']);
  112. $l->setAllowEditDescription($prow['description']);
  113. $l->setAllowEditPaths($prow['paths']);
  114. $attributePermission = $prow['attributePermission'];
  115. } else if ($l->getAccessType() == PagePermissionKey::ACCESS_TYPE_INCLUDE) {
  116. $l->setAttributesAllowedPermission('A');
  117. $l->setAllowEditName(1);
  118. $l->setAllowEditDateTime(1);
  119. $l->setAllowEditUserID(1);
  120. $l->setAllowEditDescription(1);
  121. $l->setAllowEditPaths(1);
  122. } else {
  123. $l->setAttributesAllowedPermission('N');
  124. $l->setAllowEditName(0);
  125. $l->setAllowEditDateTime(0);
  126. $l->setAllowEditUserID(0);
  127. $l->setAllowEditDescription(0);
  128. $l->setAllowEditPaths(0);
  129. }
  130. if ($attributePermission == 'C') {
  131. $akIDs = $db->GetCol('select akID from PagePermissionPropertyAttributeAccessListCustom where peID = ? and paID = ?', array($pe->getAccessEntityID(), $l->getPermissionAccessID()));
  132. $l->setAttributesAllowedArray($akIDs);
  133. }
  134. }
  135. return $list;
  136. }
  137. }