Author: david
Date: Mon Nov 1 15:23:20 2010
New Revision: 8754
Log:
Refactor common code into AclGroupEditDefaultAclAction. Fixes issue #1867.
Modified:
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editDefaultAclAction.class.php
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editTermAclAction.class.php
trunk/plugins/qbAclPlugin/modules/aclGroup/templates/_termAclForm.php
Modified:
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editDefaultAclAction.class.php
==============================================================================
---
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editDefaultAclAction.class.php
Mon Nov 1 15:07:44 2010 (r8753)
+++
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editDefaultAclAction.class.php
Mon Nov 1 15:23:20 2010 (r8754)
@@ -51,20 +51,20 @@
switch ($resource->className)
{
- case 'QubitInformationObject':
- case 'QubitActor':
- $aclPermission->object = $resource;
-
- break;
-
case 'QubitRepository':
$aclPermission->objectId = QubitInformationObject::ROOT_ID;
$aclPermission->setRepository($resource);
break;
+ case 'QubitTaxonomy':
+ $aclPermission->objectId = QubitTerm::ROOT_ID;
+ $aclPermission->setTaxonomy($resource);
+
+ break;
+
default:
- continue;
+ $aclPermission->object = $resource;
}
$this->resource->aclPermissions[] = $aclPermission;
Modified:
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editTermAclAction.class.php
==============================================================================
---
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editTermAclAction.class.php
Mon Nov 1 15:07:44 2010 (r8753)
+++
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editTermAclAction.class.php
Mon Nov 1 15:23:20 2010 (r8754)
@@ -17,7 +17,7 @@
* along with Qubit Toolkit. If not, see <http://www.gnu.org/licenses/>.
*/
-class AclGroupEditTermAclAction extends sfAction
+class AclGroupEditTermAclAction extends AclGroupEditDefaultAclAction
{
/**
* Define form field names
@@ -51,28 +51,7 @@
public function execute($request)
{
- $this->form = new sfForm;
-
- $this->resource = new QubitAclGroup;
- if (isset($this->request->id))
- {
- $this->resource = QubitAclGroup::getById($this->request->id);
-
- if (!isset($this->resource))
- {
- $this->forward404();
- }
- }
-
- $this->form->getValidatorSchema()->setOption('allow_extra_fields', true);
-
- // HACK: Use static::$NAMES in PHP 5.3,
- // http://php.net/oop5.late-static-bindings
- $class = new ReflectionClass($this);
- foreach ($class->getStaticPropertyValue('NAMES') as $name)
- {
- $this->addField($name);
- }
+ parent::execute($request);
$this->permissions = array();
if (null != $this->resource->id)
@@ -96,9 +75,9 @@
}
// List of actions without create or translate
- $this->termActions = QubitAcl::$ACTIONS;
- unset($this->termActions['read']);
- unset($this->termActions['translate']);
+ $this->basicActions = QubitAcl::$ACTIONS;
+ unset($this->basicActions['read']);
+ unset($this->basicActions['translate']);
if ($request->isMethod('post'))
{
@@ -111,76 +90,4 @@
}
}
}
-
- protected function processForm()
- {
- $this->processTermAcl('termAcl');
- if (isset($this->request->taxonomyAcl))
- {
- $this->processTermAcl('taxonomyAcl');
- }
-
- // Save changes
- $this->resource->save();
-
- return $this;
- }
-
- protected function processTermAcl($name)
- {
- foreach ($this->request[$name] as $key => $value)
- {
- // If key has an underscore, then we are creating a new permission
- if (1 == preg_match('/([\w]+)_(.*)/', $key, $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;
- }
-
- if (QubitAcl::INHERIT != $value && isset(QubitAcl::$ACTIONS[$action]))
- {
- $aclPermission = new QubitAclPermission;
- $aclPermission->action = $action;
- $aclPermission->grantDeny = (QubitAcl::GRANT == $value) ? 1 : 0;
-
- if ('taxonomyAcl' == $name)
- {
- // Taxonomy specific rules
- $aclPermission->objectId = QubitTerm::ROOT_ID;
- $aclPermission->setTaxonomy($resource);
- }
- else
- {
- $aclPermission->object = $resource;
- }
-
- $this->resource->aclPermissions[] = $aclPermission;
- }
- }
-
- // Otherwise, update an existing permission
- else if (null !== $aclPermission = QubitAclPermission::getById($key))
- {
- if ($value == QubitAcl::INHERIT)
- {
- $aclPermission->delete();
- }
- else
- {
- $aclPermission->grantDeny = (QubitAcl::GRANT == $value) ? 1 : 0;
-
- $this->resource->aclPermissions[] = $aclPermission;
- }
- }
- }
-
- return $this;
- }
}
Modified: trunk/plugins/qbAclPlugin/modules/aclGroup/templates/_termAclForm.php
==============================================================================
--- trunk/plugins/qbAclPlugin/modules/aclGroup/templates/_termAclForm.php
Mon Nov 1 15:07:44 2010 (r8753)
+++ trunk/plugins/qbAclPlugin/modules/aclGroup/templates/_termAclForm.php
Mon Nov 1 15:23:20 2010 (r8754)
@@ -27,14 +27,14 @@
<td>
<ul class="radio inline">
<?php if (isset($rootPermissions[$key])): ?>
- <li><input type="radio" name="termAcl[<?php echo
$rootPermissions[$key]->id ?>]" value="<?php echo QubitAcl::GRANT ?>"<?php echo
(1 == $rootPermissions[$key]->grantDeny) ? ' checked="checked"' : '' ?>><?php
echo __('Grant') ?></li>
- <li><input type="radio" name="termAcl[<?php echo
$rootPermissions[$key]->id ?>]" value="<?php echo QubitAcl::DENY ?>"<?php echo
(0 == $rootPermissions[$key]->grantDeny) ? ' checked="checked"' : '' ?>><?php
echo __('Deny') ?></li>
- <li><input type="radio" name="termAcl[<?php echo
$rootPermissions[$key]->id ?>]" value="<?php echo QubitAcl::INHERIT?>"><?php
echo __('Inherit') ?></li>
+ <li><input type="radio" name="acl[<?php echo
$rootPermissions[$key]->id ?>]" value="<?php echo QubitAcl::GRANT ?>"<?php echo
(1 == $rootPermissions[$key]->grantDeny) ? ' checked="checked"' : '' ?>><?php
echo __('Grant') ?></li>
+ <li><input type="radio" name="acl[<?php echo
$rootPermissions[$key]->id ?>]" value="<?php echo QubitAcl::DENY ?>"<?php echo
(0 == $rootPermissions[$key]->grantDeny) ? ' checked="checked"' : '' ?>><?php
echo __('Deny') ?></li>
+ <li><input type="radio" name="acl[<?php echo
$rootPermissions[$key]->id ?>]" value="<?php echo QubitAcl::INHERIT?>"><?php
echo __('Inherit') ?></li>
<?php else: ?>
<?php $rootTermUrl =
url_for(array(QubitTerm::getById(QubitTerm::ROOT_ID), 'module' => 'term')) ?>
- <li><input type="radio" name="termAcl[<?php echo $key
?>_<?php echo $rootTermUrl ?>]" value="<?php echo QubitAcl::GRANT ?>"><?php
echo __('Grant') ?></li>
- <li><input type="radio" name="termAcl[<?php echo $key
?>_<?php echo $rootTermUrl ?> ?>]" value="<?php echo QubitAcl::DENY ?>"><?php
echo __('Deny') ?></li>
- <li><input type="radio" name="termAcl[<?php echo $key
?>_<?php echo $rootTermUrl ?> ?>]" value="<?php echo QubitAcl::INHERIT ?>"
checked="checked"><?php echo __('Inherit') ?></li>
+ <li><input type="radio" name="acl[<?php echo $key ?>_<?php
echo $rootTermUrl ?>]" value="<?php echo QubitAcl::GRANT ?>"><?php echo
__('Grant') ?></li>
+ <li><input type="radio" name="acl[<?php echo $key ?>_<?php
echo $rootTermUrl ?> ?>]" value="<?php echo QubitAcl::DENY ?>"><?php echo
__('Deny') ?></li>
+ <li><input type="radio" name="acl[<?php echo $key ?>_<?php
echo $rootTermUrl ?> ?>]" value="<?php echo QubitAcl::INHERIT ?>"
checked="checked"><?php echo __('Inherit') ?></li>
<?php endif; ?>
</ul>
</td>
@@ -57,7 +57,7 @@
<div class="form-item">
- <table id="taxonomyAcl_<?php echo $key ?>">
+ <table id="acl_<?php echo $key ?>">
<caption><?php echo render_title(QubitTaxonomy::getById($key))
?></caption>
<thead>
<tr>
@@ -71,14 +71,14 @@
<td id="<?php echo 'repo_'.$key.'_'.$action ?>">
<ul class="radio inline">
<?php if (isset($item[$action])): ?>
- <li><input type="radio" name="taxonomyAcl[<?php echo
$item[$action]->id ?>]" value="<?php echo QubitAcl::GRANT ?>"<?php echo (1 ==
$item[$action]->grantDeny) ? ' checked="checked"' : '' ?>><?php echo
__('Grant') ?></li>
- <li><input type="radio" name="taxonomyAcl[<?php echo
$item[$action]->id ?>]" value="<?php echo QubitAcl::DENY ?>"<?php echo (0 ==
$item[$action]->grantDeny) ? ' checked="checked"' : '' ?>><?php echo __('Deny')
?></li>
- <li><input type="radio" name="taxonomyAcl[<?php echo
$item[$action]->id ?>]" value="<?php echo QubitAcl::INHERIT?>"><?php echo
__('Inherit') ?></li>
+ <li><input type="radio" name="acl[<?php echo
$item[$action]->id ?>]" value="<?php echo QubitAcl::GRANT ?>"<?php echo (1 ==
$item[$action]->grantDeny) ? ' checked="checked"' : '' ?>><?php echo
__('Grant') ?></li>
+ <li><input type="radio" name="acl[<?php echo
$item[$action]->id ?>]" value="<?php echo QubitAcl::DENY ?>"<?php echo (0 ==
$item[$action]->grantDeny) ? ' checked="checked"' : '' ?>><?php echo __('Deny')
?></li>
+ <li><input type="radio" name="acl[<?php echo
$item[$action]->id ?>]" value="<?php echo QubitAcl::INHERIT?>"><?php echo
__('Inherit') ?></li>
<?php else: ?>
<?php $rootTermUrl =
url_for(array(QubitTerm::getById(QubitTerm::ROOT_ID), 'module' => 'term')) ?>
- <li><input type="radio" name="taxonomyAcl[<?php echo
$action.'_'.$rootTermUrl ?>]" value="<?php echo QubitAcl::GRANT ?>"><?php echo
__('Grant') ?></li>
- <li><input type="radio" name="taxonomyAcl[<?php echo
$action.'_'.$rootTermUrl ?>]" value="<?php echo QubitAcl::DENY ?>"><?php echo
__('Deny') ?></li>
- <li><input type="radio" name="taxonomyAcl[<?php echo
$action.'_'.$rootTermUrl ?>]" value="<?php echo QubitAcl::INHERIT ?>"
checked="checked"><?php echo __('Inherit') ?></li>
+ <li><input type="radio" name="acl[<?php echo
$action.'_'.$rootTermUrl ?>]" value="<?php echo QubitAcl::GRANT ?>"><?php echo
__('Grant') ?></li>
+ <li><input type="radio" name="acl[<?php echo
$action.'_'.$rootTermUrl ?>]" value="<?php echo QubitAcl::DENY ?>"><?php echo
__('Deny') ?></li>
+ <li><input type="radio" name="acl[<?php echo
$action.'_'.$rootTermUrl ?>]" value="<?php echo QubitAcl::INHERIT ?>"
checked="checked"><?php echo __('Inherit') ?></li>
<?php endif; ?>
</ul>
</td>
@@ -96,7 +96,7 @@
<?php
// Build dialog for adding new table
$tableTemplate = '<div class="form-item">';
-$tableTemplate .= '<table id="taxonomyAcl_{objectId}">';
+$tableTemplate .= '<table id="acl_{objectId}">';
$tableTemplate .= '<caption/>';
$tableTemplate .= '<thead>';
$tableTemplate .= '<tr>';
@@ -112,9 +112,9 @@
$tableTemplate .= '<tr class="'.((0 == $row++ % 2) ? 'even' : 'odd').'">';
$tableTemplate .= '<td>'.__($item).'</th>';
$tableTemplate .= '<td><ul class="radio inline">';
- $tableTemplate .= '<li><input type="radio"
name="taxonomyAcl['.$key.'_{objectId}]"
value="'.QubitAcl::GRANT.'"/>'.__('Grant').'</li>';
- $tableTemplate .= '<li><input type="radio"
name="taxonomyAcl['.$key.'_{objectId}]"
value="'.QubitAcl::DENY.'"/>'.__('Deny').'</li>';
- $tableTemplate .= '<li><input type="radio"
name="taxonomyAcl['.$key.'_{objectId}]" value="'.QubitAcl::INHERIT.'"
checked/>'.__('Inherit').'</li>';
+ $tableTemplate .= '<li><input type="radio" name="acl['.$key.'_{objectId}]"
value="'.QubitAcl::GRANT.'"/>'.__('Grant').'</li>';
+ $tableTemplate .= '<li><input type="radio" name="acl['.$key.'_{objectId}]"
value="'.QubitAcl::DENY.'"/>'.__('Deny').'</li>';
+ $tableTemplate .= '<li><input type="radio" name="acl['.$key.'_{objectId}]"
value="'.QubitAcl::INHERIT.'" checked/>'.__('Inherit').'</li>';
$tableTemplate .= '</ul></td>';
$tableTemplate .= "</tr>";
$tableTemplate .= "</div>";
--
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.