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,6 +104,29 @@ class KTFolderPermissionsAction extends KTFolderAction { | ||
| 104 | $iInheritedFolderId = $oInherited->getId(); | 104 | $iInheritedFolderId = $oInherited->getId(); |
| 105 | $sInherited = join(" » ", $oInherited->getPathArray()); | 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 | $aTemplateData = array( | 131 | $aTemplateData = array( |
| 109 | "context" => $this, | 132 | "context" => $this, |
| @@ -118,6 +141,7 @@ class KTFolderPermissionsAction extends KTFolderAction { | @@ -118,6 +141,7 @@ class KTFolderPermissionsAction extends KTFolderAction { | ||
| 118 | "edit" => $bEdit, | 141 | "edit" => $bEdit, |
| 119 | "inherited" => $sInherited, | 142 | "inherited" => $sInherited, |
| 120 | 'foldername' => $this->oFolder->getName(), | 143 | 'foldername' => $this->oFolder->getName(), |
| 144 | + 'conditions' => $aConditions, | ||
| 121 | ); | 145 | ); |
| 122 | return $oTemplate->render($aTemplateData); | 146 | return $oTemplate->render($aTemplateData); |
| 123 | } | 147 | } |
| @@ -177,7 +201,8 @@ class KTFolderPermissionsAction extends KTFolderAction { | @@ -177,7 +201,8 @@ class KTFolderPermissionsAction extends KTFolderAction { | ||
| 177 | "aMapPermissionUser" => $aMapPermissionUser, | 201 | "aMapPermissionUser" => $aMapPermissionUser, |
| 178 | "edit" => $bEdit, | 202 | "edit" => $bEdit, |
| 179 | "inherited" => $sInherited, | 203 | "inherited" => $sInherited, |
| 180 | - 'foldername' => $this->oFolder->getName(), | 204 | + 'foldername' => $this->oFolder->getName(), |
| 205 | + "iFolderId" => $this->oFolder->getId(), | ||
| 181 | ); | 206 | ); |
| 182 | return $oTemplate->render($aTemplateData); | 207 | return $oTemplate->render($aTemplateData); |
| 183 | } | 208 | } |
| @@ -247,13 +272,15 @@ class KTFolderPermissionsAction extends KTFolderAction { | @@ -247,13 +272,15 @@ class KTFolderPermissionsAction extends KTFolderAction { | ||
| 247 | 272 | ||
| 248 | $aTemplateData = array( | 273 | $aTemplateData = array( |
| 249 | "iFolderId" => $this->oFolder->getId(), | 274 | "iFolderId" => $this->oFolder->getId(), |
| 250 | - 'roles' => Role::getList(), | ||
| 251 | - 'groups' => Group::getList(), | 275 | + 'roles' => Role::getList(), |
| 276 | + 'groups' => Group::getList(), | ||
| 252 | "conditions" => KTSavedSearch::getConditions(), | 277 | "conditions" => KTSavedSearch::getConditions(), |
| 253 | "dynamic_conditions" => $aDynamicConditions, | 278 | "dynamic_conditions" => $aDynamicConditions, |
| 254 | 'context' => &$this, | 279 | 'context' => &$this, |
| 255 | 'foldername' => $this->oFolder->getName(), | 280 | 'foldername' => $this->oFolder->getName(), |
| 256 | - 'jsonpermissions' => $sJSONPermissions, | 281 | + 'jsonpermissions' => $sJSONPermissions, |
| 282 | + 'edit' => true, | ||
| 283 | + 'permissions' => KTPermission::getList(), | ||
| 257 | ); | 284 | ); |
| 258 | return $oTemplate->render($aTemplateData); | 285 | return $oTemplate->render($aTemplateData); |
| 259 | } | 286 | } |
| @@ -390,14 +417,14 @@ class KTFolderPermissionsAction extends KTFolderAction { | @@ -390,14 +417,14 @@ class KTFolderPermissionsAction extends KTFolderAction { | ||
| 390 | foreach ($aPermissions as $oPermission) { | 417 | foreach ($aPermissions as $oPermission) { |
| 391 | $iPermId = $oPermission->getId(); | 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 | $aAllowed = KTUtil::arrayGet($aFoo, $iPermId, array()); | 423 | $aAllowed = KTUtil::arrayGet($aFoo, $iPermId, array()); |
| 397 | KTPermissionUtil::setPermissionForId($oPermission, $oPO, $aAllowed); | 424 | KTPermissionUtil::setPermissionForId($oPermission, $oPO, $aAllowed); |
| 398 | } | 425 | } |
| 399 | 426 | ||
| 400 | - exit(0); | 427 | + //exit(0); |
| 401 | 428 | ||
| 402 | $oTransaction = KTFolderTransaction::createFromArray(array( | 429 | $oTransaction = KTFolderTransaction::createFromArray(array( |
| 403 | 'folderid' => $this->oFolder->getId(), | 430 | 'folderid' => $this->oFolder->getId(), |
templates/ktcore/folder/permissions.smarty
| @@ -10,7 +10,9 @@ | @@ -10,7 +10,9 @@ | ||
| 10 | {else} | 10 | {else} |
| 11 | 11 | ||
| 12 | {* otherwise continue *} | 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 | <div class="ktInfo"> | 18 | <div class="ktInfo"> |
templates/ktcore/folder/resolved_permissions_user.smarty
| @@ -12,7 +12,8 @@ this folder.{/i18n}</p> | @@ -12,7 +12,8 @@ this folder.{/i18n}</p> | ||
| 12 | <div class="ktInfo"><p>{i18n}No users have permissions on this item.{/i18n}</p></div> | 12 | <div class="ktInfo"><p>{i18n}No users have permissions on this item.{/i18n}</p></div> |
| 13 | {else} | 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 | <table class="kt_collection"cellspacing="0" cellpadding="0" border="0"> | 18 | <table class="kt_collection"cellspacing="0" cellpadding="0" border="0"> |
| 18 | <thead> | 19 | <thead> |
templates/ktcore/folder/view_permissions.smarty
| @@ -5,7 +5,8 @@ this specific folder. Only the roles or groups which have permissions | @@ -5,7 +5,8 @@ this specific folder. Only the roles or groups which have permissions | ||
| 5 | assigned are shown.{/i18n}</p> | 5 | assigned are shown.{/i18n}</p> |
| 6 | 6 | ||
| 7 | {if $edit} | 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 | {/if} | 10 | {/if} |
| 10 | 11 | ||
| 11 | {if $iFolderId != 1} | 12 | {if $iFolderId != 1} |
| @@ -69,6 +70,7 @@ assigned are shown.{/i18n}</p> | @@ -69,6 +70,7 @@ assigned are shown.{/i18n}</p> | ||
| 69 | 70 | ||
| 70 | 71 | ||
| 71 | { foreach item=oUser from=$users } | 72 | { foreach item=oUser from=$users } |
| 73 | +<tr> | ||
| 72 | <td><span class="descriptiveText">{i18n}User: {/i18n}</span> {$oUser->getName()}</td> | 74 | <td><span class="descriptiveText">{i18n}User: {/i18n}</span> {$oUser->getName()}</td> |
| 73 | { assign var=iUserId value=$oUser->getId() } | 75 | { assign var=iUserId value=$oUser->getId() } |
| 74 | { foreach item=oPerm from=$permissions } | 76 | { foreach item=oPerm from=$permissions } |
| @@ -100,3 +102,37 @@ value="{$iGroupId}"></td> | @@ -100,3 +102,37 @@ value="{$iGroupId}"></td> | ||
| 100 | </table> | 102 | </table> |
| 101 | { /if } | 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 | + |