Author: david
Date: Mon Nov 1 11:30:17 2010
New Revision: 8740
Log:
Refactor common acl code into AclGroupEditDefaultAction.
Modified:
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editDefaultAclAction.class.php
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editInformationObjectAclAction.class.php
Modified:
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editDefaultAclAction.class.php
==============================================================================
---
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editDefaultAclAction.class.php
Mon Nov 1 11:13:44 2010 (r8739)
+++
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editDefaultAclAction.class.php
Mon Nov 1 11:30:17 2010 (r8740)
@@ -19,76 +19,74 @@
class AclGroupEditDefaultAclAction extends sfAction
{
- protected function processField($field)
+ protected function addField($name)
{
- // If key has an underscore, then we are creating a new permission
- if (1 == preg_match('/([\w]+)_(.*)/', $field->getName(), $matches))
- {
- list ($action, $uri) = array_slice($matches, 1, 2);
- $params = $this->context->routing->parse(Qubit::pathInfo($uri));
- if (isset($params['_sf_route']->resource))
- {
- $resource = $params['_sf_route']->resource;
- }
- else
- {
- continue;
- }
+ $this->form->setValidator($name, new sfValidatorString);
+ $this->form->setWidget($name, new sfWidgetFormSelect(array('choices' =>
array())));
+ }
- if (QubitAcl::INHERIT != $this->form->getValue($field->getName()) &&
isset($this->basicActions[$action]))
+ protected function processForm()
+ {
+ foreach ($this->request->acl as $key => $value)
+ {
+ // If key has an underscore, then we are creating a new permission
+ if (1 == preg_match('/([\w]+)_(.*)/', $key, $matches))
{
- $aclPermission = new QubitAclPermission;
- $aclPermission->action = $action;
- $aclPermission->grantDeny = (QubitAcl::GRANT ==
$this->form->getValue($field->getName())) ? 1 : 0;
-
- switch ($resource->className)
+ list ($action, $uri) = array_slice($matches, 1, 2);
+ $params = $this->context->routing->parse(Qubit::pathInfo($uri));
+ if (isset($params['_sf_route']->resource))
+ {
+ $resource = $params['_sf_route']->resource;
+ }
+ else
{
- case 'QubitInformationObject':
- $aclPermission->object = $resource;
+ continue;
+ }
- break;
+ if (QubitAcl::INHERIT != $value && isset($this->basicActions[$action]))
+ {
+ $aclPermission = new QubitAclPermission;
+ $aclPermission->action = $action;
+ $aclPermission->grantDeny = (QubitAcl::GRANT == $value) ? 1 : 0;
- case 'QubitRepository':
- $aclPermission->objectId = QubitInformationObject::ROOT_ID;
- $aclPermission->setRepository($resource);
+ switch ($resource->className)
+ {
+ case 'QubitInformationObject':
+ $aclPermission->object = $resource;
- break;
+ break;
- default:
- continue;
- }
+ case 'QubitRepository':
+ $aclPermission->objectId = QubitInformationObject::ROOT_ID;
+ $aclPermission->setRepository($resource);
- $this->group->aclPermissions[] = $aclPermission;
- }
- }
+ break;
- // Otherwise, update an existing permission
- else if (null !== $aclPermission =
QubitAclPermission::getById($field->getName()))
- {
- if ($this->form->getValue($field->getName) == QubitAcl::INHERIT)
- {
- $aclPermission->delete();
- }
- else
- {
- $aclPermission->grantDeny = (QubitAcl::GRANT ==
$this->form->getValue($field->getName())) ? 1 : 0;
+ default:
+ continue;
+ }
- $this->group->aclPermissions[] = $aclPermission;
+ $this->group->aclPermissions[] = $aclPermission;
+ }
}
- }
- }
- protected function processForm()
- {
- foreach ($this->form as $field)
- {
- if (isset($this->request[$field->getName()]))
+ // Otherwise, update an existing permission
+ else if (null !== $aclPermission = QubitAclPermission::getById($key))
{
- $this->processField($field);
+ if (QubitAcl::INHERIT == $value)
+ {
+ $aclPermission->delete();
+ }
+ else
+ {
+ $aclPermission->grantDeny = (QubitAcl::GRANT == $value) ? 1 : 0;
+
+ $this->group->aclPermissions[] = $aclPermission;
+ }
}
}
- $this->resource->save();
+ $this->group->save();
}
public function execute($request)
Modified:
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editInformationObjectAclAction.class.php
==============================================================================
---
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editInformationObjectAclAction.class.php
Mon Nov 1 11:13:44 2010 (r8739)
+++
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editInformationObjectAclAction.class.php
Mon Nov 1 11:30:17 2010 (r8740)
@@ -19,6 +19,11 @@
class AclGroupEditInformationObjectAclAction extends
AclGroupEditDefaultAclAction
{
+ public static $NAMES = array(
+ 'informationObject',
+ 'repository'
+ );
+
public function execute($request)
{
parent::execute($request);
--
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.com/group/qubit-commits?hl=en.