コード例 #1
0
 /**
  *
  * @param sfWebRequest $request
  * @param LoginForm $form
  */
 protected function processLogin(sfWebRequest $request, LoginForm $form)
 {
     $form->bind($request->getParameter('signin'));
     if ($form->isValid()) {
         $values = $form->getValues();
         $this->getUser()->signIn($values['user'], array_key_exists('remember', $values) ? $values['remember'] : false);
         // Set the tow previous referer to the same value for:
         // 1) redirect to previous user's location
         // 2) avoid redirect loop in signin
         $this->getUser()->setReferer($this->getUser()->getReferer());
         // Redirect to referer
         return $this->redirect($this->getUser()->getReferer());
     }
 }
コード例 #2
0
 public function loginAction()
 {
     $request = $this->getRequest();
     // Check if we have a POST request
     if (!$request->isPost()) {
         $this->_helper->redirector('index', 'admin');
     }
     // Get our form and validate it
     $form = new LoginForm();
     if (!$form->isValid($request->getPost())) {
         // Invalid entries
         $this->view->form = $form;
         $this->_helper->redirector('index', 'admin');
         // re-render the login form
     }
     // Get our authentication adapter and check credentials
     $adapter = $this->getAuthAdapter($form->getValues());
     $auth = Zend_Auth::getInstance();
     $result = $auth->authenticate($adapter);
     if (!$result->isValid()) {
         // Invalid credentials
         $form->setDescription('Invalid credentials provided');
         $this->view->form = $form;
         $this->_helper->redirector('index', 'admin');
         // re-render the login form
     }
     $db = Zend_Registry::get('db');
     $admin_id = $db->fetchOne("SELECT id FROM admin WHERE email = :temp", array('temp' => $auth->getIdentity()));
     $adminModel = new Admin();
     $admin = $adminModel->find($admin_id)->current();
     $authNamespace = new Zend_Session_Namespace('Zend_Auth');
     //2011-04-08 ham.bao separate the sessions with admin
     //$authNamespace->user = $admin;
     $authNamespace->admin = $admin;
     //2011-04-08 ham.bao separate the sessions with admin
     $authNamespace->role = 'administrator';
     // We're authenticated! Redirect to the home page
     $url = $form->getValue('url');
     if (isset($url) && !empty($url)) {
         $this->_redirector = $this->_helper->getHelper('Redirector');
         $this->_redirector->gotoUrl($url);
     } else {
         $this->_helper->redirector('adminindex', 'campaign');
     }
 }
コード例 #3
0
 /**
  * Log into the application.
  */
 function loginAction()
 {
     // Set the title for this action.
     $this->view->title = "Login";
     // Wrap the whole thing in a try/catch.
     try {
         // Get a login form.
         $form = new LoginForm();
         // Check to see if this is an invalid form submission.
         if (!$this->getRequest()->isPost() || !$form->isValid($_POST)) {
             $this->view->loginForm = $form;
             return;
         }
         // Get the form values.
         $values = $form->getValues();
         // Get a new authentication adapter.
         $adapter = new AppAuthAdapter($values['login'], $values['password']);
         // Perform the authentication using the adapter.
         $auth = Zend_Auth::getInstance();
         $result = $auth->authenticate($adapter);
         // Save the identity in the session.
         $session = new Zend_Session_Namespace('Web');
         $session->employee = $auth->getIdentity();
         // Make sure the result is valid.
         if (!$result->isValid()) {
             // Authentication failed.
             $this->view->failedAuthentication = true;
             $this->view->loginForm = $form;
         } else {
             // Authentication succeeded. Determine where to go.
             $this->_helper->redirector('index', 'timesheet', 'user');
             // Save the employee to the view.
             $this->view->employee = $session->employee;
         }
     } catch (Zend_Exception $ex) {
         // Log the error.
         Logger::getLogger()->debug($ex->getMessage());
         // Authentication failed.
         $this->view->failedAuthentication = true;
         $this->view->loginForm = $form;
     }
 }
