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,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}&lt;/p&gt; @@ -12,7 +12,8 @@ this folder.{/i18n}&lt;/p&gt;
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}&lt;/p&gt; @@ -69,6 +70,7 @@ assigned are shown.{/i18n}&lt;/p&gt;
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=&quot;{$iGroupId}&quot;&gt;&lt;/td&gt; @@ -100,3 +102,37 @@ value=&quot;{$iGroupId}&quot;&gt;&lt;/td&gt;
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 +