Commit 5a8d269cbbce41359ab8fd8361aa549656baba83
1 parent
d64c29ec
KTS-1025: dynamic conditions in perm view.
git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@5724 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
4 changed files
with
76 additions
and
10 deletions
plugins/ktcore/folder/Permissions.php
| ... | ... | @@ -104,6 +104,29 @@ class KTFolderPermissionsAction extends KTFolderAction { |
| 104 | 104 | $iInheritedFolderId = $oInherited->getId(); |
| 105 | 105 | $sInherited = join(" » ", $oInherited->getPathArray()); |
| 106 | 106 | } |
| 107 | + | |
| 108 | + $aConditions = array(); | |
| 109 | + $aDynConditions = KTPermissionDynamicCondition::getByPermissionObject($oPO); | |
| 110 | + | |
| 111 | + foreach ($aDynConditions as $oDynCondition) { | |
| 112 | + $g = Group::get($oDynCondition->getGroupId()); | |
| 113 | + | |
| 114 | + if (PEAR::isError($g)) { continue; } | |
| 115 | + $c = KTSavedSearch::get($oDynCondition->getConditionId()); | |
| 116 | + if (PEAR::isError($c)) { continue; } | |
| 117 | + | |
| 118 | + $aInfo = array( | |
| 119 | + 'group' => $g->getName(), | |
| 120 | + 'name' => $c->getName(), | |
| 121 | + ); | |
| 122 | + $aAssign = $oDynCondition->getAssignment(); | |
| 123 | + $perms = array(); | |
| 124 | + foreach ($aAssign as $iPermissionId) { | |
| 125 | + $perms[$iPermissionId] = true; | |
| 126 | + } | |
| 127 | + $aInfo['perms'] = $perms; | |
| 128 | + $aConditions[] = $aInfo; | |
| 129 | + } | |
| 107 | 130 | |
| 108 | 131 | $aTemplateData = array( |
| 109 | 132 | "context" => $this, |
| ... | ... | @@ -118,6 +141,7 @@ class KTFolderPermissionsAction extends KTFolderAction { |
| 118 | 141 | "edit" => $bEdit, |
| 119 | 142 | "inherited" => $sInherited, |
| 120 | 143 | 'foldername' => $this->oFolder->getName(), |
| 144 | + 'conditions' => $aConditions, | |
| 121 | 145 | ); |
| 122 | 146 | return $oTemplate->render($aTemplateData); |
| 123 | 147 | } |
| ... | ... | @@ -177,7 +201,8 @@ class KTFolderPermissionsAction extends KTFolderAction { |
| 177 | 201 | "aMapPermissionUser" => $aMapPermissionUser, |
| 178 | 202 | "edit" => $bEdit, |
| 179 | 203 | "inherited" => $sInherited, |
| 180 | - 'foldername' => $this->oFolder->getName(), | |
| 204 | + 'foldername' => $this->oFolder->getName(), | |
| 205 | + "iFolderId" => $this->oFolder->getId(), | |
| 181 | 206 | ); |
| 182 | 207 | return $oTemplate->render($aTemplateData); |
| 183 | 208 | } |
| ... | ... | @@ -247,13 +272,15 @@ class KTFolderPermissionsAction extends KTFolderAction { |
| 247 | 272 | |
| 248 | 273 | $aTemplateData = array( |
| 249 | 274 | "iFolderId" => $this->oFolder->getId(), |
| 250 | - 'roles' => Role::getList(), | |
| 251 | - 'groups' => Group::getList(), | |
| 275 | + 'roles' => Role::getList(), | |
| 276 | + 'groups' => Group::getList(), | |
| 252 | 277 | "conditions" => KTSavedSearch::getConditions(), |
| 253 | 278 | "dynamic_conditions" => $aDynamicConditions, |
| 254 | 279 | 'context' => &$this, |
| 255 | 280 | 'foldername' => $this->oFolder->getName(), |
| 256 | - 'jsonpermissions' => $sJSONPermissions, | |
| 281 | + 'jsonpermissions' => $sJSONPermissions, | |
| 282 | + 'edit' => true, | |
| 283 | + 'permissions' => KTPermission::getList(), | |
| 257 | 284 | ); |
| 258 | 285 | return $oTemplate->render($aTemplateData); |
| 259 | 286 | } |
| ... | ... | @@ -390,14 +417,14 @@ class KTFolderPermissionsAction extends KTFolderAction { |
| 390 | 417 | foreach ($aPermissions as $oPermission) { |
| 391 | 418 | $iPermId = $oPermission->getId(); |
| 392 | 419 | |
| 393 | - print 'permission: ' . $oPermission->getName() . '<br/>'; | |
| 394 | - var_dump(KTUtil::arrayGet($aFoo, $iPermId, false)); print '<br/>'; | |
| 420 | + //print 'permission: ' . $oPermission->getName() . '<br/>'; | |
| 421 | + //var_dump(KTUtil::arrayGet($aFoo, $iPermId, false)); print '<br/>'; | |
| 395 | 422 | |
| 396 | 423 | $aAllowed = KTUtil::arrayGet($aFoo, $iPermId, array()); |
| 397 | 424 | KTPermissionUtil::setPermissionForId($oPermission, $oPO, $aAllowed); |
| 398 | 425 | } |
| 399 | 426 | |
| 400 | - exit(0); | |
| 427 | + //exit(0); | |
| 401 | 428 | |
| 402 | 429 | $oTransaction = KTFolderTransaction::createFromArray(array( |
| 403 | 430 | 'folderid' => $this->oFolder->getId(), | ... | ... |
templates/ktcore/folder/permissions.smarty
| ... | ... | @@ -10,7 +10,9 @@ |
| 10 | 10 | {else} |
| 11 | 11 | |
| 12 | 12 | {* otherwise continue *} |
| 13 | -<p>{i18n}Manage security{/i18n}: <a href="{addQS}action=resolved_users&fFolderId={$iFolderId}{/addQS}">{i18n}View resolved permissions for user{/i18n}</a></p> | |
| 13 | +<p>{i18n}Manage security{/i18n}: <a href="{addQS}fFolderId={$iFolderId}{/addQS}">{i18n}View permissions overview{/i18n}</a> | |
| 14 | +| <a href="{addQS}action=resolved_users&fFolderId={$iFolderId}{/addQS}">{i18n}View resolved permissions for user{/i18n}</a> | |
| 15 | +</p> | |
| 14 | 16 | |
| 15 | 17 | |
| 16 | 18 | <div class="ktInfo"> | ... | ... |
templates/ktcore/folder/resolved_permissions_user.smarty
| ... | ... | @@ -12,7 +12,8 @@ this folder.{/i18n}</p> |
| 12 | 12 | <div class="ktInfo"><p>{i18n}No users have permissions on this item.{/i18n}</p></div> |
| 13 | 13 | {else} |
| 14 | 14 | |
| 15 | -<p>{i18n}Manage security{/i18n}: <a href="{addQS}action=edit&fFolderId={$oFolder->getId()}{/addQS}">{i18n}Edit permissions{/i18n}</a></p> | |
| 15 | +<p>{i18n}Manage security{/i18n}: <a href="{addQS}fFolderId={$iFolderId}{/addQS}">{i18n}View permissions overview{/i18n}</a> | |
| 16 | +| <a href="{addQS}action=edit&fFolderId={$oFolder->getId()}{/addQS}">{i18n}Edit permissions{/i18n}</a></p> | |
| 16 | 17 | |
| 17 | 18 | <table class="kt_collection"cellspacing="0" cellpadding="0" border="0"> |
| 18 | 19 | <thead> | ... | ... |
templates/ktcore/folder/view_permissions.smarty
| ... | ... | @@ -5,7 +5,8 @@ this specific folder. Only the roles or groups which have permissions |
| 5 | 5 | assigned are shown.{/i18n}</p> |
| 6 | 6 | |
| 7 | 7 | {if $edit} |
| 8 | -{i18n}Manage security{/i18n}: <a href="{addQS}action=edit&fFolderId={$oFolder->getId()}{/addQS}">{i18n}Edit permissions{/i18n}</a> | <a href="{addQS}action=resolved_users&fFolderId={$oFolder->getId()}{/addQS}">{i18n}View resolved permissions for user{/i18n}</a> | |
| 8 | +{i18n}Manage security{/i18n}: <a href="{addQS}action=edit&fFolderId={$oFolder->getId()}{/addQS}">{i18n}Edit permissions{/i18n}</a> | |
| 9 | +| <a href="{addQS}action=resolved_users&fFolderId={$oFolder->getId()}{/addQS}">{i18n}View resolved permissions for user{/i18n}</a> | |
| 9 | 10 | {/if} |
| 10 | 11 | |
| 11 | 12 | {if $iFolderId != 1} |
| ... | ... | @@ -69,6 +70,7 @@ assigned are shown.{/i18n}</p> |
| 69 | 70 | |
| 70 | 71 | |
| 71 | 72 | { foreach item=oUser from=$users } |
| 73 | +<tr> | |
| 72 | 74 | <td><span class="descriptiveText">{i18n}User: {/i18n}</span> {$oUser->getName()}</td> |
| 73 | 75 | { assign var=iUserId value=$oUser->getId() } |
| 74 | 76 | { foreach item=oPerm from=$permissions } |
| ... | ... | @@ -100,3 +102,37 @@ value="{$iGroupId}"></td> |
| 100 | 102 | </table> |
| 101 | 103 | { /if } |
| 102 | 104 | |
| 105 | +{ if (!empty($conditions)) } | |
| 106 | +<h3>{i18n}Dynamic Conditions{/i18n}</h3> | |
| 107 | +<table class="kt_collection" cellpadding="0" cellspacing="0"> | |
| 108 | +<thead> | |
| 109 | +<tr> | |
| 110 | + <th class="title">{i18n}Group{/i18n}</th> | |
| 111 | + <th class="title">{i18n}Condition{/i18n}</th> | |
| 112 | +{foreach from=$permissions item=oPerm} | |
| 113 | + <th class="title" title="{$oPerm->getName()}" class="centered">{$oPerm->getHumanName()}</th> | |
| 114 | +{/foreach} | |
| 115 | +</tr> | |
| 116 | +</thead> | |
| 117 | +<tbody> | |
| 118 | +{foreach from=$conditions item=aInfo} | |
| 119 | +<tr> | |
| 120 | + <td>{$aInfo.group}</td> | |
| 121 | + <td>{$aInfo.name}</td> | |
| 122 | +{foreach from=$permissions item=oPerm} | |
| 123 | + {assign var=perm_id value=$oPerm->getId()} | |
| 124 | + { if $aInfo.perms.$perm_id } | |
| 125 | + <td class="centered"><span class="ktAction ktInline ktAllowed">{i18n}Allowed{/i18n}</span></td> | |
| 126 | + { else } | |
| 127 | + <td class="centered"><span class="ktAction ktInline ktDenied">{i18n}Denied{/i18n}</span></td> | |
| 128 | + { /if } | |
| 129 | +{/foreach} | |
| 130 | +</tr> | |
| 131 | +{/foreach} | |
| 132 | + | |
| 133 | +</tbody> | |
| 134 | +</table> | |
| 135 | +{/if} | |
| 136 | + | |
| 137 | + | |
| 138 | + | ... | ... |