Commit 5a8d269cbbce41359ab8fd8361aa549656baba83

Authored by bshuttle
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
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}&lt;/p&gt;
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}&lt;/p&gt;
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=&quot;{$iGroupId}&quot;&gt;&lt;/td&gt;
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 +
... ...