/** * Perform authentication * * @param array $values * @return mixed true on success, else error message */ public function authenticate($values) { $adapter = $this->_getAuthAdapter($values); $auth = $this->getAuth(); $result = $auth->authenticate($adapter); if ($result->isValid()) { // persistent storage $storage = $auth->getStorage(); // set custom user attributes if (!($user = $this->_userModel->getUserBySmartId($result->getIdentity()))) { if ($this->_invite) { // update user $user = $this->_userModel->saveUserFromFederatedIdentity($result->getIdentityAttributes(), $this->_invite); } else { // insert user $user = $this->_userModel->saveUserFromFederatedIdentity($result->getIdentityAttributes()); } } $user->updateAttributes(); $storage->write($user); return true; } else { return $result->getMessages(); } }
public function _postInsert(TA_Model_Observed_Interface $subject, $msg) { $conference = Zend_Registry::get('conference'); $submitModel = new Core_Model_Submit(); $userModel = new Core_Model_User(); $values['review'] = $subject->toArray(); $values['submission'] = $submitModel->getSubmissionById($values['review']['submission_id'])->toArray(); $values['user'] = $userModel->getUserById($values['review']['user_id'])->getSafeUser(); $mailer = new TA_Controller_Action_Helper_SendEmail(); $mailer->sendEmail(array('to_email' => $conference['email'], 'html' => true, 'subject' => 'CORE Observer: ' . __CLASS__, 'template' => 'review/postinsert'), $values); }
public function init() { parent::init(); $this->setAction('/core/user/roles'); $id = new Zend_Form_Element_Hidden('user_id'); $id->setRequired(true)->addValidators(array('Int'))->setDecorators(array('Composite')); $userModel = new Core_Model_User(); $roles = new Zend_Form_Element_Select('role_id'); $roles->setAttrib('class', 'large')->setAttrib('onchange', 'this.form.submit()')->setMultiOptions($userModel->getRolesForSelect())->setDecorators(array('Composite')); $this->addElements(array($id, $roles)); }
/** * Required by TA_Form_Element_User * * @return Zend_Db_Table_Rowset */ public function getUsers() { $this->_manyToManyIds = $userIds = $this->getTable()->getAdapter()->fetchPairs("select presentation_user_id, user_id from presentations_users where presentation_id=:presentation_id", array(':presentation_id' => $this->presentation_id)); $userModel = new Core_Model_User(); $filter = new stdClass(); $filter->user_id = $userIds; if ($userIds) { $users = $userModel->getUsers(null, null, $filter); return $users['rows']; } return false; }
public function _postInsert(TA_Model_Observed_Interface $subject, $msg) { $conference = Zend_Registry::get('conference'); $userModel = new Core_Model_User(); $user = $userModel->getUserById($subject->user_id); $submitModel = new Core_Model_Submit(); $submission = $submitModel->getSubmissionById($subject->submission_id); $viewParams = $submission->toArray(); $viewParams['fname'] = $user->fname; $viewParams['lname'] = $user->lname; $mailer = new TA_Controller_Action_Helper_SendEmail(); $mailer->sendEmail(array('to_email' => $user->email, 'subject' => 'CORE Observer: ' . __CLASS__, 'template' => 'review/observer'), $viewParams); }
/** * Required by TA_Form_Element_User * * @param boolean $tiebreaker Return only tiebreaker users * @return Zend_Db_Table_Rowset */ public function getUsers($tiebreaker = false) { $sql = "select reviewer_submission_id, user_id from reviewers_submissions where submission_id=:submission_id"; if ($tiebreaker) { $sql .= " and tiebreaker=true"; } $this->_manyToManyIds = $userIds = $this->getTable()->getAdapter()->fetchPairs($sql, array(':submission_id' => $this->submission_id)); $userModel = new Core_Model_User(); $filter = new stdClass(); $filter->user_id = $userIds; if ($userIds) { $users = $userModel->getUsers(null, null, $filter, true); return $users['rows']; } return false; }
/** * Populate element with user values * * @param string $role Only show users that have this role * @return TA_Form_Element_User fluent interface */ public function populateElement($role = null) { $userModel = new Core_Model_User(); $this->setMultiOptions($userModel->getUsersForSelect(true, $role))->setRegisterInArrayValidator(false); return $this; }
/** * * */ public function newAction() { // @todo: this can't be right, I add the ACL logic here. // I can't do it in Core.php because that causes a chicken/egg problem // with Zend_Registry::get('conference') not being set. // no worries, because the date assertion is void anyway $acl = Zend_Registry::get('acl'); $acl->allow('user', 'Submit', 'new', new Core_Model_Acl_DateAssertion()); $request = $this->getRequest(); // No post; display form if (!$request->isPost()) { $this->view->submitForm = $this->_submitModel->getForm('submit'); return $this->render('formNew'); } // try to persist data if ($this->_submitModel->saveSubmission($request->getPost()) === false) { $this->view->error = true; return $this->displayForm(); } // send email to submitter Zend_Controller_Action_HelperBroker::addHelper(new TA_Controller_Action_Helper_SendEmail()); $emailHelper = $this->_helper->sendEmail; $identity = Zend_Auth::getInstance()->getIdentity(); $conference = Zend_Registry::get('conference'); $emailHelper->sendEmail(array('template' => 'submit/new', 'subject' => 'TNC15 submission', 'html' => true, 'to_email' => $identity->email, 'to_name' => $identity->fname . ' ' . $identity->lname), $request->getPost()); // everything went OK, redirect $this->_helper->flashMessenger('Thank you for your submission, please check your details below'); if (Zend_Auth::getInstance()->getIdentity()->role != 'admin') { // reload session because user details have changed (their submission data) $userId = Zend_Auth::getInstance()->getIdentity()->user_id; $userModel = new Core_Model_User(); $userModel->getUserById($userId)->reloadSession(); #return $this->_helper->lastRequest(); return $this->_helper->redirector->gotoRoute(array('controller' => 'user', 'action' => 'edit', 'id' => $userId), 'gridactions'); } return $this->_helper->redirector->gotoRoute(array('controller' => 'submit', 'action' => 'list'), 'grid'); }
public function init() { parent::init(); $uuid = new uuid(); $invite = new Zend_Form_Element_Hidden('invite'); $invite->setValue($uuid->get())->setRequired(true)->addValidator(new TA_Form_Validator_Uuid())->setDecorators(array('Composite')); $userModel = new Core_Model_User(); $roles = new Zend_Form_Element_Select('role_id'); $roles->setAttrib('class', 'small')->setLabel('Role')->setOrder(4)->addFilter('Null')->setMultiOptions($userModel->getRolesForSelect('---'))->setDecorators(array('Composite')); $this->addElements(array($roles, $invite)); }
/** * Evaluate a session, deals with new and existing evaluations * */ public function evaluateAction() { $request = $this->getRequest(); $id = (int) $request->getParam('id') ? $request->getParam('id') : $request->getParam('session_id'); $this->view->evaluationForm = $this->_sessionModel->getForm('sessionEvaluation'); $defaults = $this->_sessionModel->getEvaluationBySessionId($id); if ($defaults) { $this->view->updated = isset($defaults['updated']) ? $defaults['updated'] : $defaults['inserted']; $userModel = new Core_Model_User(); $this->view->user = $userModel->getUserById($defaults['user_id']); } $defaults['session_id'] = $id; // No post; if (!$request->isPost()) { // populate form with defaults $this->view->evaluationForm->setDefaults($defaults); return $this->render('evaluate'); } // try to persist evaluation if ($this->_sessionModel->saveEvaluation($request->getPost()) === false) { $this->view->evaluationForm = $this->_sessionModel->getForm('sessionEvaluation'); return $this->render('evaluate'); } }