diff options
-rw-r--r-- | application/modules/user/controllers/GroupController.php | 11 | ||||
-rw-r--r-- | application/modules/user/views/scripts/group/index.phtml | 68 | ||||
-rw-r--r-- | application/modules/user/views/scripts/role/linkright.phtml | 14 | ||||
-rw-r--r-- | pbs.sql | 13 | ||||
-rw-r--r-- | public/media/css/user.css | 9 | ||||
-rw-r--r-- | public/media/js/user.js | 86 |
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> @@ -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; } |