Advertisement
fabi0

Untitled

May 31st, 2014
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 12.01 KB | None | 0 0
  1. <?php
  2.  
  3. /*
  4.  * To change this license header, choose License Headers in Project Properties.
  5.  * To change this template file, choose Tools | Templates
  6.  * and open the template in the editor.
  7.  */
  8.  
  9. /**
  10.  * Description of Auth
  11.  *
  12.  * @author Ivaylo Ivanov
  13.  */
  14. class Authorization extends \Load\Controller {
  15.  
  16.     public function index() {
  17.  
  18.         $avatars = new \Models\Avatars();
  19.         $data['avatars'] = $avatars->getAvatars();
  20.         $data['baseUrl'] = \Models\Config::base_url;
  21.         $data['title'] = "iziForum - Authorization";
  22.         $this->render("Authorization", $data);
  23.     }
  24.  
  25.     public function login() {
  26.  
  27.         // Инстанции
  28.         $validation = new \Models\Validate();
  29.         $authorization = new \Models\Authorization($this->_databaseInstance);
  30.         $language = new \Models\Language();
  31.  
  32.         // Инициализираме си масив за грешки от валидацията.
  33.         $errors = array();
  34.  
  35.         // Санитазиране на данните за регистрация.
  36.         $user_email = @\Models\Sanitaze::clear($_POST['user_email']);
  37.         $user_password = @$_POST['user_password'];
  38.         $remember_me = false;
  39.  
  40.         // Валидираме имейла на потребителя
  41.         $validation->setData($user_email)->required()->email();
  42.         if ($validation->getErrors()) {
  43.             foreach ($validation->getErrors() as $errorCode) {
  44.                 $errors['list'][] = $language->get("field-email") . ' : ' . $language->get("error-" . $errorCode);
  45.             }
  46.         }
  47.  
  48.         // Валидираме паролата на потребителя
  49.         $validation->setData($user_password)->required()->min_length(6)->max_length(30);
  50.         if ($validation->getErrors()) {
  51.             foreach ($validation->getErrors() as $errorCode) {
  52.                 $errors['list'][] = $language->get("field-password") . ' : ' . $language->get("error-" . $errorCode);
  53.             }
  54.         }
  55.  
  56.         // Проверяваме дали имаме грешки след валидацията
  57.         if (isset($errors['list'])) {
  58.             $errors['action'] = $language->get("login");
  59.             $errors['message'] = $language->get("cannot-login");
  60.             $errors['return'] = \Models\Config::base_url . "authorization";
  61.             $_SESSION['errors'] = $errors;
  62.             \Models\Redirect::to(\Models\Config::base_url . 'errors');
  63.         }
  64.  
  65.         // Логваме потребителя
  66.         $loginStatus = @$authorization->login($user_email, $user_password, false);
  67.  
  68.         // Проверяваме дали имаме грешки от регистрацията и ги записваме в масив
  69.         if (!empty($authorization->getЕrrors())) {
  70.             foreach ($authorization->getЕrrors() as $errorCode) {
  71.                 $errors['list'][] = $language->get("login-page") . ' : ' . $language->get("error-" . $errorCode);
  72.             }
  73.         }
  74.  
  75.         // Проверяваме дали имаме грешки след логването
  76.         if (isset($errors['list'])) {
  77.             $errors['action'] = $language->get("login");
  78.             $errors['message'] = $language->get("cannot-login");
  79.             $errors['return'] = \Models\Config::base_url . "authorization";
  80.             $_SESSION['errors'] = $errors;
  81.             \Models\Redirect::to(\Models\Config::base_url . 'errors');
  82.         }
  83.  
  84.         // Проверяваме дали имаме отметка на запомни ме
  85.         if (isset($_POST['remember_me'])) {
  86.             $remember_me = true;
  87.         }
  88.  
  89.         // Присвоява информацията на потребителя към сесия.
  90.         $_SESSION['isLogged'] = $loginStatus;
  91.  
  92.         // Пренасочваме към главната страница при успешен вход.
  93.         \Models\Redirect::to(\Models\Config::base_url);
  94.     }
  95.  
  96.     public function register() {
  97.  
  98.         // Инстанции
  99.         $validation = new \Models\Validate();
  100.         $authorization = new \Models\Authorization($this->_databaseInstance);
  101.         $language = new \Models\Language();
  102.  
  103.         // Инициализираме си масив за грешки от валидацията.
  104.         $errors = array();
  105.  
  106.         // Санитазиране на данните за регистрация.
  107.         $user_avatar = $_POST['user_avatar'];
  108.         $user_full_name = \Models\Sanitaze::clear($_POST['user_full_name']);
  109.         $user_email = \Models\Sanitaze::clear($_POST['user_email']);
  110.         $user_password = $_POST['user_password'];
  111.         $confirm_password = $_POST['confirm_password'];
  112.         $user_gender = \Models\Sanitaze::clear($_POST['user_gender']);
  113.         $user_location = \Models\Sanitaze::clear($_POST['user_location']);
  114.  
  115.         // Валидираме аватара на потребителя
  116.         $validation->setData($user_avatar)->required()->fileExist()->isImage();
  117.         if ($validation->getErrors()) {
  118.             foreach ($validation->getErrors() as $errorCode) {
  119.                 $errors['list'][] = $language->get("field-avatar") . ' : ' . $language->get("error-" . $errorCode);
  120.             }
  121.         }
  122.  
  123.         // Валидираме името на потребителя
  124.         $validation->setData($user_full_name)->required()->min_length(3);
  125.         if ($validation->getErrors()) {
  126.             foreach ($validation->getErrors() as $errorCode) {
  127.                 $errors['list'][] = $language->get("field-full-name") . ' : ' . $language->get("error-" . $errorCode);
  128.             }
  129.         }
  130.  
  131.         // Валидираме паролата на потребителя
  132.         $validation->setData($user_password)->required()->min_length(6)->max_length(30);
  133.         if ($validation->getErrors()) {
  134.             foreach ($validation->getErrors() as $errorCode) {
  135.                 $errors['list'][] = $language->get("field-password") . ' : ' . $language->get("error-" . $errorCode);
  136.             }
  137.         }
  138.  
  139.         // Проверяваме дали паролата съвпада
  140.         $validation->setData($user_password, $confirm_password)->match();
  141.         if ($validation->getErrors()) {
  142.             foreach ($validation->getErrors() as $errorCode) {
  143.                 $errors['list'][] = $language->get("field-password") . ' : ' . $language->get("error-" . $errorCode);
  144.             }
  145.         }
  146.  
  147.         // Валидираме пола на потребителя
  148.         $validation->setData($user_gender)->required()->range(1, 2);
  149.         if ($validation->getErrors()) {
  150.             foreach ($validation->getErrors() as $errorCode) {
  151.                 $errors['list'][] = $language->get("field-gender") . ' : ' . $language->get("error-" . $errorCode);
  152.             }
  153.         }
  154.  
  155.         // Валидираме имейла на потребителя
  156.         $validation->setData($user_email)->required()->email();
  157.         if ($validation->getErrors()) {
  158.             foreach ($validation->getErrors() as $errorCode) {
  159.                 $errors['list'][] = $language->get("field-email") . ' : ' . $language->get("error-" . $errorCode);
  160.             }
  161.         }
  162.  
  163.         // Валидираме локацията на потребителя
  164.         $validation->setData($user_location)->required();
  165.         if ($validation->getErrors()) {
  166.             foreach ($validation->getErrors() as $errorCode) {
  167.                 $errors['list'][] = $language->get("field-location") . ' : ' . $language->get("error-" . $errorCode);
  168.             }
  169.         }
  170.  
  171.         // Проверяваме дали имаме грешки след валидацията
  172.         if (isset($errors['list'])) {
  173.             $errors['action'] = $language->get("registration");
  174.             $errors['message'] = $language->get("cannot-register");
  175.             $errors['return'] = \Models\Config::base_url . "authorization";
  176.             $_SESSION['errors'] = $errors;
  177.             \Models\Redirect::to(\Models\Config::base_url . 'errors');
  178.         }
  179.  
  180.         // Регистрираме потребителя след като входните данни са валидни
  181.         $authorization->register($user_full_name, $user_password, $user_email, $user_avatar, $user_gender, $user_location);
  182.  
  183.         // Проверяваме дали имаме грешки от регистрацията и ги записваме в масив
  184.         if (!empty($authorization->getЕrrors())) {
  185.             foreach ($authorization->getЕrrors() as $errorCode) {
  186.                 $errors['list'][] = $language->get("register-page") . ' : ' . $language->get("error-" . $errorCode);
  187.             }
  188.         }
  189.  
  190.         // Проверяваме дали имаме грешки в масива
  191.         if (isset($errors['list'])) {
  192.             $errors['action'] = 'Register';
  193.             $errors['message'] = 'You can not register !';
  194.             $errors['return'] = \Models\Config::base_url . "authorization";
  195.             $_SESSION['errors'] = $errors;
  196.             \Models\Redirect::to(\Models\Config::base_url . 'errors');
  197.         }
  198.  
  199.         // Пренасочваме към главната страница при успешна регистрация.
  200.         \Models\Redirect::to(\Models\Config::base_url);
  201.     }
  202.  
  203.     public function recovery() {
  204.         // Инстанции
  205.         $validation = new \Models\Validate();
  206.         $authorization = new \Models\Authorization($this->_databaseInstance);
  207.         $language = new \Models\Language();
  208.  
  209.         // Санитазиране на данните за регистрация.
  210.         $user_email = \Models\Sanitaze::clear($_POST['user_email']);
  211.  
  212.         // Инициализираме си масив за грешки от валидацията.
  213.         $errors = array();
  214.  
  215.         // Валидираме имейла на потребителя
  216.         $validation->setData($user_email)->required()->email();
  217.         if ($validation->getErrors()) {
  218.             foreach ($validation->getErrors() as $errorCode) {
  219.                 $errors['list'][] = $language->get("field-email") . ' : ' . $language->get("error-" . $errorCode);
  220.             }
  221.         }
  222.  
  223.         // Проверяваме дали имаме грешки след валидацията
  224.         if (isset($errors['list'])) {
  225.             $errors['action'] = $language->get("recovery-action");
  226.             $errors['message'] = $language->get("cannot-recover");
  227.             $errors['return'] = \Models\Config::base_url . "authorization";
  228.             $_SESSION['errors'] = $errors;
  229.             \Models\Redirect::to(\Models\Config::base_url . 'errors');
  230.         }
  231.  
  232.         // Сменяме паролата на потребителя
  233.         $a = $authorization->passwordRecovery($user_email, 12);
  234.         echo "<pre>" . print_r($a, TRUE) . "</pre>";
  235.         die();
  236.         // Проверяваме дали имаме грешки от регистрацията и ги записваме в масив
  237.         if (!empty($authorization->getЕrrors())) {
  238.             foreach ($authorization->getЕrrors() as $errorCode) {
  239.                 $errors['list'][] = $language->get("recovery-page") . ' : ' . $language->get("error-" . $errorCode);
  240.             }
  241.         }
  242.  
  243.         // Проверяваме дали имаме грешки в масива
  244.         if (isset($errors['list'])) {
  245.             $errors['action'] = $language->get("recovery-action");
  246.             $errors['message'] = $language->get("cannot-recover");
  247.             $errors['return'] = \Models\Config::base_url . "authorization";
  248.             $_SESSION['errors'] = $errors;
  249.             \Models\Redirect::to(\Models\Config::base_url . 'errors');
  250.         }
  251.  
  252.         // Пренасочваме към главната страница при успешна регистрация.
  253.         \Models\Redirect::to(\Models\Config::base_url);
  254.     }
  255.  
  256.     public function logout() {
  257.         session_destroy();
  258.         \Models\Redirect::to(\Models\Config::base_url);
  259.     }
  260.  
  261. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement