summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--application/modules/user/controllers/GroupController.php11
-rw-r--r--application/modules/user/views/scripts/group/index.phtml68
-rw-r--r--application/modules/user/views/scripts/role/linkright.phtml14
-rw-r--r--pbs.sql13
-rw-r--r--public/media/css/user.css9
-rw-r--r--public/media/js/user.js86
6 files changed, 88 insertions, 113 deletions
diff --git a/application/modules/user/controllers/GroupController.php b/application/modules/user/controllers/GroupController.php
index 9a5380a..a2434d2 100644
--- a/application/modules/user/controllers/GroupController.php
+++ b/application/modules/user/controllers/GroupController.php
@@ -154,9 +154,8 @@ class User_GroupController extends Zend_Controller_Action
public function editAction()
{
// ACL edit a group
- // TODO: THERE IS NO RIGHT TO EDIT A GROUP
- #if(!Pbs_Acl::checkRight(''))
- # $this->_redirect('/user');
+ if(!Pbs_Acl::checkRight('geo') && !Pbs_Acl::checkRight('geo'))
+ $this->_redirect('/user');
$groupID = $this->_request->getParam('groupID');
if(!isset($groupID)) {
@@ -168,6 +167,8 @@ class User_GroupController extends Zend_Controller_Action
$this->_helper->redirector('add', 'group');
return;
}
+ if((!Pbs_Acl::checkRight('geo') && $groupID == $this->membership->getGroupID()) || ( !Pbs_Acl::checkRight('ge') && $groupID != $this->membership->getGroupID() ))
+ $this->_redirect('/user/group/index/page/'.$this->page.'/deleteresult/forbidden');
if (!isset($_POST["save"])){
$group = $this->groupMapper->find($groupID);
$_POST['title'] = $group->getTitle();
@@ -175,9 +176,9 @@ class User_GroupController extends Zend_Controller_Action
$editForm = new user_Form_GroupEdit(array('groupID' => $groupID));
} else {
$editForm = new user_Form_GroupEdit(array('groupID' => $groupID), $_POST);
- if ($editForm->isValid($_POST)) {
+ if ($editForm->isValid($_POST)) {
$group = new Application_Model_Group($_POST);
- $group->setID($groupID);
+ $group->setID($groupID);
try {
$this->groupMapper->save($group);
} catch(Zend_Exception $e)
diff --git a/application/modules/user/views/scripts/group/index.phtml b/application/modules/user/views/scripts/group/index.phtml
index e3b5082..def21f6 100644
--- a/application/modules/user/views/scripts/group/index.phtml
+++ b/application/modules/user/views/scripts/group/index.phtml
@@ -1,9 +1,12 @@
<h1>Groups Overview</h1>
+<?php if($this->notification != ''){echo $this->notification;} ?>
<?php echo $this->searchform; ?>
+<?php if(Pbs_Acl::checkRight('gc')):?>
<?php echo $this->formButton('addgroup', 'Add Group', array(
'onclick' => 'self.location="/user/group/add"',
'class' => 'addbutton'))
?>
+<?php endif;?>
<div class='searchvars'>
<div class='head'>Available searchfilter:</div>
@@ -33,30 +36,54 @@ $class= 'highlight checked';
?>
<div class='content'>
<div class='actions'>
- <a href="<?php if($group->getID() == $this->userIDsNamespace['groupID']) echo $this->url(
+ <?php if($group->getID() == $this->userIDsNamespace['groupID'] ): ?>
+ <?php if(Pbs_Acl::checkRight('gsdo') ): ?>
+ <a href="<?php echo $this->url(
+ array(
+ 'module' => 'user',
+ 'controller' => 'group',
+ 'action' => 'show'
+ ),
+ 'default',
+ true);?>">
+ <img src='/media/img/show.png' alt='Show Group' /></a>
+ <?php endif; ?>
+ <?php if(Pbs_Acl::checkRight('geo')): ?>
+ <a href="<?php echo $this->url(
array(
'module' => 'user',
'controller' => 'group',
- 'action' => 'show'
+ 'action' => 'edit'
),
'default',
- true); else echo $this->url(
+ true);?>"><img src='/media/img/edit.png' alt='Edit Group' /></a>
+ <?php endif; ?>
+ <?php if(Pbs_Acl::checkRight('gd')): ?>
+ <a href="<?php echo $this->url(
array(
'module' => 'user',
'controller' => 'group',
- 'action' => 'show',
- 'groupID' => $group->getID()
+ 'action' => 'delete'
),
'default',
- true); ?>"> <img src='/media/img/show.png' alt='Show Group' /> </a>
- <a href="<?php if($group->getID() == $this->userIDsNamespace['groupID']) echo $this->url(
+ true);?>"><img src='/media/img/delete.png' alt='Delete Group' /></a>
+ <?php endif; ?>
+
+ <?php endif; ?>
+ <?php if($group->getID() != $this->userIDsNamespace['groupID']) : ?>
+ <?php if(Pbs_Acl::checkRight('gsdog') ): ?>
+ <a href="<?php echo $this->url(
array(
'module' => 'user',
'controller' => 'group',
- 'action' => 'edit'
+ 'action' => 'show',
+ 'groupID' => $group->getID()
),
'default',
- true); else echo $this->url(
+ true); ?>"><img src='/media/img/show.png' alt='Show Group' /></a>
+ <?php endif; ?>
+ <?php if(Pbs_Acl::checkRight('ge')): ?>
+ <a href="<?php echo $this->url(
array(
'module' => 'user',
'controller' => 'group',
@@ -64,15 +91,10 @@ $class= 'highlight checked';
'groupID' => $group->getID()
),
'default',
- true); ?>"> <img src='/media/img/edit.png' alt='Edit Group' /> </a>
- <a href="<?php if($group->getID() == $this->userIDsNamespace['groupID']) echo $this->url(
- array(
- 'module' => 'user',
- 'controller' => 'group',
- 'action' => 'delete'
- ),
- 'default',
- true); else echo $this->url(
+ true);?>"><img src='/media/img/edit.png' alt='Edit Group' /></a>
+ <?php endif; ?>
+ <?php if(Pbs_Acl::checkRight('gd')): ?>
+ <a href="<?php echo $this->url(
array(
'module' => 'user',
'controller' => 'group',
@@ -80,7 +102,9 @@ $class= 'highlight checked';
'groupID' => $group->getID()
),
'default',
- true); ?>"> <img src='/media/img/delete.png' alt='Delete Group' /></a>
+ true);?>"><img src='/media/img/delete.png' alt='Delete Group' /></a>
+ <?php endif; ?>
+ <?php endif; ?>
</div>
<div class='title'><?php echo $group->getTitle(); ?></div>
<?php if($group->getDescription()) {
@@ -99,10 +123,10 @@ $class= 'highlight checked';
<?php endforeach ?>
</div>
<?php echo $this->pagination; ?>
-
+<?php if(Pbs_Acl::checkRight('glk')): ?>
<?php echo $this->formButton('linkgroups', 'Link Groups', array(
'onclick' => 'self.location="/user/group/link"',
- 'class' => 'addbutton'))
-?>
+ 'class' => 'addbutton'));?>
+<?php endif ?>
<br />
<br />
diff --git a/application/modules/user/views/scripts/role/linkright.phtml b/application/modules/user/views/scripts/role/linkright.phtml
index 38c0d45..f7c1133 100644
--- a/application/modules/user/views/scripts/role/linkright.phtml
+++ b/application/modules/user/views/scripts/role/linkright.phtml
@@ -1,5 +1,17 @@
<h1>Add Right</h1>
+<div>Click to expand the boxes</div>
<?php
$this->linkForm->setAction($this->url());
echo $this->linkForm;
-?> \ No newline at end of file
+?>
+<script>
+$(document).ready(function(){
+ $('fieldset').children('dl:gt(0)').hide();
+ $('fieldset fieldset>legend').css('cursor','pointer');
+ $('fieldset fieldset').click(
+ function(){
+ $(this).children('dl').slideToggle();
+ });
+
+});
+</script>
diff --git a/pbs.sql b/pbs.sql
index 7ebb64d..0fea159 100644
--- a/pbs.sql
+++ b/pbs.sql
@@ -389,7 +389,7 @@ INSERT INTO `pbs`.`pbs_right` (`rightID`, `rightcategoryID`, `shortcut`, `title`
-- Gruppendetails anderer Gruppen anzeigen
(NULL, '2', 'gsdog', 'Show details of other group', NULL),
-- Mitglieder einer Gruppe Anzeigen
-(NULL, '2', 'gsmg', 'Show members of group', NULL),
+(NULL, '2', 'gsmg', 'Show members of other group', NULL),
-- Gruppe erstellen
(NULL, '2', 'gc', 'Create group', NULL),
-- Gruppe löschen
@@ -575,19 +575,26 @@ INSERT INTO `pbs`.`pbs_right` (`rightID`, `rightcategoryID`, `shortcut`, `title`
-- Session Übersicht ansehen
(NULL, '12', 'so', 'Show overview of Session', NULL);
+INSERT INTO `pbs`.`pbs_right` (`rightID`, `rightcategoryID`, `shortcut`, `title`, `description`) VALUES (NULL, '2', 'geo', 'Edit own group', NULL);
+INSERT INTO `pbs`.`pbs_right` (`rightID`, `rightcategoryID`, `shortcut`, `title`, `description`) VALUES (NULL, '2', 'ge', 'Edit other group', NULL);
+INSERT INTO `pbs`.`pbs_right` (`rightID`, `rightcategoryID`, `shortcut`, `title`, `description`) VALUES (NULL, '2', 'glk', 'Link groups', NULL);
+INSERT INTO `pbs`.`pbs_right` (`rightID`, `rightcategoryID`, `shortcut`, `title`, `description`) VALUES (NULL, '2', 'grog', 'Overview of own group requests', NULL);
+INSERT INTO `pbs`.`pbs_right` (`rightID`, `rightcategoryID`, `shortcut`, `title`, `description`) VALUES (NULL, '2', 'grotg', 'Overview of other group requests', NULL);
+INSERT INTO `pbs`.`pbs_right` (`rightID`, `rightcategoryID`, `shortcut`, `title`, `description`) VALUES (NULL, '2', 'gsmgo', 'Show members of own group', NULL);
+
-- Adding Super-User
INSERT INTO `pbs`.`pbs_group` (`groupID` ,`title` ,`description`)VALUES
(1, 'OpenSLX', 'This is the OpenSLX-Group');
INSERT INTO `pbs`.`pbs_role` (`roleID`, `groupID`, `title`, `description`, `inheritance`) VALUES
(1, '1', 'SuperAdmin', 'The SuperAdmin', 0);
INSERT INTO `pbs`.`pbs_rightroles` (`roleID`, `rightID`) VALUES
-(1, 1),(1, 2),(1, 3),(1, 4),(1, 5),(1, 6),(1, 7),(1, 8),(1, 9),(1, 10),(1, 11),(1, 12),(1, 13),(1, 14),(1, 15),(1, 16),(1, 17),(1, 18),(1, 19),(1, 20),(1, 21),(1, 22),(1, 23),(1, 24),(1, 25),(1, 26),(1, 27),(1, 28),(1, 29),(1, 30),(1, 31),(1, 32),(1, 33),(1, 34),(1, 35),(1, 36),(1, 37),(1, 38),(1, 39),(1, 40),(1, 41),(1, 42),(1, 43),(1, 44),(1, 45),(1, 46),(1, 47),(1, 48),(1, 49),(1, 50),(1, 51),(1, 52),(1, 53),(1, 54),(1, 55),(1, 56),(1, 57),(1, 58),(1, 59),(1, 60),(1, 61),(1, 62),(1, 63),(1, 64),(1, 65),(1, 66),(1, 67),(1, 68),(1, 69),(1, 70),(1, 71),(1, 72),(1, 73),(1, 74),(1, 75),(1, 76),(1, 77),(1, 78),(1, 79),(1, 80),(1, 81),(1, 82),(1, 83),(1, 84),(1, 85),(1, 86),(1, 87),(1, 88),(1, 89),(1, 90),(1, 91),(1, 92),(1, 93),(1, 94);
+(1, 1),(1, 2),(1, 3),(1, 4),(1, 5),(1, 6),(1, 7),(1, 8),(1, 9),(1, 10),(1, 11),(1, 12),(1, 13),(1, 14),(1, 15),(1, 16),(1, 17),(1, 18),(1, 19),(1, 20),(1, 21),(1, 22),(1, 23),(1, 24),(1, 25),(1, 26),(1, 27),(1, 28),(1, 29),(1, 30),(1, 31),(1, 32),(1, 33),(1, 34),(1, 35),(1, 36),(1, 37),(1, 38),(1, 39),(1, 40),(1, 41),(1, 42),(1, 43),(1, 44),(1, 45),(1, 46),(1, 47),(1, 48),(1, 49),(1, 50),(1, 51),(1, 52),(1, 53),(1, 54),(1, 55),(1, 56),(1, 57),(1, 58),(1, 59),(1, 60),(1, 61),(1, 62),(1, 63),(1, 64),(1, 65),(1, 66),(1, 67),(1, 68),(1, 69),(1, 70),(1, 71),(1, 72),(1, 73),(1, 74),(1, 75),(1, 76),(1, 77),(1, 78),(1, 79),(1, 80),(1, 81),(1, 82),(1, 83),(1, 84),(1, 85),(1, 86),(1, 87),(1, 88),(1, 89),(1, 90),(1, 91),(1, 92),(1, 93),(1, 94),(1, 95),(1, 96),(1, 97),(1, 98),(1, 99),(1, 100);
-- Adding Community-Admin
INSERT INTO `pbs`.`pbs_role` (`roleID`, `groupID`, `title`, `description`, `inheritance`) VALUES
(2, 1, 'Community-Admin', 'This role can observe and edit all group, person and role specific details', 1);
INSERT INTO `pbs`.`pbs_rightroles` (`roleID`, `rightID`) VALUES
-(2, 1),(2, 2),(2, 3),(2, 4),(2, 5),(2, 6),(2, 7),(2, 8),(2, 9),(2, 10),(2, 11),(2, 12),(2, 13),(2, 14),(2, 15),(2, 16),(2, 17),(2, 18),(2, 19),(2, 20),(2, 21),(2, 22),(2, 23),(2, 24),(2, 25),(2, 26),(2, 27),(2, 28),(2, 29),(2, 30),(2, 31),(2, 33),(2, 37),(2, 46),(2, 50),(2, 51),(2, 52),(2, 57),(2, 63),(2, 70),(2, 71),(2, 72),(2, 73);
+(2, 1),(2, 2),(2, 3),(2, 4),(2, 5),(2, 6),(2, 7),(2, 8),(2, 9),(2, 10),(2, 11),(2, 12),(2, 13),(2, 14),(2, 15),(2, 16),(2, 17),(2, 18),(2, 19),(2, 20),(2, 21),(2, 22),(2, 23),(2, 24),(2, 25),(2, 26),(2, 27),(2, 28),(2, 29),(2, 30),(2, 31),(2, 33),(2, 37),(2, 46),(2, 50),(2, 51),(2, 52),(2, 57),(2, 63),(2, 70),(2, 71),(2, 72),(2, 73),(1, 95),(1, 96),(1, 97),(1, 98),(1, 99),(1, 100);
-- Adding Monitor-Admin
INSERT INTO `pbs`.`pbs_role` (`roleID`, `groupID`, `title`, `description`, `inheritance`) VALUES
diff --git a/public/media/css/user.css b/public/media/css/user.css
index 8b16f52..48f61ec 100644
--- a/public/media/css/user.css
+++ b/public/media/css/user.css
@@ -21,6 +21,15 @@
text-align: center;
}
+fieldset legend{
+ font-weight: bold;
+ font-size:14px;
+}
+fieldset {
+ border:none;
+ border-top:1px solid black;
+}
+
#rights-element dl fieldset dt {
width: 325px;
}
diff --git a/public/media/js/user.js b/public/media/js/user.js
index 15c3075..26f4e80 100644
--- a/public/media/js/user.js
+++ b/public/media/js/user.js
@@ -21,89 +21,11 @@ $(document).ready(function(){
});
function checkAllCheckBoxes(exceptions) {
- var elements = document.getElementsByTagName('input');
- if(!elements) {
- return;
- }
- var countElements = elements.length;
- var countExceptions;
- if(exceptions) {
- countExceptions = exceptions.length;
- } else {
- countExceptions = 0;
- }
- var foundException = false;
- if(!countElements) {
- if(elements.getAttribute('type') == 'checkbox') {
- for(var j = 0; j < countExceptions; j++) {
- if(elements.getAttribute('name') == exceptions[j]) {
- foundException = true
- break;
- }
- }
- if(!foundException) {
- elements.checked = true;
- }
- foundException = false;
- }
- } else {
- for(var i = 0; i < countElements; i++) {
- if(elements[i].getAttribute('type') == 'checkbox') {
- for(var j = 0; j < countExceptions; j++) {
- if(elements[i].getAttribute('name') == exceptions[j]) {
- foundException = true
- break;
- }
- }
- if(!foundException) {
- elements[i].checked = true;
- }
- foundException = false;
- }
- }
- }
+ $('input:checkbox').attr('checked','checked');
+ return;
}
function uncheckAllCheckBoxes(exceptions) {
- var elements = document.getElementsByTagName('input');
- if(!elements) {
- return;
- }
- var countElements = elements.length;
- var countExceptions;
- if(exceptions) {
- countExceptions = exceptions.length;
- } else {
- countExceptions = 0;
- }
- var foundException = false;
- if(!countElements) {
- if(elements.getAttribute('type') == 'checkbox') {
- for(var j = 0; j < countExceptions; j++) {
- if(elements.getAttribute('name') == exceptions[j]) {
- foundException = true
- break;
- }
- }
- if(!foundException) {
- elements.checked = false;
- }
- foundException = false;
- }
- } else {
- for(var i = 0; i < countElements; i++) {
- if(elements[i].getAttribute('type') == 'checkbox') {
- for(var j = 0; j < countExceptions; j++) {
- if(elements[i].getAttribute('name') == exceptions[j]) {
- foundException = true
- break;
- }
- }
- if(!foundException) {
- elements[i].checked = false;
- }
- foundException = false;
- }
- }
- }
+ $('input:checkbox').attr('checked','');
+ return;
}