Author: david
Date: Tue Oct 20 14:27:22 2009
New Revision: 3777

Log:
Allow deleting groups. Fixes issue #1041.

Added:
   trunk/plugins/qbAclPlugin/modules/aclGroup/actions/deleteAction.class.php   
(contents, props changed)
      - copied, changed from r3776, 
trunk/apps/qubit/modules/informationobject/actions/deleteAction.class.php
   trunk/plugins/qbAclPlugin/modules/aclGroup/actions/protectedAction.class.php 
  (contents, props changed)
      - copied, changed from r3772, 
trunk/apps/qubit/modules/admin/actions/termPermissionAction.class.php
   trunk/plugins/qbAclPlugin/modules/aclGroup/templates/deleteSuccess.php   
(contents, props changed)
      - copied, changed from r3772, 
trunk/apps/qubit/modules/informationobject/templates/deleteSuccess.php
   trunk/plugins/qbAclPlugin/modules/aclGroup/templates/protectedSuccess.php   
(contents, props changed)
      - copied, changed from r3772, 
trunk/apps/qubit/modules/admin/templates/termPermissionSuccess.php
Modified:
   trunk/plugins/qbAclPlugin/lib/QubitAcl.class.php
   trunk/plugins/qbAclPlugin/lib/model/QubitAclGroup.php
   trunk/plugins/qbAclPlugin/modules/aclGroup/templates/editSuccess.php

Modified: trunk/plugins/qbAclPlugin/lib/QubitAcl.class.php
==============================================================================
--- trunk/plugins/qbAclPlugin/lib/QubitAcl.class.php    Tue Oct 20 13:47:46 
2009        (r3776)
+++ trunk/plugins/qbAclPlugin/lib/QubitAcl.class.php    Tue Oct 20 14:27:22 
2009        (r3777)
@@ -84,6 +84,8 @@
       case 'QubitUser':
       case 'QubitMenu':
       case 'QubitStaticPage':
+      case 'QubitAclGroup':
+      case 'QubitAclUser':
         $hasAccess = $user->hasGroup(QubitAclGroup::ADMINISTRATOR_ID);
     }
 

Modified: trunk/plugins/qbAclPlugin/lib/model/QubitAclGroup.php
==============================================================================
--- trunk/plugins/qbAclPlugin/lib/model/QubitAclGroup.php       Tue Oct 20 
13:47:46 2009        (r3776)
+++ trunk/plugins/qbAclPlugin/lib/model/QubitAclGroup.php       Tue Oct 20 
14:27:22 2009        (r3777)
@@ -44,10 +44,10 @@
   public function isProtected()
   {
     return (
-      $this->id == ROOT_ID ||
-      $this->id == ANONYMOUS_ID ||
-      $this->id == AUTHENTICATED_ID ||
-      $this->id == ADMINISTRATOR_ID
+      $this->id == self::ROOT_ID ||
+      $this->id == self::ANONYMOUS_ID ||
+      $this->id == self::AUTHENTICATED_ID ||
+      $this->id == self::ADMINISTRATOR_ID
     );
   }
 }

Copied and modified: 
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/deleteAction.class.php (from 
r3776, 
trunk/apps/qubit/modules/informationobject/actions/deleteAction.class.php)
==============================================================================
--- trunk/apps/qubit/modules/informationobject/actions/deleteAction.class.php   
Tue Oct 20 13:47:46 2009        (r3776, copy source)
+++ trunk/plugins/qbAclPlugin/modules/aclGroup/actions/deleteAction.class.php   
Tue Oct 20 14:27:22 2009        (r3777)
@@ -17,51 +17,36 @@
  * along with Qubit Toolkit.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-class InformationObjectDeleteAction extends sfAction