コード例 #4
0
 public function loginAction()
 {
     $request = $this->getRequest();
     // Check if we have a POST request
     if (!$request->isPost()) {
         $this->_helper->redirector('index', 'client');
     }
     // Get our form and validate it
     $form = new LoginForm();
     if (!$form->isValid($request->getPost())) {
         // Invalid entries
         $this->view->form = $form;
         $this->_flashMessenger->addMessage("Email or password is incorrect.");
         $this->_helper->redirector('index', 'client');
         // re-render the login form
     }
     // Get our authentication adapter and check credentials
     $adapter = $this->getAuthAdapter($form->getValues());
     $auth = Zend_Auth::getInstance();
     $result = $auth->authenticate($adapter);
     if (!$result->isValid()) {
         // Invalid credentials
         $form->setDescription('Invalid credentials provided');
         $this->view->form = $form;
         $this->_flashMessenger->addMessage("Email or password is incorrect.");
         $this->_helper->redirector('index', 'client');
         // re-render the login form
     }
     $db = Zend_Registry::get('db');
     $client_id = $db->fetchOne("SELECT id FROM client WHERE email = :temp", array('temp' => $auth->getIdentity()));
     $clientModel = new Client();
     $client = $clientModel->find($client_id)->current();
     $authNamespace = new Zend_Session_Namespace('Zend_Auth');
     //2011-04-08 ham.bao separate the sessions with client
     $authNamespace->client = $client;
     // get accessible campaign list
     $clientCampaginSelect = $db->select();
     $clientCampaginSelect->from('client_campaign', 'campaign_id')->join('campaign', 'client_campaign.campaign_id = campaign.id', array('name'))->where('client_campaign.client_id = ?', $client_id)->order('campaign.id desc');
     $clientCampaign = $db->fetchAll($clientCampaginSelect);
     $campaignlist = array();
     foreach ($clientCampaign as $temp) {
         $campaignlist[$temp['campaign_id']] = array($temp['campaign_id'], $temp['name']);
     }
     $clientCampaignListNamespace = new Zend_Session_Namespace('ClientCampaignList');
     if ($clientCampaignListNamespace->list == null) {
         $clientCampaignListNamespace->list = $campaignlist;
     }
     // We're authenticated! Redirect to the home page
     $url = $form->getValue('url');
     //get unviewed message count save it to session
     $clientMessageNamespace = new Zend_Session_Namespace('ClientMessage');
     //$db = Zend_Registry::get('db');
     $messageCount = $db->fetchOne("SELECT count(*) FROM client_message cm WHERE cm.to_type='Client' and cm.to=:clientId and state='NEW'", array('clientId' => $client_id));
     if ($messageCount > 0) {
         $attrName = "count_" . $client_id;
         $clientMessageNamespace->{$attrName} = $messageCount;
     }
     if (isset($url) && !empty($url)) {
         $this->_redirector = $this->_helper->getHelper('Redirector');
         $this->_redirector->gotoUrl($url);
     } else {
         $campaignIdArray = array_keys($campaignlist);
         $this->_helper->redirector('clientcloudtag', 'dashboard', null, array('id' => $campaignIdArray[0]));
     }
 }
コード例 #5
0
 public function executeLogin($request)
 {
     $form = new LoginForm();
     $form->bind(array('name' => $request->getParameter('name'), 'password' => $request->getParameter('password')));
     if ($form->isValid()) {
         $values = $form->getValues();
         $user = User::getByPassword($values['name'], $values['password']);
         if ($user) {
             $output = '<rsp stat="ok">' . $user->getXML(false, true) . '</rsp>';
         }
     } else {
         $output = '<rsp stat="fail"><err code="1" msg="' . $form->getErrorSchema() . '" /></rsp>';
     }
     $this->output = $output;
     $this->setTemplate('index');
 }