PageRenderTime 53ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

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

https://bitbucket.org/selfeky/xclusivescardwebsite
PHP | 157 lines | 150 code | 7 blank | 0 comment | 26 complexity | 165a56cbe2dbd18d35bfa505af7054da MD5 | raw file
  1. <?php
  2. defined('C5_EXECUTE') or die("Access Denied.");
  3. class Concrete5_Model_EditUserPropertiesUserPermissionAccess extends UserPermissionAccess {
  4. public function duplicate($newPA = false) {
  5. $newPA = parent::duplicate($newPA);
  6. $db = Loader::db();
  7. $r = $db->Execute('select * from UserPermissionEditPropertyAccessList where paID = ?', array($this->getPermissionAccessID()));
  8. while ($row = $r->FetchRow()) {
  9. $v = array($newPA->getPermissionAccessID(),
  10. $row['peID'],
  11. $row['attributePermission'],
  12. $row['uName'],
  13. $row['uEmail'],
  14. $row['uPassword'],
  15. $row['uAvatar'],
  16. $row['uTimezone'],
  17. $row['uDefaultLanguage']
  18. );
  19. $db->Execute('insert into UserPermissionEditPropertyAccessList (paID, peID, attributePermission, uName, uEmail, uPassword, uAvatar, uTimezone, uDefaultLanguage) values (?, ?, ?, ?, ?, ?, ?, ?, ?)', $v);
  20. }
  21. $r = $db->Execute('select * from UserPermissionEditPropertyAttributeAccessListCustom where paID = ?', array($this->getPermissionAccessID()));
  22. while ($row = $r->FetchRow()) {
  23. $v = array($row['peID'], $newPA->getPermissionAccessID(), $row['akID']);
  24. $db->Execute('insert into UserPermissionEditPropertyAttributeAccessListCustom (peID, paID, akID) values (?, ?, ?)', $v);
  25. }
  26. return $newPA;
  27. }
  28. public function save($args) {
  29. parent::save();
  30. $db = Loader::db();
  31. $db->Execute('delete from UserPermissionEditPropertyAccessList where paID = ?', array($this->getPermissionAccessID()));
  32. $db->Execute('delete from UserPermissionEditPropertyAttributeAccessListCustom where paID = ?', array($this->getPermissionAccessID()));
  33. if (is_array($args['propertiesIncluded'])) {
  34. foreach($args['propertiesIncluded'] as $peID => $attributePermission) {
  35. $allowEditUName = 0;
  36. $allowEditUEmail = 0;
  37. $allowEditUPassword = 0;
  38. $allowEditUAvatar = 0;
  39. $allowEditUTimezone = 0;
  40. $allowEditUDefaultLanguage = 0;
  41. if (!empty($args['allowEditUName'][$peID])) {
  42. $allowEditUName = $args['allowEditUName'][$peID];
  43. }
  44. if (!empty($args['allowEditUEmail'][$peID])) {
  45. $allowEditUEmail = $args['allowEditUEmail'][$peID];
  46. }
  47. if (!empty($args['allowEditUPassword'][$peID])) {
  48. $allowEditUPassword = $args['allowEditUPassword'][$peID];
  49. }
  50. if (!empty($args['allowEditUAvatar'][$peID])) {
  51. $allowEditUAvatar = $args['allowEditUAvatar'][$peID];
  52. }
  53. if (!empty($args['allowEditUTimezone'][$peID])) {
  54. $allowEditUTimezone = $args['allowEditUTimezone'][$peID];
  55. }
  56. if (!empty($args['allowEditUDefaultLanguage'][$peID])) {
  57. $allowEditUDefaultLanguage = $args['allowEditUDefaultLanguage'][$peID];
  58. }
  59. $v = array($this->getPermissionAccessID(), $peID, $attributePermission, $allowEditUName, $allowEditUEmail, $allowEditUPassword, $allowEditUAvatar, $allowEditUTimezone, $allowEditUDefaultLanguage);
  60. $db->Execute('insert into UserPermissionEditPropertyAccessList (paID, peID, attributePermission, uName, uEmail, uPassword, uAvatar, uTimezone, uDefaultLanguage) values (?, ?, ?, ?, ?, ?, ?, ?, ?)', $v);
  61. }
  62. }
  63. if (is_array($args['propertiesExcluded'])) {
  64. foreach($args['propertiesExcluded'] as $peID => $attributePermission) {
  65. $allowEditUNameExcluded = 0;
  66. $allowEditUEmailExcluded = 0;
  67. $allowEditUPasswordExcluded = 0;
  68. $allowEditUAvatarExcluded = 0;
  69. $allowEditUTimezoneExcluded = 0;
  70. $allowEditUDefaultLanguageExcluded = 0;
  71. if (!empty($args['allowEditUNameExcluded'][$peID])) {
  72. $allowEditUNameExcluded = $args['allowEditUNameExcluded'][$peID];
  73. }
  74. if (!empty($args['allowEditUEmailExcluded'][$peID])) {
  75. $allowEditUEmailExcluded = $args['allowEditUEmailExcluded'][$peID];
  76. }
  77. if (!empty($args['allowEditUPasswordExcluded'][$peID])) {
  78. $allowEditUPasswordExcluded = $args['allowEditUPasswordExcluded'][$peID];
  79. }
  80. if (!empty($args['allowEditUAvatarExcluded'][$peID])) {
  81. $allowEditUAvatarExcluded = $args['allowEditUAvatarExcluded'][$peID];
  82. }
  83. if (!empty($args['allowEditUTimezoneExcluded'][$peID])) {
  84. $allowEditUTimezoneExcluded = $args['allowEditUTimezoneExcluded'][$peID];
  85. }
  86. if (!empty($args['allowEditUDefaultLanguageExcluded'][$peID])) {
  87. $allowEditUDefaultLanguageExcluded = $args['allowEditUDefaultLanguageExcluded'][$peID];
  88. }
  89. $v = array($this->getPermissionAccessID(), $peID, $attributePermission, $allowEditUNameExcluded, $allowEditUEmailExcluded, $allowEditUPasswordExcluded, $allowEditUAvatarExcluded, $allowEditUTimezoneExcluded, $allowEditUDefaultLanguageExcluded);
  90. $db->Execute('insert into UserPermissionEditPropertyAccessList (paID, peID, attributePermission, uName, uEmail, uPassword, uAvatar, uTimezone, uDefaultLanguage) values (?, ?, ?, ?, ?, ?, ?, ?, ?)', $v);
  91. }
  92. }
  93. if (is_array($args['akIDInclude'])) {
  94. foreach($args['akIDInclude'] as $peID => $akIDs) {
  95. foreach($akIDs as $akID) {
  96. $v = array($this->getPermissionAccessID(), $peID, $akID);
  97. $db->Execute('insert into UserPermissionEditPropertyAttributeAccessListCustom (paID, peID, akID) values (?, ?, ?)', $v);
  98. }
  99. }
  100. }
  101. if (is_array($args['akIDExclude'])) {
  102. foreach($args['akIDExclude'] as $peID => $akIDs) {
  103. foreach($akIDs as $akID) {
  104. $v = array($this->getPermissionAccessID(), $peID, $akID);
  105. $db->Execute('insert into UserPermissionEditPropertyAttributeAccessListCustom (paID, peID, akID) values (?, ?, ?)', $v);
  106. }
  107. }
  108. }
  109. }
  110. public function getAccessListItems($accessType = UserPermissionKey::ACCESS_TYPE_INCLUDE, $filterEntities = array()) {
  111. $db = Loader::db();
  112. $list = parent::getAccessListItems($accessType, $filterEntities);
  113. $list = PermissionDuration::filterByActive($list);
  114. foreach($list as $l) {
  115. $pe = $l->getAccessEntityObject();
  116. $prow = $db->GetRow('select attributePermission, uName, uPassword, uEmail, uAvatar, uTimezone, uDefaultLanguage from UserPermissionEditPropertyAccessList where peID = ? and paID = ?', array($pe->getAccessEntityID(), $this->getPermissionAccessID()));
  117. if (is_array($prow) && $prow['attributePermission']) {
  118. $l->setAttributesAllowedPermission($prow['attributePermission']);
  119. $l->setAllowEditUserName($prow['uName']);
  120. $l->setAllowEditEmail($prow['uEmail']);
  121. $l->setAllowEditPassword($prow['uPassword']);
  122. $l->setAllowEditAvatar($prow['uAvatar']);
  123. $l->setAllowEditTimezone($prow['uTimezone']);
  124. $l->setAllowEditDefaultLanguage($prow['uDefaultLanguage']);
  125. $attributePermission = $prow['attributePermission'];
  126. } else if ($l->getAccessType() == UserPermissionKey::ACCESS_TYPE_INCLUDE) {
  127. $l->setAttributesAllowedPermission('A');
  128. $l->setAllowEditUserName(1);
  129. $l->setAllowEditEmail(1);
  130. $l->setAllowEditPassword(1);
  131. $l->setAllowEditAvatar(1);
  132. $l->setAllowEditTimezone(1);
  133. $l->setAllowEditDefaultLanguage(1);
  134. } else {
  135. $l->setAttributesAllowedPermission('N');
  136. $l->setAllowEditUserName(0);
  137. $l->setAllowEditEmail(0);
  138. $l->setAllowEditPassword(0);
  139. $l->setAllowEditAvatar(0);
  140. $l->setAllowEditTimezone(0);
  141. $l->setAllowEditDefaultLanguage(0);
  142. }
  143. if ($attributePermission == 'C') {
  144. $akIDs = $db->GetCol('select akID from UserPermissionEditPropertyAttributeAccessListCustom where peID = ? and paID = ?', array($pe->getAccessEntityID(), $this->getPermissionAccessID()));
  145. $l->setAttributesAllowedArray($akIDs);
  146. }
  147. }
  148. return $list;
  149. }
  150. }