+class AclGroupDeleteAction extends sfAction
 {
   public function execute($request)
   {
     $this->form = new sfForm;
 
-    $this->informationObject = QubitInformationObject::getById($request->id);
+    $this->group = QubitAclGroup::getById($request->id);
 
-    // Check that object exists and that it is not the root
-    if (!isset($this->informationObject) || 
!isset($this->informationObject->parent))
+    // Check that object exists
+    if (!isset($this->group))
     {
       $this->forward404();
     }
 
+    // Check if group is protected
+    if ($this->group->isProtected())
+    {
+      $this->forward('aclGroup', 'protected');
+    }
+
     // Check user authorization
-    if (!QubitAcl::check(QubitInformationObject::getRoot(), 
QubitAclAction::DELETE_ID))
+    if (!QubitAcl::check($this->group, QubitAclAction::DELETE_ID))
     {
       QubitAcl::forwardUnauthorized();
     }
 
-    $request->setAttribute('informationObject', $this->informationObject);
-
     if ($request->isMethod('delete'))
     {
-      $parentId = $this->informationObject->parentId;
-
-      foreach 
($this->informationObject->descendants->andSelf()->orderBy('rgt') as 
$descendant)
-      {
-        // Delete related digitalObjects
-        foreach ($descendant->digitalObjects as $digitalObject)
-        {
-          $digitalObject->delete();
-        }
-
-        $descendant->delete();
-      }
-
-      if (QubitInformationObject::ROOT_ID != $parentId)
-      {
-        $this->redirect(array('module' => 'informationobject', 'action' => 
'show', 'id' => $parentId));
-      }
-      else
-      {
-        $this->redirect(array('module' => 'informationobject', 'action' => 
'list'));
-      }
+      $this->group->delete();
+      $this->redirect(array('module' => 'aclGroup', 'action' => 'list'));
     }
   }
 }

Copied and modified: 
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/protectedAction.class.php 
(from r3772, 
trunk/apps/qubit/modules/admin/actions/termPermissionAction.class.php)
==============================================================================
--- trunk/apps/qubit/modules/admin/actions/termPermissionAction.class.php       
Tue Oct 20 00:02:34 2009        (r3772, copy source)
+++ 
trunk/plugins/qbAclPlugin/modules/aclGroup/actions/protectedAction.class.php    
    Tue Oct 20 14:27:22 2009        (r3777)
@@ -17,7 +17,7 @@
  * along with Qubit Toolkit.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-class AdminTermPermissionAction extends sfAction
