From 5a8d269cbbce41359ab8fd8361aa549656baba83 Mon Sep 17 00:00:00 2001 From: bshuttle Date: Thu, 20 Jul 2006 10:31:54 +0000 Subject: [PATCH] KTS-1025: dynamic conditions in perm view. --- plugins/ktcore/folder/Permissions.php | 41 ++++++++++++++++++++++++++++++++++------- templates/ktcore/folder/permissions.smarty | 4 +++- templates/ktcore/folder/resolved_permissions_user.smarty | 3 ++- templates/ktcore/folder/view_permissions.smarty | 38 +++++++++++++++++++++++++++++++++++++- 4 files changed, 76 insertions(+), 10 deletions(-) diff --git a/plugins/ktcore/folder/Permissions.php b/plugins/ktcore/folder/Permissions.php index 272580d..5d1d867 100644 --- a/plugins/ktcore/folder/Permissions.php +++ b/plugins/ktcore/folder/Permissions.php @@ -104,6 +104,29 @@ class KTFolderPermissionsAction extends KTFolderAction { $iInheritedFolderId = $oInherited->getId(); $sInherited = join(" » ", $oInherited->getPathArray()); } + + $aConditions = array(); + $aDynConditions = KTPermissionDynamicCondition::getByPermissionObject($oPO); + + foreach ($aDynConditions as $oDynCondition) { + $g = Group::get($oDynCondition->getGroupId()); + + if (PEAR::isError($g)) { continue; } + $c = KTSavedSearch::get($oDynCondition->getConditionId()); + if (PEAR::isError($c)) { continue; } + + $aInfo = array( + 'group' => $g->getName(), + 'name' => $c->getName(), + ); + $aAssign = $oDynCondition->getAssignment(); + $perms = array(); + foreach ($aAssign as $iPermissionId) { + $perms[$iPermissionId] = true; + } + $aInfo['perms'] = $perms; + $aConditions[] = $aInfo; + } $aTemplateData = array( "context" => $this, @@ -118,6 +141,7 @@ class KTFolderPermissionsAction extends KTFolderAction { "edit" => $bEdit, "inherited" => $sInherited, 'foldername' => $this->oFolder->getName(), + 'conditions' => $aConditions, ); return $oTemplate->render($aTemplateData); } @@ -177,7 +201,8 @@ class KTFolderPermissionsAction extends KTFolderAction { "aMapPermissionUser" => $aMapPermissionUser, "edit" => $bEdit, "inherited" => $sInherited, - 'foldername' => $this->oFolder->getName(), + 'foldername' => $this->oFolder->getName(), + "iFolderId" => $this->oFolder->getId(), ); return $oTemplate->render($aTemplateData); } @@ -247,13 +272,15 @@ class KTFolderPermissionsAction extends KTFolderAction { $aTemplateData = array( "iFolderId" => $this->oFolder->getId(), - 'roles' => Role::getList(), - 'groups' => Group::getList(), + 'roles' => Role::getList(), + 'groups' => Group::getList(), "conditions" => KTSavedSearch::getConditions(), "dynamic_conditions" => $aDynamicConditions, 'context' => &$this, 'foldername' => $this->oFolder->getName(), - 'jsonpermissions' => $sJSONPermissions, + 'jsonpermissions' => $sJSONPermissions, + 'edit' => true, + 'permissions' => KTPermission::getList(), ); return $oTemplate->render($aTemplateData); } @@ -390,14 +417,14 @@ class KTFolderPermissionsAction extends KTFolderAction { foreach ($aPermissions as $oPermission) { $iPermId = $oPermission->getId(); - print 'permission: ' . $oPermission->getName() . '
'; - var_dump(KTUtil::arrayGet($aFoo, $iPermId, false)); print '
'; + //print 'permission: ' . $oPermission->getName() . '
'; + //var_dump(KTUtil::arrayGet($aFoo, $iPermId, false)); print '
'; $aAllowed = KTUtil::arrayGet($aFoo, $iPermId, array()); KTPermissionUtil::setPermissionForId($oPermission, $oPO, $aAllowed); } - exit(0); + //exit(0); $oTransaction = KTFolderTransaction::createFromArray(array( 'folderid' => $this->oFolder->getId(), diff --git a/templates/ktcore/folder/permissions.smarty b/templates/ktcore/folder/permissions.smarty index e699ece..1e7143e 100644 --- a/templates/ktcore/folder/permissions.smarty +++ b/templates/ktcore/folder/permissions.smarty @@ -10,7 +10,9 @@ {else} {* otherwise continue *} -

{i18n}Manage security{/i18n}: {i18n}View resolved permissions for user{/i18n}

+

{i18n}Manage security{/i18n}: {i18n}View permissions overview{/i18n} +| {i18n}View resolved permissions for user{/i18n} +

diff --git a/templates/ktcore/folder/resolved_permissions_user.smarty b/templates/ktcore/folder/resolved_permissions_user.smarty index f40e072..71d4f1f 100644 --- a/templates/ktcore/folder/resolved_permissions_user.smarty +++ b/templates/ktcore/folder/resolved_permissions_user.smarty @@ -12,7 +12,8 @@ this folder.{/i18n}

{i18n}No users have permissions on this item.{/i18n}

{else} -

{i18n}Manage security{/i18n}: {i18n}Edit permissions{/i18n}

+

{i18n}Manage security{/i18n}: {i18n}View permissions overview{/i18n} +| {i18n}Edit permissions{/i18n}

diff --git a/templates/ktcore/folder/view_permissions.smarty b/templates/ktcore/folder/view_permissions.smarty index a6c921f..2403133 100644 --- a/templates/ktcore/folder/view_permissions.smarty +++ b/templates/ktcore/folder/view_permissions.smarty @@ -5,7 +5,8 @@ this specific folder. Only the roles or groups which have permissions assigned are shown.{/i18n}

{if $edit} -{i18n}Manage security{/i18n}: {i18n}Edit permissions{/i18n} | {i18n}View resolved permissions for user{/i18n} +{i18n}Manage security{/i18n}: {i18n}Edit permissions{/i18n} +| {i18n}View resolved permissions for user{/i18n} {/if} {if $iFolderId != 1} @@ -69,6 +70,7 @@ assigned are shown.{/i18n}

{ foreach item=oUser from=$users } + { assign var=iUserId value=$oUser->getId() } { foreach item=oPerm from=$permissions } @@ -100,3 +102,37 @@ value="{$iGroupId}">
{i18n}User: {/i18n} {$oUser->getName()}
{ /if } +{ if (!empty($conditions)) } +

{i18n}Dynamic Conditions{/i18n}

+ + + + + +{foreach from=$permissions item=oPerm} + +{/foreach} + + + +{foreach from=$conditions item=aInfo} + + + +{foreach from=$permissions item=oPerm} + {assign var=perm_id value=$oPerm->getId()} + { if $aInfo.perms.$perm_id } + + { else } + + { /if } +{/foreach} + +{/foreach} + + +
{i18n}Group{/i18n}{i18n}Condition{/i18n}{$oPerm->getHumanName()}
{$aInfo.group}{$aInfo.name}{i18n}Allowed{/i18n}{i18n}Denied{/i18n}
+{/if} + + + -- libgit2 0.21.4