public function indexAction() { $form = new Application_Form_Profile(); $form->setMethod('POST'); $form->setDefaultsFromEntity($this->user); $request = $this->getRequest(); if ($request->isPost() && $form->isValid($request->getPost())) { $values = $form->getValues(); try { if (!empty($values['image'])) { $imageInfo = array_pop($form->image->getFileInfo()); $values['image'] = $this->_helper->service('image')->save($imageInfo); } $this->service->save($values, $this->user); $this->_helper->redirector('index'); } catch (\InvalidArgumentException $e) { switch ($e->getMessage()) { case 'username_conflict': $form->username->addError($this->view->translate("User with given username exists.")); break; default: $form->image->addError($e->getMessage()); break; } } } $this->view->user_first_name = $this->user->getFirstName(); $this->view->user_last_name = $this->user->getLastName(); $this->view->user_email = $this->user->getEmail(); $this->view->form = $form; $this->view->user = new MetaUser($this->user); $this->view->first_time = $this->_getParam('first', false); }
public function testSave() { $data = array('email' => '*****@*****.**'); $this->assertEquals($this->user, $this->service->save($data, $this->user)); $this->assertGreaterThan(0, $this->user->getId()); $this->assertEquals('*****@*****.**', $this->user->getEmail()); }
public function let(Container $container, EntityManager $entityManager, Request $request, AbstractQuery $query, UserTopicService $userTopicService, UserRepository $userRepository, User $user, Paginator $knpPaginator, PaginatorService $paginator, EntityRepository $repository) { $container->get('em')->willReturn($entityManager); $container->get('user.topic')->willReturn($userTopicService); $container->get('newscoop.paginator.paginator_service')->willReturn($paginator); $entityManager->persist(Argument::any())->willReturn(true); $entityManager->flush(Argument::any())->willReturn(true); $entityManager->remove(Argument::any())->willReturn(true); $entityManager->getRepository('Newscoop\\Entity\\User')->willReturn($repository); $user->getId()->willReturn(1); $user->getUsername()->willReturn('admin'); $user->getEmail()->willReturn('*****@*****.**'); $this->setContainer($container); }
/** * Set form defaults * * @param Newscoop\Entity\User $user * @return Admin_Form_User */ public function setDefaultsFromEntity(User $user) { $types = array(); foreach ($user->getUserTypes() as $type) { $types[] = $type->getId(); } try { $user->getAuthorId(); } catch (\Doctrine\ORM\EntityNotFoundException $e) { // deleted author $user->setAuthor(null); } return $this->setDefaults(array('first_name' => $user->getFirstName(), 'last_name' => $user->getLastName(), 'email' => $user->getEmail(), 'username' => $user->getUsername(), 'status' => $user->isActive(), 'is_admin' => $user->isAdmin(), 'is_public' => $user->isPublic(), 'user_type' => $types, 'author' => $user->getAuthorId())); }
/** * Send comment notification * * @param Newscoop\Entity\Comment $comment * @param Article $article * @param array $authors * @param Newscoop\Entity\User $user * @return void */ public function sendCommentNotification(Comment $comment, \Article $article, array $authors, User $user = null) { $emails = array_unique(array_filter(array_map(function ($author) { return $author->getEmail(); }, $authors))); if (empty($emails)) { return; } $this->view->placeholder(self::PLACEHOLDER_SUBJECT)->set('New Comment'); $message = $this->view->action('comment-notify', 'email', 'default', array('comment' => $comment, 'article' => $article, 'user' => $user)); $mail = new \Zend_Mail(self::CHARSET); $mail->setSubject($this->view->placeholder(self::PLACEHOLDER_SUBJECT)); $mail->setBodyHtml($message); $mail->setFrom($user ? $user->getEmail() : $this->config['from']); foreach ($emails as $email) { $mail->addTo($email); } $mail->send(); }
/** * Set form defaults * * @param Newscoop\Entity\User $user * @return Admin_Form_User */ public function setDefaultsFromEntity(User $user) { $defaults = array('first_name' => $user->getFirstName(), 'last_name' => $user->getLastName(), 'username' => $user->getUsername(), 'attributes' => array()); $profile = $this->getSubForm('attributes'); foreach ($profile as $field) { $defaults['attributes'][$field->getName()] = (string) $user->getAttribute($field->getName()); } $types = array(); foreach ($user->getUserTypes() as $type) { $types[] = $type->getId(); } try { $user->getAuthorId(); } catch (\Doctrine\ORM\EntityNotFoundException $e) { // deleted author $user->setAuthor(null); } $settings = array('first_name' => $user->getFirstName(), 'last_name' => $user->getLastName(), 'email' => $user->getEmail(), 'username' => $user->getUsername(), 'status' => $user->isActive(), 'is_admin' => $user->isAdmin(), 'is_public' => $user->isPublic(), 'is_verified' => $user->getAttribute('is_verified'), 'is_featured' => $user->getAttribute('is_featured'), 'user_type' => $types, 'author' => $user->getAuthorId()); return $this->setDefaults(array_merge($settings, $defaults)); }
public function getEmail() { $this->__load(); return parent::getEmail(); }
/** * Method for saving a banned * * @param ZendForm $p_form * @param Newscoop\Entity\User $p_user */ private function handleBanForm(Admin_Form_BanUser $p_form, $p_user, $p_publication) { if ($this->getRequest()->isPost() && $p_form->isValid($_POST)) { if ($p_form->getSubmit()->isChecked()) { $parameters = $p_form->getValues(); $banValues = array(); $unbanValues = array(); if ($parameters['name'] == 1) { $banValues['name'] = $p_user->getName(); } else { $unbanValues['name'] = $p_user->getName(); } if ($parameters['email'] == 1) { $banValues['email'] = $p_user->getEmail(); } else { $unbanValues['email'] = $p_user->getEmail(); } $acceptanceRepository = $this->_helper->entity->getRepository('Newscoop\\Entity\\Comment\\Acceptance'); $acceptanceRepository->ban($p_publication, $banValues); $acceptanceRepository->flush(); $acceptanceRepository->unban($p_publication, $unbanValues); $acceptanceRepository->flush(); $this->_helper->flashMessenger(getGS('Ban for user "$1" saved.', $p_user->getName())); if ($parameters['delete_messages'] == 1) { $feedbackRepository = $this->_helper->entity->getRepository('Newscoop\\Entity\\Feedback'); $feedbacks = $feedbackRepository->getByUser($p_user->getId()); $feedbackRepository->setStatus($feedbacks, 'deleted'); $feedbackRepository->flush(); } } $this->_helper->redirector->gotoSimple('index', 'feedback'); } }