Esempio n. 1
0
 /**
  * @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;
 }
Esempio n. 2
0
 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());
 }
Esempio n. 3
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()));
     }
 }
Esempio n. 4
0
 /**
  * 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());
 }
Esempio n. 6
0
 /**
  * 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;
 }