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.

Reply via email to