Author: david
Date: Mon Sep 14 16:08:15 2009
New Revision: 3285
Log:
Add logic for updating permissions (including repository limitations) on
aclGroup/edit.
Modified:
trunk/plugins/qbAclPlugin/lib/model/QubitAclPermission.php
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editAction.class.php
trunk/plugins/qbAclPlugin/modules/aclGroup/templates/editSuccess.php
Modified: trunk/plugins/qbAclPlugin/lib/model/QubitAclPermission.php
==============================================================================
--- trunk/plugins/qbAclPlugin/lib/model/QubitAclPermission.php Mon Sep 14
16:04:46 2009 (r3284)
+++ trunk/plugins/qbAclPlugin/lib/model/QubitAclPermission.php Mon Sep 14
16:08:15 2009 (r3285)
@@ -26,6 +26,11 @@
$this->conditional = '%p[repositoryId] == %k[repositoryId]';
$this->constants = serialize(array('repositoryId' => $repository->id));
}
+ else if (null === $repository)
+ {
+ $this->conditional = null;
+ $this->constants = null;
+ }
return $this;
}
Modified:
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editAction.class.php
==============================================================================
--- trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editAction.class.php
Mon Sep 14 16:04:46 2009 (r3284)
+++ trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editAction.class.php
Mon Sep 14 16:08:15 2009 (r3285)
@@ -93,5 +93,35 @@
$this->group->name = $this->request->getParameter('name');
$this->group->description = $this->request->getParameter('description');
$this->group->save();
+
+ $this->updatePermissions();
+ }
+
+ protected function updatePermissions()
+ {
+ foreach ($this->request->getParameter('permission') as $key => $formData)
+ {
+ $aclPermission = QubitAclPermission::getById($key);
+ if (null === $aclPermission)
+ {
+ // If no valid aclPermission object, skip this row
+ continue;
+ }
+
+ $aclPermission->grantDeny = $formData['grantDeny'];
+
+ // Set repository conditional for permission
+ if ('null' != $formData['repository'])
+ {
+ $params =
$this->context->routing->parse(preg_replace('/.*'.preg_quote($this->request->getPathInfoPrefix(),
'/').'/', null, $formData['repository']));
+ $aclPermission->setRepository(QubitRepository::getById($params['id']));
+ }
+ else
+ {
+ $aclPermission->setRepository(null);
+ }
+
+ $aclPermission->save();
+ }
}
}
Modified: trunk/plugins/qbAclPlugin/modules/aclGroup/templates/editSuccess.php
==============================================================================
--- trunk/plugins/qbAclPlugin/modules/aclGroup/templates/editSuccess.php
Mon Sep 14 16:04:46 2009 (r3284)
+++ trunk/plugins/qbAclPlugin/modules/aclGroup/templates/editSuccess.php
Mon Sep 14 16:08:15 2009 (r3285)
@@ -55,15 +55,15 @@
<td><?php echo
$permission->getAction()->getName(array('cultureFallback' => true)) ?></td>
<td>
<ul class="radio">
- <li><?php echo
radiobutton_tag('grantDeny['.$permission->id.']', '1', (1 ==
$permission->grantDeny)) ?> <label><?php echo __('grant')?></label></li>
- <li><?php echo
radiobutton_tag('grantDeny['.$permission->id.']', '0', (1 !=
$permission->grantDeny)) ?> <label><?php echo __('deny')?></label></li>
+ <li><?php echo
radiobutton_tag('permission['.$permission->id.'][grantDeny]', '1', ('1' ==
$permission->grantDeny)) ?> <label><?php echo __('grant')?></label></li>
+ <li><?php echo
radiobutton_tag('permission['.$permission->id.'][grantDeny]', '0', ('1' !=
$permission->grantDeny)) ?> <label><?php echo __('deny')?></label></li>
</ul>
</td>
<td>
<div style="width: 100%">
- <select name="repositoryId[<?php echo $permission->id ?>]"
class="form-autocomplete" id="repository">
+ <select name="permission[<?php echo $permission->id
?>][repository]" class="form-autocomplete" id="repository">
<?php if (null !== ($repository =
$permission->getRepository())): ?>
- <option value="" selected="selected"><?php echo
$repository->getAuthorizedFormOfName(array('cultureFallback' => true))
?></option>
+ <option value="<?php echo
$this->context->routing->generate(null, array('module' => 'repository',
'action' => 'show', 'id' => $repository->id)) ?>" selected="selected"><?php
echo $repository->getAuthorizedFormOfName(array('cultureFallback' => true))
?></option>
<?php endif; ?>
</select>
<input class="list" type="hidden" value="<?php echo
$this->context->routing->generate(null, array('module' => 'repository',
'action' => 'list')) ?>" />
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Qubit Toolkit Commits" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.ca/group/qubit-commits?hl=en
-~----------~----~----~----~------~----~------~--~---