コード例 #1
0
 /**
  * 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()));
     }
 }
コード例 #2
0
ファイル: NoteController.php プロジェクト: dotuancd/secretary
 /**
  * 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);
 }