/** * Remove member from group * * @return \Zend\View\Model\ViewModel */ public function removeAction() { $userId = (int) $this->getRequest()->getQuery('user'); if ($this->groupRecord->getOwner() != $this->identity->getId()) { return $this->redirect()->toRoute('secretary/group'); } if (empty($userId) || $userId == $this->identity->getId()) { return $this->redirect()->toRoute('secretary/group', array('action' => 'members', 'id' => $this->groupRecord->getId())); } $membershipCheck = $this->groupService->checkGroupMembership($this->groupRecord->getId(), $userId); if (false === $membershipCheck) { return $this->redirect()->toRoute('secretary/group', array('action' => 'members', 'id' => $this->groupRecord->getId())); } // Delete User from Group / Delete Group try { $groupName = $this->groupRecord->getName(); $userRecord = $this->userService->getUserById($userId); $this->noteService->deleteUserFromGroupNotes($userRecord, $this->groupRecord); $this->groupService->removeUserFromGroup($userRecord, $this->groupRecord); $this->flashMessenger()->addSuccessMessage(sprintf($this->translator->translate('User "%s" was successfully removed from group "%s"'), $userRecord->getDisplayName(), $groupName)); return $this->redirect()->toRoute('secretary/group', array('action' => 'members', 'id' => $this->groupRecord->getId())); } catch (\Exception $e) { $this->flashMessenger()->addErrorMessage('An error occurred: ' . $e->getMessage()); return $this->redirect()->toRoute('secretary/group', array('action' => 'members', 'id' => $this->groupRecord->getId())); } }
/** * Process add form * * @return \Zend\View\Model\ViewModel */ public function addAction() { $noteRecord = new NoteEntity(); $form = $this->getNoteForm($noteRecord); $groupForm = $this->getGroupForm(); $viewVars = array('noteFormLegend' => 'Create Note', 'noteForm' => $form, 'groupForm' => $groupForm); if (!$this->getRequest()->isPost()) { return new ViewModel($viewVars); } if ($this->getRequest()->isPost()) { $viewVars['msg'] = array('error', 'An error occurred'); $form->setData($this->getRequest()->getPost()); if ($form->isValid()) { if ($this->getRequest()->getPost('private') == 0) { $groupId = $this->getRequest()->getPost('groupHidden'); if (empty($groupId) || !is_numeric($groupId)) { // @todo log stuff here? $viewVars['msg'] = array('error', 'You need to select a group'); return new ViewModel($viewVars); } $groupMemberCheck = $this->groupService->checkGroupMembership($groupId, $this->identity->getId()); if (false === $groupMemberCheck) { $this->events->trigger('logViolation', __METHOD__ . '::l42', array('message' => sprintf('User: %s wants to add note for GroupID: %s', $this->identity->getEmail(), $groupId))); return new ViewModel($viewVars); } } if ($this->getRequest()->getPost('private') == 0) { $members = $this->getRequest()->getPost('members'); if (empty($members)) { $viewVars['msg'] = array('error', 'Please select a group member to share note with'); return new ViewModel($viewVars); } $noteRecord->setGroup($this->groupService->fetchGroup($groupId)); $this->noteService->saveGroupNote($this->identity, $form->getData(), $groupId, $members); } else { $this->noteService->saveUserNote($this->identity, $form->getData()); } $this->flashMessenger()->addSuccessMessage($this->translator->translate('Note was created successfully')); return $this->redirect()->toRoute('secretary/note'); } } return new ViewModel($viewVars); }