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'))): ?>
-  <?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
-~----------~----~----~----~------~----~------~--~---