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.

Reply via email to