Author: david
Date: Mon Sep 14 16:08:15 2009
New Revision: 3285

Log:
Add logic for updating permissions (including repository limitations) on 
aclGroup/edit.

Modified:
   trunk/plugins/qbAclPlugin/lib/model/QubitAclPermission.php
   trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editAction.class.php
   trunk/plugins/qbAclPlugin/modules/aclGroup/templates/editSuccess.php

Modified: trunk/plugins/qbAclPlugin/lib/model/QubitAclPermission.php
==============================================================================
--- trunk/plugins/qbAclPlugin/lib/model/QubitAclPermission.php  Mon Sep 14 
16:04:46 2009        (r3284)
+++ trunk/plugins/qbAclPlugin/lib/model/QubitAclPermission.php  Mon Sep 14 
16:08:15 2009        (r3285)
@@ -26,6 +26,11 @@
       $this->conditional = '%p[repositoryId] == %k[repositoryId]';
       $this->constants = serialize(array('repositoryId' => $repository->id));
     }
+    else if (null === $repository)
+    {
+      $this->conditional = null;
+      $this->constants = null;
+    }
 
     return $this;
   }

Modified: 
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editAction.class.php
==============================================================================
--- trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editAction.class.php     
Mon Sep 14 16:04:46 2009        (r3284)
+++ trunk/plugins/qbAclPlugin/modules/aclGroup/actions/editAction.class.php     
Mon Sep 14 16:08:15 2009        (r3285)
@@ -93,5 +93,35 @@
     $this->group->name = $this->request->getParameter('name');
     $this->group->description = $this->request->getParameter('description');
     $this->group->save();
+
+    $this->updatePermissions();
+  }
+
+  protected function updatePermissions()
+  {
+    foreach ($this->request->getParameter('permission') as $key => $formData)
+    {
+      $aclPermission = QubitAclPermission::getById($key);
+      if (null === $aclPermission)
+      {
+        // If no valid aclPermission object, skip this row
+        continue;
+      }
+
+      $aclPermission->grantDeny = $formData['grantDeny'];
+
+      // Set repository conditional for permission
+      if ('null' != $formData['repository'])
+      {
+        $params = 
$this->context->routing->parse(preg_replace('/.*'.preg_quote($this->request->getPathInfoPrefix(),
 '/').'/', null, $formData['repository']));
+        $aclPermission->setRepository(QubitRepository::getById($params['id']));
+      }
+      else
+      {
+        $aclPermission->setRepository(null);
+      }
+
+      $aclPermission->save();
+    }
   }
 }

Modified: trunk/plugins/qbAclPlugin/modules/aclGroup/templates/editSuccess.php
==============================================================================
--- trunk/plugins/qbAclPlugin/modules/aclGroup/templates/editSuccess.php        
Mon Sep 14 16:04:46 2009        (r3284)
+++ trunk/plugins/qbAclPlugin/modules/aclGroup/templates/editSuccess.php        
Mon Sep 14 16:08:15 2009        (r3285)
@@ -55,15 +55,15 @@
             <td><?php echo 
$permission->getAction()->getName(array('cultureFallback' => true)) ?></td>
             <td>
               <ul class="radio">
-                <li><?php echo 
radiobutton_tag('grantDeny['.$permission->id.']', '1', (1 == 
$permission->grantDeny)) ?>&nbsp;<label><?php echo __('grant')?></label></li>
-                <li><?php echo 
radiobutton_tag('grantDeny['.$permission->id.']', '0', (1 != 
$permission->grantDeny)) ?>&nbsp;<label><?php echo __('deny')?></label></li>
+                <li><?php echo 
radiobutton_tag('permission['.$permission->id.'][grantDeny]', '1', ('1' == 
$permission->grantDeny)) ?>&nbsp;<label><?php echo __('grant')?></label></li>
+                <li><?php echo 
radiobutton_tag('permission['.$permission->id.'][grantDeny]', '0', ('1' != 
$permission->grantDeny)) ?>&nbsp;<label><?php echo __('deny')?></label></li>
               </ul>
             </td>
             <td>
               <div style="width: 100%">
-              <select name="repositoryId[<?php echo $permission->id ?>]" 
class="form-autocomplete" id="repository">
+              <select name="permission[<?php echo $permission->id 
?>][repository]" class="form-autocomplete" id="repository">
               <?php if (null !== ($repository = 
$permission->getRepository())): ?>
-                <option value="" selected="selected"><?php echo 
$repository->getAuthorizedFormOfName(array('cultureFallback' => true)) 
?></option>
+                <option value="<?php echo 
$this->context->routing->generate(null, array('module' => 'repository', 
'action' => 'show', 'id' => $repository->id)) ?>" selected="selected"><?php 
echo $repository->getAuthorizedFormOfName(array('cultureFallback' => true)) 
?></option>
               <?php endif; ?>
               </select>
               <input class="list" type="hidden" value="<?php echo 
$this->context->routing->generate(null, array('module' => 'repository', 
'action' => 'list')) ?>" />

--~--~---------~--~----~------------~-------~--~----~
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.ca/group/qubit-commits?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to