+class AclGroupProtectedAction extends sfAction
 {
   public function execute($request)
   {

Copied and modified: 
trunk/plugins/qbAclPlugin/modules/aclGroup/templates/deleteSuccess.php (from 
r3772, trunk/apps/qubit/modules/informationobject/templates/deleteSuccess.php)
==============================================================================
--- trunk/apps/qubit/modules/informationobject/templates/deleteSuccess.php      
Tue Oct 20 00:02:34 2009        (r3772, copy source)
+++ trunk/plugins/qbAclPlugin/modules/aclGroup/templates/deleteSuccess.php      
Tue Oct 20 14:27:22 2009        (r3777)
@@ -1,17 +1,9 @@
-<h1><?php echo __('Are you sure you want to delete %1%?', array('%1%' => 
render_title($informationObject))) ?></h1>
+<h1><?php echo __('Are you sure you want to delete %1%?', array('%1%' => 
render_title($group))) ?></h1>
 
-<?php if (0 < count($informationObject->descendants)): ?>
-  <ul>
-    <?php foreach ($informationObject->descendants as $descendant): ?>
-      <li><?php echo link_to(render_title($descendant), array('module' => 
'informationobject', 'action' => 'show', 'id' => $descendant->id)) ?></li>
-    <?php endforeach; ?>
-  </ul>
-<?php endif; ?>
-
-<?php echo $form->renderFormTag(url_for(array('module' => 'informationobject', 
'action' => 'delete', 'id' => $informationObject->id)), array('method' => 
'delete')) ?>
+<?php echo $form->renderFormTag(url_for(array('module' => 'aclGroup', 'action' 
=> 'delete', 'id' => $group->id)), array('method' => 'delete')) ?>
 
   <ul class="actions">
-    <li><?php echo link_to(__('Cancel'), array('module' => 
'informationobject', 'action' => 'show', 'id' => $informationObject->id)) 
?></li>
+    <li><?php echo link_to(__('Cancel'), array('module' => 'aclGroup', 
'action' => 'edit', 'id' => $group->id)) ?></li>
     <li><?php echo submit_tag(__('Confirm')) ?></li>
   </ul>
 

Modified: trunk/plugins/qbAclPlugin/modules/aclGroup/templates/editSuccess.php
==============================================================================
--- trunk/plugins/qbAclPlugin/modules/aclGroup/templates/editSuccess.php        
Tue Oct 20 13:47:46 2009        (r3776)
+++ trunk/plugins/qbAclPlugin/modules/aclGroup/templates/editSuccess.php        
Tue Oct 20 14:27:22 2009        (r3777)
@@ -118,18 +118,16 @@
 
 <div id="button-block">
   <div class="menu-action">
+  <?php echo link_to(__('Cancel'), array('module' => 'aclGroup', 'action' => 
'list')) ?>
+
   <?php if (isset($sf_request->id)): ?>
-    <?php echo submit_tag(__('save')) ?>
-    <?php if (SecurityCheck::HasPermission($sf_user, array('module' => 
'aclGroup', 'action' => 'delete'))): ?>
-      &#160;<?php echo link_to(__('delete'),
-        array('module' => 'aclGroup', 'action' => 'delete', 'id' => 
$group->id),
-        array('post' => true, 'confirm' => __('are you sure?'))) ?>
+    <?php if (QubitAcl::check($group, QubitAclAction::DELETE_ID) && 
!$group->isProtected()): ?>
+      <?php echo link_to(__('Delete'), array('module' => 'aclGroup', 'action' 
=> 'delete', 'id' => $group->id)) ?>
     <?php endif; ?>
+    <?php echo submit_tag(__('Save')) ?>
   <?php else: ?>
-    <?php echo submit_tag(__('create')) ?>
+    <?php echo submit_tag(__('Create')) ?>
   <?php endif; ?>
-
-  <?php echo link_to(__('cancel'), array('module' => 'aclGroup', 'action' => 
'list')) ?>
   </div>
 </div>
 </form>

Copied and modified: 
trunk/plugins/qbAclPlugin/modules/aclGroup/templates/protectedSuccess.php (from 
r3772, trunk/apps/qubit/modules/admin/templates/termPermissionSuccess.php)
==============================================================================
--- trunk/apps/qubit/modules/admin/templates/termPermissionSuccess.php  Tue Oct 
20 00:02:34 2009        (r3772, copy source)
+++ trunk/plugins/qbAclPlugin/modules/aclGroup/templates/protectedSuccess.php   
Tue Oct 20 14:27:22 2009        (r3777)
@@ -3,11 +3,11 @@
 <div style="text-align: center;">
   <?php echo image_tag('lock48.png') ?>
 
-    <h2 style="font-size: 20px;"><?php echo __('sorry, this Term is locked and 
cannot be deleted'); ?></h2>
-    <h2><?php echo __('the existing term values are required by the 
application to operate correctly'); ?></h2>
+    <h2 style="font-size: 20px;"><?php echo __('sorry, this group is locked 
and cannot be deleted'); ?></h2>
+    <h2><?php echo __('this group is required by the application to operate 
correctly'); ?></h2>
 
        <a href="javascript:history.go(-1)"><?php echo __('back to previous 
page'); ?></a>
        <br />
-       <?php echo link_to(__('go to homepage'), '@homepage') ?>
+       <?php echo link_to(__('list groups'), array('module' => 'aclGroup', 
'action' => 'list')) ?>
 
-</div>
+</div>
\ No newline at end of file

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