Author: david
Date: Mon Nov  1 15:00:53 2010
New Revision: 8752

Log:
Refactor common code into AclGroupEditDefaultAclAction. Refs issue #1867.

Modified:
   
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editActorAclAction.class.php
   
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editDefaultAclAction.class.php

Modified: 
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editActorAclAction.class.php
==============================================================================
--- 
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editActorAclAction.class.php 
    Mon Nov  1 14:43:11 2010        (r8751)
+++ 
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editActorAclAction.class.php 
    Mon Nov  1 15:00:53 2010        (r8752)
@@ -17,24 +17,15 @@
  * along with Qubit Toolkit.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-class AclGroupEditActorAclAction extends sfAction
+class AclGroupEditActorAclAction extends AclGroupEditDefaultAclAction
 {
+  public static $NAMES = array(
+    'actor'
+  );
+
   public function execute($request)
   {
-    $this->form = new sfForm;
-    $this->group = new QubitAclGroup;
-
-    if (isset($this->request->id))
-    {
-      $this->group = QubitAclGroup::getById($this->request->id);
-
-      if (!isset($this->group))
-      {
-        $this->forward404();
-      }
-    }
-
-    $this->form->getValidatorSchema()->setOption('allow_extra_fields', true);
+    parent::execute($request);
 
     // Always include root actor permissions
     $this->actors = array(QubitActor::ROOT_ID => null);
@@ -71,56 +62,4 @@
       }
     }
   }
-
-  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))
-      {
-        $actor = null;
-        list ($action, $uri) = array_slice($matches, 1, 2);
-        $params = $this->context->routing->parse(Qubit::pathInfo($uri));
-        if (isset($params['id']))
-        {
-          $actor = QubitActor::getById($params['id']);
-        }
-
-        if (null === $actor)
-        {
-          continue;
-        }
-
-        if (QubitAcl::INHERIT != $value && isset(QubitAcl::$ACTIONS[$action]))
-        {
-          $aclPermission = new QubitAclPermission;
-          $aclPermission->action = $action;
-          $aclPermission->grantDeny = (QubitAcl::GRANT == $value) ? 1 : 0;
-          $aclPermission->object = $actor;
-
-          $this->group->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->group->aclPermissions[] = $aclPermission;
-        }
-      }
-    }
-
-    // Save updates
-    $this->group->save();
-
-    return $this;
-  }
 }

Modified: 
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editDefaultAclAction.class.php
==============================================================================
--- 
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editDefaultAclAction.class.php
   Mon Nov  1 14:43:11 2010        (r8751)
+++ 
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editDefaultAclAction.class.php
   Mon Nov  1 15:00:53 2010        (r8752)
@@ -52,6 +52,7 @@
           switch ($resource->className)
           {
             case 'QubitInformationObject':
+            case 'QubitActor':
               $aclPermission->object = $resource;
 
               break;

-- 
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