예제 #1
0
 /**
  * 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();
     }
 }
예제 #2
0
파일: Review.php 프로젝트: GEANT/CORE
 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);
 }
예제 #3
0
파일: Role.php 프로젝트: GEANT/CORE
 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));
 }
예제 #4
0
파일: Item.php 프로젝트: br00k/tnc-web
 /**
  * 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;
 }
예제 #5
0
 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);
 }
예제 #6
0
파일: Item.php 프로젝트: br00k/tnc-web
 /**
  * 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;
 }
예제 #7
0
파일: User.php 프로젝트: br00k/tnc-web
 /**
  * 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;
 }
예제 #8
0
 /**
  *
  *
  */
 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');
 }
예제 #9
0
파일: Invite.php 프로젝트: GEANT/CORE
 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));
 }
예제 #10
0
 /**
  * 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');
     }
 }