/** * @param \Zend\ServiceManager\ServiceLocatorInterface $sl * @return \Secretary\Service\User */ public function createService(ServiceLocatorInterface $sl) { $service = new User(); /* @var \Doctrine\Orm\EntityManager $em */ $em = $sl->get('doctrine.entitymanager.orm_default'); $service->setEntityManager($em); return $service; }
public function testUpdateUserSettings() { $user = $this->createUser(); $values = array('display_name' => 'olala', 'language' => 'de_DE', 'notifications' => false); $user = $this->userService->updateUserSettings($user, $values); $this->assertInstanceOf('\\Secretary\\Entity\\User', $user); $this->assertSame($values['display_name'], $user->getDisplayName()); $this->assertSame($values['language'], $user->getLanguage()); $this->assertSame($values['notifications'], $user->getNotifications()); }
/** * 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())); } }
/** * User settings * * @return \Zend\View\Model\ViewModel */ public function settingsAction() { $form = $this->getUserForm(); $viewModel = new ViewModel(); $viewVars = array('userForm' => $form); $messages = $this->flashMessenger()->getCurrentSuccessMessages(); if (!empty($messages)) { $viewVars['msg'] = array('success', $messages[0]); } $this->flashMessenger()->clearMessages(); if ($this->getRequest()->isPost()) { $form->setInputFilter($form->getInputFilter()); $form->setData($this->getRequest()->getPost()); if ($form->isValid()) { $values = $form->getData(); // Upgrade User to KeyUser Role $this->userService->updateUserSettings($this->identity, $values); // Success $this->flashMessenger()->addSuccessMessage($this->translator->translate('Your settings were updated')); return $this->redirect()->toRoute('user-settings'); } $viewVars['msg'] = array('error', 'An error occurred'); } $viewModel->setVariables($viewVars); return $viewModel; }
/** * @param DoctrineResourceEvent $e * @param Service\User $userService * @return Entity\User */ protected function getUser(DoctrineResourceEvent $e, Service\User $userService) { return $userService->getUserByMail($e->getResourceEvent()->getIdentity()->getName()); }
/** * Process add form * * @return \Zend\View\Model\ViewModel * @throws \LogicException If creation of key fails */ public function addAction() { $keyRecord = $this->getKeyService()->fetchKey($this->identity->getId()); if (!empty($keyRecord)) { return $this->redirect()->toRoute('secretary/default', array('controller' => 'key', 'action' => 'index')); } $action = $this->params()->fromPost('mode', 'create'); if (!in_array($action, $this->availableActions)) { $action = 'create'; } $form = $this->getKeyForm(); $form->setMode($action); $viewModel = new ViewModel(); $msg = array('error', 'An error occurred'); $viewVars = array('keyRecord' => $keyRecord, 'keyForm' => $form, 'msg' => $msg, 'activeMode' => $action); if ($this->getRequest()->isPost()) { $newKeyRecord = new KeyEntity(); if ($action == 'create') { $form->setInputFilter($newKeyRecord->getInputFilter()); } $form->setData($this->getRequest()->getPost()); if ($form->isValid()) { $values = $form->getData(); // Generate Keys $successText = ''; $keys = array(); if ($action == 'create') { $passphrase = $values['passphrase']; try { $keys = $this->getCryptService()->createPrivateKey($passphrase); } catch (\Exception $e) { throw new \LogicException($e->getMessage(), 0, $e); } $viewVars['privKey'] = $keys['priv']; $successText = 'Your key was created successfully'; } elseif ($action == 'add') { try { $this->getCryptService()->validatePublicKey($values['public_key']); } catch (\Exception $e) { // Error $viewVars['msg'] = array('error', $this->translator->translate('Validation of provided key failed!')); $viewModel->setVariables($viewVars); $viewModel->setTemplate('secretary/key/index'); return $viewModel; } $keys['pub'] = $values['public_key']; $successText = 'Your key was added successfully'; } // Save Data $this->getKeyService()->saveKey($newKeyRecord, $this->identity, $keys['pub']); // Upgrade User to KeyUser Role $this->userService->updateUserToKeyRole($this->identity); // Success $viewVars['msg'] = array('success', $this->translator->translate($successText)); $viewModel->setVariables($viewVars); $viewModel->setTemplate('secretary/key/success'); return $viewModel; } } $viewModel->setVariables($viewVars); $viewModel->setTemplate('secretary/key/index'); return $viewModel; }