Commit a44c4156215f8bd363b56f4cbd250977e0b4e31b
1 parent
46bc6653
back out the role allocation (document) stuff.
git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@5056 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
8 changed files
with
48 additions
and
225 deletions
config/tableMappings.inc
| @@ -143,7 +143,6 @@ $default->notifications_table = "notifications"; | @@ -143,7 +143,6 @@ $default->notifications_table = "notifications"; | ||
| 143 | $default->authentication_sources_table = "authentication_sources"; | 143 | $default->authentication_sources_table = "authentication_sources"; |
| 144 | $default->dashlet_disable_table = "dashlet_disables"; | 144 | $default->dashlet_disable_table = "dashlet_disables"; |
| 145 | $default->role_allocations_table = "role_allocations"; | 145 | $default->role_allocations_table = "role_allocations"; |
| 146 | -$default->document_role_allocations_table = "document_role_allocations"; | ||
| 147 | $default->plugins_table = "plugins"; | 146 | $default->plugins_table = "plugins"; |
| 148 | $default->document_metadata_version_table = "document_metadata_version"; | 147 | $default->document_metadata_version_table = "document_metadata_version"; |
| 149 | $default->document_content_version_table = "document_content_version"; | 148 | $default->document_content_version_table = "document_content_version"; |
lib/documentmanagement/Document.inc
| @@ -69,9 +69,6 @@ class Document { | @@ -69,9 +69,6 @@ class Document { | ||
| 69 | function getCreatorID() { return $this->_oDocumentCore->getCreatorId(); } | 69 | function getCreatorID() { return $this->_oDocumentCore->getCreatorId(); } |
| 70 | function setCreatorID($iNewValue) { $this->_oDocumentCore->setCreatorId($iNewValue); } | 70 | function setCreatorID($iNewValue) { $this->_oDocumentCore->setCreatorId($iNewValue); } |
| 71 | 71 | ||
| 72 | - function getOwnerID() { return $this->_oDocumentCore->getOwnerId(); } | ||
| 73 | - function setOwnerID($iNewValue) { $this->_oDocumentCore->setOwnerId($iNewValue); } | ||
| 74 | - | ||
| 75 | function getLastModifiedDate() { return $this->_oDocumentCore->getLastModifiedDate(); } | 72 | function getLastModifiedDate() { return $this->_oDocumentCore->getLastModifiedDate(); } |
| 76 | function setLastModifiedDate($dNewValue) { $this->_oDocumentCore->setLastModifiedDate($dNewValue); } | 73 | function setLastModifiedDate($dNewValue) { $this->_oDocumentCore->setLastModifiedDate($dNewValue); } |
| 77 | 74 | ||
| @@ -421,7 +418,6 @@ class Document { | @@ -421,7 +418,6 @@ class Document { | ||
| 421 | $oDocument = new Document(); | 418 | $oDocument = new Document(); |
| 422 | $aOptions = array_change_key_case($aOptions); | 419 | $aOptions = array_change_key_case($aOptions); |
| 423 | 420 | ||
| 424 | - | ||
| 425 | $aCoreKeys = array( | 421 | $aCoreKeys = array( |
| 426 | "CreatorId", | 422 | "CreatorId", |
| 427 | "Created", | 423 | "Created", |
lib/documentmanagement/documentcore.inc.php
| @@ -73,7 +73,6 @@ class KTDocumentCore extends KTEntity { | @@ -73,7 +73,6 @@ class KTDocumentCore extends KTEntity { | ||
| 73 | 73 | ||
| 74 | // transaction-related | 74 | // transaction-related |
| 75 | "iCreatorId" => 'creator_id', | 75 | "iCreatorId" => 'creator_id', |
| 76 | - | ||
| 77 | "dCreated" => 'created', | 76 | "dCreated" => 'created', |
| 78 | "iModifiedUserId" => 'modified_user_id', | 77 | "iModifiedUserId" => 'modified_user_id', |
| 79 | "dModified" => 'modified', | 78 | "dModified" => 'modified', |
| @@ -93,7 +92,6 @@ class KTDocumentCore extends KTEntity { | @@ -93,7 +92,6 @@ class KTDocumentCore extends KTEntity { | ||
| 93 | // permission-related | 92 | // permission-related |
| 94 | "iPermissionObjectId" => 'permission_object_id', | 93 | "iPermissionObjectId" => 'permission_object_id', |
| 95 | "iPermissionLookupId" => 'permission_lookup_id', | 94 | "iPermissionLookupId" => 'permission_lookup_id', |
| 96 | - "iOwnerId" => 'owner_id', | ||
| 97 | ); | 95 | ); |
| 98 | 96 | ||
| 99 | function KTDocument() { | 97 | function KTDocument() { |
| @@ -102,8 +100,6 @@ class KTDocumentCore extends KTEntity { | @@ -102,8 +100,6 @@ class KTDocumentCore extends KTEntity { | ||
| 102 | // {{{ getters/setters | 100 | // {{{ getters/setters |
| 103 | function getCreatorId() { return $this->iCreatorId; } | 101 | function getCreatorId() { return $this->iCreatorId; } |
| 104 | function setCreatorId($iNewValue) { $this->iCreatorId = $iNewValue; } | 102 | function setCreatorId($iNewValue) { $this->iCreatorId = $iNewValue; } |
| 105 | - function getOwnerId() { return $this->iOwnerId; } | ||
| 106 | - function setOwnerId($iNewValue) { $this->iOwnerId = $iNewValue; } | ||
| 107 | function getCreatedDateTime() { return $this->dCreated; } | 103 | function getCreatedDateTime() { return $this->dCreated; } |
| 108 | function getModifiedUserId() { return $this->iModifiedUserId; } | 104 | function getModifiedUserId() { return $this->iModifiedUserId; } |
| 109 | function setModifiedUserId($iNewValue) { $this->iModifiedUserId = $iNewValue; } | 105 | function setModifiedUserId($iNewValue) { $this->iModifiedUserId = $iNewValue; } |
| @@ -216,9 +212,6 @@ class KTDocumentCore extends KTEntity { | @@ -216,9 +212,6 @@ class KTDocumentCore extends KTEntity { | ||
| 216 | if (empty($this->iModifiedUserId)) { | 212 | if (empty($this->iModifiedUserId)) { |
| 217 | $this->iModifiedUserId = $this->iCreatorId; | 213 | $this->iModifiedUserId = $this->iCreatorId; |
| 218 | } | 214 | } |
| 219 | - if (empty($this->iOwnerId)) { | ||
| 220 | - $this->iOwnerId = $this->iCreatorId; | ||
| 221 | - } | ||
| 222 | if (empty($this->iMetadataVersion)) { | 215 | if (empty($this->iMetadataVersion)) { |
| 223 | $this->iMetadataVersion = 0; | 216 | $this->iMetadataVersion = 0; |
| 224 | } | 217 | } |
| @@ -228,7 +221,7 @@ class KTDocumentCore extends KTEntity { | @@ -228,7 +221,7 @@ class KTDocumentCore extends KTEntity { | ||
| 228 | $oFolder = Folder::get($this->getFolderId()); | 221 | $oFolder = Folder::get($this->getFolderId()); |
| 229 | $this->iPermissionObjectId = $oFolder->getPermissionObjectId(); | 222 | $this->iPermissionObjectId = $oFolder->getPermissionObjectId(); |
| 230 | $res = parent::create(); | 223 | $res = parent::create(); |
| 231 | - | 224 | + |
| 232 | if ($res === true) { | 225 | if ($res === true) { |
| 233 | KTPermissionUtil::updatePermissionLookup($this); | 226 | KTPermissionUtil::updatePermissionLookup($this); |
| 234 | } | 227 | } |
lib/permissions/permissionutil.inc.php
| @@ -37,7 +37,6 @@ require_once(KT_LIB_DIR . "/permissions/permissionobject.inc.php"); | @@ -37,7 +37,6 @@ require_once(KT_LIB_DIR . "/permissions/permissionobject.inc.php"); | ||
| 37 | require_once(KT_LIB_DIR . "/permissions/permissiondynamiccondition.inc.php"); | 37 | require_once(KT_LIB_DIR . "/permissions/permissiondynamiccondition.inc.php"); |
| 38 | require_once(KT_LIB_DIR . "/groups/GroupUtil.php"); | 38 | require_once(KT_LIB_DIR . "/groups/GroupUtil.php"); |
| 39 | require_once(KT_LIB_DIR . "/roles/roleallocation.inc.php"); | 39 | require_once(KT_LIB_DIR . "/roles/roleallocation.inc.php"); |
| 40 | -require_once(KT_LIB_DIR . "/roles/documentroleallocation.inc.php"); | ||
| 41 | 40 | ||
| 42 | require_once(KT_LIB_DIR . "/workflow/workflowutil.inc.php"); | 41 | require_once(KT_LIB_DIR . "/workflow/workflowutil.inc.php"); |
| 43 | require_once(KT_LIB_DIR . "/workflow/workflowstatepermissionsassignment.inc.php"); | 42 | require_once(KT_LIB_DIR . "/workflow/workflowstatepermissionsassignment.inc.php"); |
| @@ -311,22 +310,13 @@ class KTPermissionUtil { | @@ -311,22 +310,13 @@ class KTPermissionUtil { | ||
| 311 | foreach ($aAllowed['role'] as $iRoleId) { | 310 | foreach ($aAllowed['role'] as $iRoleId) { |
| 312 | // store the PD <-> RoleId map | 311 | // store the PD <-> RoleId map |
| 313 | if (!array_key_exists($iRoleId, $_roleCache)) { | 312 | if (!array_key_exists($iRoleId, $_roleCache)) { |
| 314 | - $oRoleAllocation = null; | ||
| 315 | - if (is_a($oFolderOrDocument, 'KTDocumentCore') || is_a($oFolderOrDocument, 'Document')) { | ||
| 316 | - $oRoleAllocation =& DocumentRoleAllocation::getAllocationsForDocumentAndRole($oFolderOrDocument->getId(), $iRoleId); | ||
| 317 | - if (PEAR::isError($oRoleAllocation)) { $oRoleAllocation = null; } | ||
| 318 | - } | ||
| 319 | - // if that's null - not set _on_ the document, then | ||
| 320 | - if (is_null($oRoleAllocation)) { | ||
| 321 | - $oRoleAllocation =& RoleAllocation::getAllocationsForFolderAndRole($iRoleSourceFolder, $iRoleId); | ||
| 322 | - } | 313 | + $oRoleAllocation =& RoleAllocation::getAllocationsForFolderAndRole($iRoleSourceFolder, $iRoleId); |
| 323 | $_roleCache[$iRoleId] = $oRoleAllocation; | 314 | $_roleCache[$iRoleId] = $oRoleAllocation; |
| 324 | } | 315 | } |
| 325 | // roles are _not_ always assigned (can be null at root) | 316 | // roles are _not_ always assigned (can be null at root) |
| 326 | - if (!is_null($_roleCache[$iRoleId])) { | 317 | + if ($_roleCache[$iRoleId] != null) { |
| 327 | $aMapPermAllowed[$iPermissionId]['user'] = array_merge($aAllowed['user'], $_roleCache[$iRoleId]->getUserIds()); | 318 | $aMapPermAllowed[$iPermissionId]['user'] = array_merge($aAllowed['user'], $_roleCache[$iRoleId]->getUserIds()); |
| 328 | $aMapPermAllowed[$iPermissionId]['group'] = array_merge($aAllowed['group'], $_roleCache[$iRoleId]->getGroupIds()); | 319 | $aMapPermAllowed[$iPermissionId]['group'] = array_merge($aAllowed['group'], $_roleCache[$iRoleId]->getGroupIds()); |
| 329 | - // naturally, roles cannot be assigned roles, or madness follows. | ||
| 330 | } | 320 | } |
| 331 | } | 321 | } |
| 332 | 322 | ||
| @@ -371,8 +361,7 @@ class KTPermissionUtil { | @@ -371,8 +361,7 @@ class KTPermissionUtil { | ||
| 371 | } | 361 | } |
| 372 | $oPD = KTPermissionDescriptor::get($oPLA->getPermissionDescriptorID()); | 362 | $oPD = KTPermissionDescriptor::get($oPLA->getPermissionDescriptorID()); |
| 373 | $aGroups = GroupUtil::listGroupsForUserExpand($oUser); | 363 | $aGroups = GroupUtil::listGroupsForUserExpand($oUser); |
| 374 | - if ($oPD->hasUsers(array($oUser))) { return true; } | ||
| 375 | - else { return $oPD->hasGroups($aGroups); } | 364 | + return $oPD->hasGroups($aGroups); |
| 376 | } | 365 | } |
| 377 | // }}} | 366 | // }}} |
| 378 | 367 |
lib/roles/roleallocation.inc.php
| @@ -66,18 +66,6 @@ class RoleAllocation extends KTEntity { | @@ -66,18 +66,6 @@ class RoleAllocation extends KTEntity { | ||
| 66 | $this->iPermissionDescriptorId = $oDescriptor->getId(); | 66 | $this->iPermissionDescriptorId = $oDescriptor->getId(); |
| 67 | } | 67 | } |
| 68 | 68 | ||
| 69 | - function getAllowed() { | ||
| 70 | - if (!is_null($this->iPermissionDescriptorId)) { | ||
| 71 | - $oDescriptor = KTPermissionDescriptor::get($this->iPermissionDescriptorId); // fully done, etc. | ||
| 72 | - $aAllowed = $oDescriptor->getAllowed(); | ||
| 73 | - } else { | ||
| 74 | - $aAllowed = array(); | ||
| 75 | - } | ||
| 76 | - return $aAllowed; | ||
| 77 | - } | ||
| 78 | - | ||
| 79 | - | ||
| 80 | - | ||
| 81 | function _fieldValues () { return array( | 69 | function _fieldValues () { return array( |
| 82 | 'role_id' => $this->iRoleId, | 70 | 'role_id' => $this->iRoleId, |
| 83 | 'folder_id' => $this->iFolderId, | 71 | 'folder_id' => $this->iFolderId, |
plugins/ktcore/KTCorePlugin.php
| @@ -58,7 +58,6 @@ class KTCorePlugin extends KTPlugin { | @@ -58,7 +58,6 @@ class KTCorePlugin extends KTPlugin { | ||
| 58 | // Permissions | 58 | // Permissions |
| 59 | $this->registerAction('documentaction', 'KTDocumentPermissionsAction', 'ktcore.actions.document.permissions', 'KTPermissions.php'); | 59 | $this->registerAction('documentaction', 'KTDocumentPermissionsAction', 'ktcore.actions.document.permissions', 'KTPermissions.php'); |
| 60 | $this->registerAction('folderaction', 'KTRoleAllocationPlugin', 'ktcore.actions.folder.roles', 'KTPermissions.php'); | 60 | $this->registerAction('folderaction', 'KTRoleAllocationPlugin', 'ktcore.actions.folder.roles', 'KTPermissions.php'); |
| 61 | - $this->registerAction('documentaction', 'KTDocumentRolesAction', 'ktcore.actions.document.roles', 'KTPermissions.php'); | ||
| 62 | 61 | ||
| 63 | $this->registerDashlet('KTInfoDashlet', 'ktcore.dashlet.info', 'KTDashlets.php'); | 62 | $this->registerDashlet('KTInfoDashlet', 'ktcore.dashlet.info', 'KTDashlets.php'); |
| 64 | $this->registerDashlet('KTNotificationDashlet', 'ktcore.dashlet.notifications', 'KTDashlets.php'); | 63 | $this->registerDashlet('KTNotificationDashlet', 'ktcore.dashlet.notifications', 'KTDashlets.php'); |
plugins/ktcore/KTPermissions.php
| @@ -35,12 +35,10 @@ require_once(KT_LIB_DIR . "/groups/Group.inc"); | @@ -35,12 +35,10 @@ require_once(KT_LIB_DIR . "/groups/Group.inc"); | ||
| 35 | require_once(KT_LIB_DIR . "/users/User.inc"); | 35 | require_once(KT_LIB_DIR . "/users/User.inc"); |
| 36 | require_once(KT_LIB_DIR . "/roles/Role.inc"); | 36 | require_once(KT_LIB_DIR . "/roles/Role.inc"); |
| 37 | require_once(KT_LIB_DIR . "/roles/roleallocation.inc.php"); | 37 | require_once(KT_LIB_DIR . "/roles/roleallocation.inc.php"); |
| 38 | -require_once(KT_LIB_DIR . "/roles/documentroleallocation.inc.php"); | ||
| 39 | 38 | ||
| 40 | 39 | ||
| 41 | require_once(KT_LIB_DIR . "/permissions/permission.inc.php"); | 40 | require_once(KT_LIB_DIR . "/permissions/permission.inc.php"); |
| 42 | require_once(KT_LIB_DIR . "/permissions/permissionobject.inc.php"); | 41 | require_once(KT_LIB_DIR . "/permissions/permissionobject.inc.php"); |
| 43 | -require_once(KT_LIB_DIR . "/permissions/permissionlookup.inc.php"); | ||
| 44 | require_once(KT_LIB_DIR . "/permissions/permissionassignment.inc.php"); | 42 | require_once(KT_LIB_DIR . "/permissions/permissionassignment.inc.php"); |
| 45 | require_once(KT_LIB_DIR . "/permissions/permissiondescriptor.inc.php"); | 43 | require_once(KT_LIB_DIR . "/permissions/permissiondescriptor.inc.php"); |
| 46 | require_once(KT_LIB_DIR . "/permissions/permissionutil.inc.php"); | 44 | require_once(KT_LIB_DIR . "/permissions/permissionutil.inc.php"); |
| @@ -54,87 +52,52 @@ class KTDocumentPermissionsAction extends KTDocumentAction { | @@ -54,87 +52,52 @@ class KTDocumentPermissionsAction extends KTDocumentAction { | ||
| 54 | } | 52 | } |
| 55 | 53 | ||
| 56 | function do_main() { | 54 | function do_main() { |
| 57 | - $this->oPage->setBreadcrumbDetails("Document Permissions"); | 55 | + $this->oPage->setBreadcrumbDetails("permissions"); |
| 56 | + | ||
| 58 | $oTemplate = $this->oValidator->validateTemplate("ktcore/document/document_permissions"); | 57 | $oTemplate = $this->oValidator->validateTemplate("ktcore/document/document_permissions"); |
| 59 | - | ||
| 60 | - $oPL = KTPermissionLookup::get($this->oDocument->getPermissionLookupID()); | 58 | + $oPO = KTPermissionObject::get($this->oDocument->getPermissionObjectID()); |
| 61 | $aPermissions = KTPermission::getList(); | 59 | $aPermissions = KTPermission::getList(); |
| 62 | $aMapPermissionGroup = array(); | 60 | $aMapPermissionGroup = array(); |
| 63 | - $aMapPermissionRole = array(); | ||
| 64 | - $aMapPermissionUser = array(); | ||
| 65 | - | ||
| 66 | - $aAllGroups = Group::getList(); // probably small enough | ||
| 67 | - $aAllRoles = Role::getList(); // probably small enough. | ||
| 68 | - // users are _not_ fetched this way. | ||
| 69 | - | ||
| 70 | - $aActiveGroups = array(); | ||
| 71 | - $aActiveUsers = array(); | ||
| 72 | - $aActiveRoles = array(); | ||
| 73 | - | 61 | + $aMapPermissionRole = array(); |
| 74 | foreach ($aPermissions as $oPermission) { | 62 | foreach ($aPermissions as $oPermission) { |
| 75 | - $oPLA = KTPermissionLookupAssignment::getByPermissionAndLookup($oPermission, $oPL); | ||
| 76 | - if (PEAR::isError($oPLA)) { | 63 | + $oPA = KTPermissionAssignment::getByPermissionAndObject($oPermission, $oPO); |
| 64 | + if (PEAR::isError($oPA)) { | ||
| 77 | continue; | 65 | continue; |
| 78 | } | 66 | } |
| 79 | - $oDescriptor = KTPermissionDescriptor::get($oPLA->getPermissionDescriptorID()); | 67 | + $oDescriptor = KTPermissionDescriptor::get($oPA->getPermissionDescriptorID()); |
| 80 | $iPermissionID = $oPermission->getID(); | 68 | $iPermissionID = $oPermission->getID(); |
| 81 | $aIDs = $oDescriptor->getGroups(); | 69 | $aIDs = $oDescriptor->getGroups(); |
| 82 | $aMapPermissionGroup[$iPermissionID] = array(); | 70 | $aMapPermissionGroup[$iPermissionID] = array(); |
| 83 | foreach ($aIDs as $iID) { | 71 | foreach ($aIDs as $iID) { |
| 84 | $aMapPermissionGroup[$iPermissionID][$iID] = true; | 72 | $aMapPermissionGroup[$iPermissionID][$iID] = true; |
| 85 | - $aActiveGroups[$iID] = true; | ||
| 86 | } | 73 | } |
| 87 | $aIds = $oDescriptor->getRoles(); | 74 | $aIds = $oDescriptor->getRoles(); |
| 88 | $aMapPermissionRole[$iPermissionID] = array(); | 75 | $aMapPermissionRole[$iPermissionID] = array(); |
| 89 | foreach ($aIds as $iId) { | 76 | foreach ($aIds as $iId) { |
| 90 | $aMapPermissionRole[$iPermissionID][$iId] = true; | 77 | $aMapPermissionRole[$iPermissionID][$iId] = true; |
| 91 | - $aActiveRoles[$iId] = true; | ||
| 92 | - } | ||
| 93 | - $aIds = $oDescriptor->getUsers(); | ||
| 94 | - $aMapPermissionUser[$iPermissionID] = array(); | ||
| 95 | - foreach ($aIds as $iId) { | ||
| 96 | - $aMapPermissionUser[$iPermissionID][$iId] = true; | ||
| 97 | - $aActiveUsers[$iId] = true; | ||
| 98 | } | 78 | } |
| 99 | } | 79 | } |
| 100 | - | ||
| 101 | - // now we constitute the actual sets. | ||
| 102 | - $users = array(); | ||
| 103 | - $groups = array(); | ||
| 104 | - $roles = array(); // should _always_ be empty, barring a bug in permissions::updatePermissionLookup | ||
| 105 | 80 | ||
| 106 | - // this should be quite limited - direct role -> user assignment is typically rare. | ||
| 107 | - foreach ($aActiveUsers as $id => $marker) { | ||
| 108 | - $oUser = User::get($id); | ||
| 109 | - $users[$oUser->getName()] = $oUser; | ||
| 110 | - } | ||
| 111 | - asort($users); // ascending, per convention. | ||
| 112 | - | ||
| 113 | - foreach ($aActiveGroups as $id => $marker) { | ||
| 114 | - $oGroup = Group::get($id); | ||
| 115 | - $groups[$oGroup->getName()] = $oGroup; | ||
| 116 | - } | ||
| 117 | - asort($groups); | ||
| 118 | - | ||
| 119 | - foreach ($aActiveRoles as $id => $marker) { | ||
| 120 | - $oRole = Role::get($id); | ||
| 121 | - $roles[$oRole->getName()] = $oRole; | ||
| 122 | - } | ||
| 123 | - asort($roles); | ||
| 124 | - | ||
| 125 | - $bEdit = false; | ||
| 126 | - $sInherited = ''; | 81 | + $oInherited = KTPermissionUtil::findRootObjectForPermissionObject($oPO); |
| 82 | + if ($oInherited === $this->oDocument) { | ||
| 83 | + $bEdit = true; | ||
| 84 | + } else { | ||
| 85 | + $iInheritedFolderID = $oInherited->getID(); | ||
| 86 | + /* $sInherited = displayFolderPathLink(Folder::getFolderPathAsArray($iInheritedFolderID), | ||
| 87 | + Folder::getFolderPathNamesAsArray($iInheritedFolderID), | ||
| 88 | + "$default->rootUrl/control.php?action=editFolderPermissions");*/ | ||
| 89 | + $sInherited = join(" » ", $oInherited->getPathArray()); | ||
| 90 | + $bEdit = false; | ||
| 91 | + } | ||
| 127 | 92 | ||
| 128 | $aTemplateData = array( | 93 | $aTemplateData = array( |
| 129 | "context" => $this, | 94 | "context" => $this, |
| 130 | "permissions" => $aPermissions, | 95 | "permissions" => $aPermissions, |
| 131 | - "groups" => $groups, | ||
| 132 | - "users" => $users, | ||
| 133 | - "roles" => $roles, | 96 | + "groups" => Group::getList(), |
| 97 | + "roles" => Role::getList(), | ||
| 134 | "iDocumentID" => $_REQUEST['fDocumentID'], | 98 | "iDocumentID" => $_REQUEST['fDocumentID'], |
| 135 | "aMapPermissionGroup" => $aMapPermissionGroup, | 99 | "aMapPermissionGroup" => $aMapPermissionGroup, |
| 136 | "aMapPermissionRole" => $aMapPermissionRole, | 100 | "aMapPermissionRole" => $aMapPermissionRole, |
| 137 | - "aMapPermissionUser" => $aMapPermissionUser, | ||
| 138 | "edit" => $bEdit, | 101 | "edit" => $bEdit, |
| 139 | "inherited" => $sInherited, | 102 | "inherited" => $sInherited, |
| 140 | ); | 103 | ); |
| @@ -546,93 +509,3 @@ class KTRoleAllocationPlugin extends KTFolderAction { | @@ -546,93 +509,3 @@ class KTRoleAllocationPlugin extends KTFolderAction { | ||
| 546 | } | 509 | } |
| 547 | } | 510 | } |
| 548 | } | 511 | } |
| 549 | - | ||
| 550 | -class KTDocumentRolesAction extends KTDocumentAction { | ||
| 551 | - var $sDisplayName = 'View Roles'; | ||
| 552 | - var $sName = 'ktcore.actions.document.roles'; | ||
| 553 | - | ||
| 554 | - var $_sShowPermission = "ktcore.permissions.write"; | ||
| 555 | - var $bAutomaticTransaction = true; | ||
| 556 | - | ||
| 557 | - function do_main() { | ||
| 558 | - $this->oPage->setTitle(_("View Roles")); | ||
| 559 | - $this->oPage->setBreadcrumbDetails(_("View Roles")); | ||
| 560 | - $oTemplating = new KTTemplating; | ||
| 561 | - $oTemplate = $oTemplating->loadTemplate("ktcore/action/view_roles"); | ||
| 562 | - | ||
| 563 | - // we need to have: | ||
| 564 | - // - a list of roles | ||
| 565 | - // - with their users / groups | ||
| 566 | - // - and that allocation id | ||
| 567 | - $aRoles = array(); // stores data for display. | ||
| 568 | - | ||
| 569 | - $aRoleList = Role::getList(); | ||
| 570 | - foreach ($aRoleList as $oRole) { | ||
| 571 | - $iRoleId = $oRole->getId(); | ||
| 572 | - $aRoles[$iRoleId] = array("name" => $oRole->getName()); | ||
| 573 | - $oRoleAllocation = DocumentRoleAllocation::getAllocationsForDocumentAndRole($this->oDocument->getId(), $iRoleId); | ||
| 574 | - if (is_null($oRoleAllocation)) { | ||
| 575 | - $oRoleAllocation = RoleAllocation::getAllocationsForFolderAndRole($this->oDocument->getFolderID(), $iRoleId); | ||
| 576 | - } | ||
| 577 | - | ||
| 578 | - $u = array(); | ||
| 579 | - $g = array(); | ||
| 580 | - $aid = null; | ||
| 581 | - $raid = null; | ||
| 582 | - if (is_null($oRoleAllocation)) { | ||
| 583 | - ; // nothing. | ||
| 584 | - } else { | ||
| 585 | - //var_dump($oRoleAllocation); | ||
| 586 | - $raid = $oRoleAllocation->getId(); // real_alloc_id | ||
| 587 | - $aAllowed = $oRoleAllocation->getAllowed(); | ||
| 588 | - | ||
| 589 | - if (!empty($aAllowed['user'])) { | ||
| 590 | - $u = $aAllowed['user']; | ||
| 591 | - } | ||
| 592 | - if (!empty($aAllowed['group'])) { | ||
| 593 | - $g = $aAllowed['group']; | ||
| 594 | - } | ||
| 595 | - } | ||
| 596 | - $aRoles[$iRoleId]['users'] = $u; | ||
| 597 | - $aRoles[$iRoleId]['groups'] = $g; | ||
| 598 | - $aRoles[$iRoleId]['real_allocation_id'] = $raid; | ||
| 599 | - } | ||
| 600 | - | ||
| 601 | - // final step. | ||
| 602 | - | ||
| 603 | - // map to users, groups. | ||
| 604 | - foreach ($aRoles as $key => $role) { | ||
| 605 | - $_users = array(); | ||
| 606 | - foreach ($aRoles[$key]['users'] as $iUserId) { | ||
| 607 | - $oUser = User::get($iUserId); | ||
| 608 | - if (!(PEAR::isError($oUser) || ($oUser == false))) { | ||
| 609 | - $_users[] = $oUser->getName(); | ||
| 610 | - } | ||
| 611 | - } | ||
| 612 | - if (empty($_users)) { | ||
| 613 | - $aRoles[$key]['users'] = '<span class="descriptiveText"> ' . _('no users') . '</span>'; | ||
| 614 | - } else { | ||
| 615 | - $aRoles[$key]['users'] = implode(', ',$_users); | ||
| 616 | - } | ||
| 617 | - | ||
| 618 | - $_groups = array(); | ||
| 619 | - foreach ($aRoles[$key]['groups'] as $iGroupId) { | ||
| 620 | - $oGroup = Group::get($iGroupId); | ||
| 621 | - if (!(PEAR::isError($oGroup) || ($oGroup == false))) { | ||
| 622 | - $_groups[] = $oGroup->getName(); | ||
| 623 | - } | ||
| 624 | - } | ||
| 625 | - if (empty($_groups)) { | ||
| 626 | - $aRoles[$key]['groups'] = '<span class="descriptiveText"> ' . _('no groups') . '</span>'; | ||
| 627 | - } else { | ||
| 628 | - $aRoles[$key]['groups'] = implode(', ',$_groups); | ||
| 629 | - } | ||
| 630 | - } | ||
| 631 | - | ||
| 632 | - $aTemplateData = array( | ||
| 633 | - 'context' => &$this, | ||
| 634 | - 'roles' => $aRoles, | ||
| 635 | - ); | ||
| 636 | - return $oTemplate->render($aTemplateData); | ||
| 637 | - } | ||
| 638 | -} | ||
| 639 | \ No newline at end of file | 512 | \ No newline at end of file |
templates/ktcore/document/document_permissions.smarty
| 1 | <h2>{i18n}Document permissions{/i18n}</h2> | 1 | <h2>{i18n}Document permissions{/i18n}</h2> |
| 2 | 2 | ||
| 3 | -<p class="descriptiveText">{i18n}This page shows the permissions that apply to | ||
| 4 | -this specific document. Where the folder view shows you information by role and group, | ||
| 5 | -this page shows the actual groups (and, if they are assigned directly to a role, the users) | ||
| 6 | -who have the different permissions. As a result, groups, users and roles with <strong>no</strong> | ||
| 7 | -permissions are not shown.{/i18n}</p> | ||
| 8 | - | ||
| 9 | -{if ((empty($roles) && empty($groups) && empty($users)))} | ||
| 10 | -<div class="ktInfo"><p>{i18n}No roles or groups have been defined or have permissions.{/i18n}</p></div> | 3 | + |
| 4 | + | ||
| 5 | +{if ((empty($roles) && empty($groups)))} | ||
| 6 | +<div class="ktInfo"><p>{i18n}No roles or groups have been defined. Permissions can only | ||
| 7 | +be allocated to roles and groups.{/i18n}</p></div> | ||
| 11 | {else} | 8 | {else} |
| 12 | 9 | ||
| 10 | +{* | ||
| 11 | + | ||
| 12 | +{if $iFolderId != 1} | ||
| 13 | +<div class="ktInfo"> | ||
| 14 | +{ if $inherited } | ||
| 15 | +<p>{i18n arg_permission_source=$inherited}This folder <strong>inherits</strong> its permissions from #permission_source#.{/i18n} | ||
| 16 | +<a class="ktActionLink ktEdit" | ||
| 17 | + href="{addQS}action=copyPermissions&fFolderId={$iFolderId}{/addQS}">{i18n}Override Permissions{/i18n}</a> </p> | ||
| 18 | +{ else } | ||
| 19 | +<p>{i18n}This folder defines its own permissions.{/i18n} | ||
| 20 | +<a class="ktActionLink ktDelete" | ||
| 21 | + href="{addQS}action=inheritPermissions&fFolderId={$iFolderId}{/addQS}">{i18n}Inherit permissions{/i18n}</a> | ||
| 22 | +{ /if } | ||
| 23 | +</span> | ||
| 24 | +</div> | ||
| 25 | +{ /if } | ||
| 26 | + | ||
| 27 | +*} | ||
| 28 | + | ||
| 13 | <form action="{$smarty.server.PHP_SELF}" method="POST"> | 29 | <form action="{$smarty.server.PHP_SELF}" method="POST"> |
| 14 | <input type="hidden" name="action" value="update"> | 30 | <input type="hidden" name="action" value="update"> |
| 15 | <input type="hidden" name="fFolderId" value="{$iFolderId}"> | 31 | <input type="hidden" name="fFolderId" value="{$iFolderId}"> |
| @@ -78,36 +94,6 @@ value="{$iGroupId}"></td> | @@ -78,36 +94,6 @@ value="{$iGroupId}"></td> | ||
| 78 | { /foreach } | 94 | { /foreach } |
| 79 | </tr> | 95 | </tr> |
| 80 | { /foreach } | 96 | { /foreach } |
| 81 | - | ||
| 82 | - | ||
| 83 | -{ foreach item=oUser from=$users } | ||
| 84 | -<td><span class="descriptiveText">{i18n}User: {/i18n}</span> {$oUser->getName()}</td> | ||
| 85 | - { assign var=iUserId value=$oUser->getId() } | ||
| 86 | - { foreach item=oPerm from=$permissions } | ||
| 87 | - { assign var=iPermId value=$oPerm->getId() } | ||
| 88 | - { assign var=bHasPerm value=$aMapPermissionUser[$iPermId][$iUserId] } | ||
| 89 | - | ||
| 90 | -{ if $edit} | ||
| 91 | -{ if $bHasPerm } | ||
| 92 | -<td class="centered"><input type="checkbox" name="foo[{$iPermId}][group][]" | ||
| 93 | -value="{$iGroupId}" checked="true"></td> | ||
| 94 | -{ else } | ||
| 95 | -<td class="centered"><input type="checkbox" name="foo[{$iPermId}][group][]" | ||
| 96 | -value="{$iGroupId}"></td> | ||
| 97 | -{ /if } | ||
| 98 | -{else} | ||
| 99 | -{ if $bHasPerm } | ||
| 100 | -<td class="centered"><span class="ktAction ktInline ktAllowed">{i18n}Allowed{/i18n}</span></td> | ||
| 101 | -{ else } | ||
| 102 | -<td class="centered"><span class="ktAction ktInline ktDenied">{i18n}Denied{/i18n}</span></td> | ||
| 103 | -{ /if } | ||
| 104 | -{/if} | ||
| 105 | - | ||
| 106 | - | ||
| 107 | - { /foreach } | ||
| 108 | -</tr> | ||
| 109 | -{ /foreach } | ||
| 110 | - | ||
| 111 | </tbody> | 97 | </tbody> |
| 112 | </table> | 98 | </table> |
| 113 | {if $edit} | 99 | {if $edit} |