hasIdentity()) {
$this->groupMapper = new Application_Model_GroupMapper();
$this->groupGroupsMapper = new Application_Model_GroupGroupsMapper();
$this->membershipMapper = new Application_Model_MembershipMapper();
$this->groupRequestMapper = new Application_Model_GroupRequestMapper();
$this->personmapper = new Application_Model_PersonMapper();
$this->rolemapper = new Application_Model_RoleMapper();
$this->groupList = $this->groupMapper->fetchAll();
} else {
$this->_helper->redirector('login', 'auth');
return;
}
}
public function indexAction()
{
$this->view->groupList = $this->groupList;
}
public function addAction()
{
if (!isset($_POST["add"])){
$addForm = new dev_Form_GroupAdd(array('grouplist' => $this->groupList));
} else {
$addForm = new dev_Form_GroupAdd(array('grouplist' => $this->groupList),$_POST);
if ($addForm->isValid($_POST)) {
$group = new Application_Model_Group($_POST);
try {
$this->groupMapper->save($group);
} catch(Zend_Exception $e)
{
echo "Caught exception: " . get_class($e) . "
";
echo "Message: " . $e->getMessage() . "
";
return;
}
if($_POST['superordinatedGroupID'] != -1) {
$lastID = $this->groupMapper->getDbTable()->getDefaultAdapter()->lastInsertId();
$groupgroups = new Application_Model_GroupGroups();
$groupgroups->setParentID($_POST['superordinatedGroupID']);
$groupgroups->setGroupID($lastID);
try {
$this->groupGroupsMapper->save($groupgroups);
} catch(Zend_Exception $e)
{
echo "Caught exception: " . get_class($e) . "
";
echo "Message: " . $e->getMessage() . "
";
return;
}
}
$this->_helper->redirector('', 'group');
return;
}
}
$this->view->addForm = $addForm;
}
public function editAction()
{
$groupID = $this->_request->getParam('groupID');
if(!isset($groupID)) {
$addForm = new dev_Form_GroupAdd(array('grouplist' => $this->groupList));
$this->view->addForm = $addForm;
return;
}
if (!isset($_POST["save"])){
$group = $this->groupMapper->find($groupID);
$_POST['title'] = $group->getTitle();
$_POST['description'] = $group->getDescription();
$editForm = new dev_Form_GroupEdit();
} else {
$editForm = new dev_Form_GroupEdit($_POST);
if ($editForm->isValid($_POST)) {
$group = new Application_Model_Group($_POST);
$group->setID($this->_request->getParam('groupID'));
try {
$this->groupMapper->save($group);
} catch(Zend_Exception $e)
{
echo "Caught exception: " . get_class($e) . "
";
echo "Message: " . $e->getMessage() . "
";
return;
}
$this->_helper->redirector('', 'group');
return;
}
}
$this->view->editForm = $editForm;
}
public function showAction()
{
$groupID = $this->_request->getParam('groupID');
if($groupID) {
$groupRequests = $this->groupRequestMapper->findBy(array('groupID' => $groupID),true);
if(isset($groupRequests)) {
foreach($groupRequests as $groupRequest) {
$person = $this->personmapper->find($groupRequest['personID']);
$groupRequestList[] = array(
'grouprequestID' => $groupRequest['grouprequestID'],
'person' => $person
);
}
if(is_array($groupRequestList)) {
$this->view->groupRequestList = $groupRequestList;
}
$this->view->roleList = $this->rolemapper->findBy('groupID', $groupID);
}
$members = $this->membershipMapper->findBy('groupID', $groupID);
if(isset($members)) {
foreach($members as $member) {
$person = $this->personmapper->find($member['personID']);
$membersList[] = array(
'membershipID' => $member['membershipID'],
'person' => $person
);
}
if(is_array($membersList)) {
$this->view->membersList = $membersList;
}
}
$groupgroups = $this->groupGroupsMapper->findBy('groupID', $groupID);
if(is_object($groupgroups)) {
$parentGroup = $this->groupMapper->find($groupgroups->getParentID());
$this->view->$parentGroup = $parentGroup;
}
$group = $this->groupMapper->find($groupID);
$this->view->group = $group;
$this->view->groupID = $groupID;
}
}
public function linkAction()
{
if (!isset($_POST["link"])){
$linkForm = new dev_Form_GroupLink(array('grouplist' => $this->groupList));
} else {
$linkForm = new dev_Form_GroupLink(array('grouplist' => $this->groupList),$_POST);
if ($linkForm->isValid($_POST)) {
$groupgroups = new Application_Model_GroupGroups();
$groupgroups->setParentID($_POST['superordinatedGroupID']);
$groupgroups->setGroupID($_POST['groupID']);
try {
$this->groupGroupsMapper->save($groupgroups);
} catch(Zend_Exception $e)
{
echo "Caught exception: " . get_class($e) . "
";
echo "Message: " . $e->getMessage() . "
";
return;
}
$this->_helper->redirector('', 'group');
return;
}
}
$this->view->linkForm = $linkForm;
}
public function deleteAction()
{
$this->_helper->viewRenderer->setNoRender();
$groupID = $this->_request->getParam('groupID');
if (isset($groupID)){
$group = $this->groupMapper->find($groupID);
try {
$this->groupMapper->delete($group);
} catch(Zend_Exception $e)
{
echo "Caught exception: " . get_class($e) . "
";
echo "Message: " . $e->getMessage() . "
";
return;
}
$this->_helper->redirector('', 'group');
return;
}
}
public function grantpersonAction()
{
$this->_helper->viewRenderer->setNoRender();
if(isset($_POST['grouprequestID']) && isset($_POST['roleID'])) {
$groupRequest = $this->groupRequestMapper->find($_POST['grouprequestID']);
try {
$this->groupRequestMapper->delete($groupRequest);
} catch(Zend_Exception $e)
{
echo "Caught exception: " . get_class($e) . "
";
echo "Message: " . $e->getMessage() . "
";
return;
}
$membership = new Application_Model_Membership();
$membership->setGroupID($groupRequest->getGroupID());
$membership->setPersonID($groupRequest->getPersonID());
$membership->setRoleID($_POST['roleID']);
try {
$this->membershipMapper->save($membership);
} catch(Zend_Exception $e)
{
echo "Caught exception: " . get_class($e) . "
";
echo "Message: " . $e->getMessage() . "
";
return;
}
$this->_redirect("/dev/group/show/groupID/" . $groupRequest->getGroupID());
}
}
public function revokepersonAction()
{
$this->_helper->viewRenderer->setNoRender();
$membershipID = $this->_request->getParam('membershipID');
if(isset($membershipID)) {
$membership = $this->membershipMapper->find($membershipID);
if(isset($membership)) {
try {
$this->membershipMapper->delete($membership);
} catch(Zend_Exception $e)
{
echo "Caught exception: " . get_class($e) . "
";
echo "Message: " . $e->getMessage() . "
";
return;
}
$this->_redirect("/dev/group/edit/groupID/" . $membership->getGroupID());
}
}
}
}