shop.balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

login.php (3320B)


      1 <?php
      2 class ControllerCommonLogin extends Controller {
      3 	private $error = array();
      4 
      5 	public function index() {
      6 		$this->load->language('common/login');
      7 
      8 		$this->document->setTitle($this->language->get('heading_title'));
      9 
     10 		if ($this->user->isLogged() && isset($this->request->get['user_token']) && ($this->request->get['user_token'] == $this->session->data['user_token'])) {
     11 			$this->response->redirect($this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true));
     12 		}
     13 
     14 		if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
     15 			$this->session->data['user_token'] = token(32);
     16 			
     17 			if (isset($this->request->post['redirect']) && (strpos($this->request->post['redirect'], HTTP_SERVER) === 0 || strpos($this->request->post['redirect'], HTTPS_SERVER) === 0)) {
     18 				$this->response->redirect($this->request->post['redirect'] . '&user_token=' . $this->session->data['user_token']);
     19 			} else {
     20 				$this->response->redirect($this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true));
     21 			}
     22 		}
     23 
     24 		if ((isset($this->session->data['user_token']) && !isset($this->request->get['user_token'])) || ((isset($this->request->get['user_token']) && (isset($this->session->data['user_token']) && ($this->request->get['user_token'] != $this->session->data['user_token']))))) {
     25 			$this->error['warning'] = $this->language->get('error_token');
     26 		}
     27 
     28 		if (isset($this->error['warning'])) {
     29 			$data['error_warning'] = $this->error['warning'];
     30 		} else {
     31 			$data['error_warning'] = '';
     32 		}
     33 
     34 		if (isset($this->session->data['success'])) {
     35 			$data['success'] = $this->session->data['success'];
     36 
     37 			unset($this->session->data['success']);
     38 		} else {
     39 			$data['success'] = '';
     40 		}
     41 
     42 		$data['action'] = $this->url->link('common/login', '', true);
     43 
     44 		if (isset($this->request->post['username'])) {
     45 			$data['username'] = $this->request->post['username'];
     46 		} else {
     47 			$data['username'] = '';
     48 		}
     49 
     50 		if (isset($this->request->post['password'])) {
     51 			$data['password'] = $this->request->post['password'];
     52 		} else {
     53 			$data['password'] = '';
     54 		}
     55 
     56 		if (isset($this->request->get['route'])) {
     57 			$route = $this->request->get['route'];
     58 
     59 			unset($this->request->get['route']);
     60 			unset($this->request->get['user_token']);
     61 
     62 			$url = '';
     63 
     64 			if ($this->request->get) {
     65 				$url .= http_build_query($this->request->get);
     66 			}
     67 
     68 			$data['redirect'] = $this->url->link($route, $url, true);
     69 		} else {
     70 			$data['redirect'] = '';
     71 		}
     72 
     73 		if ($this->config->get('config_password')) {
     74 			$data['forgotten'] = $this->url->link('common/forgotten', '', true);
     75 		} else {
     76 			$data['forgotten'] = '';
     77 		}
     78 
     79 		$data['header'] = $this->load->controller('common/header');
     80 		$data['footer'] = $this->load->controller('common/footer');
     81 
     82 		$this->response->setOutput($this->load->view('common/login', $data));
     83 	}
     84 
     85 	protected function validate() {
     86 		if (!isset($this->request->post['username']) || !isset($this->request->post['password']) || !$this->user->login($this->request->post['username'], html_entity_decode($this->request->post['password'], ENT_QUOTES, 'UTF-8'))) {
     87 			$this->error['warning'] = $this->language->get('error_login');
     88 		}
     89 
     90 		return !$this->error;
     91 	}
     92 }