Overview

Namespaces

  • GLFramework
    • Cache
    • Controller
    • DaMa
      • Manipulators
    • Database
    • HTTP
    • Mail
    • Middleware
    • Model
    • Module
    • Tests
    • Upload
    • Utils
  • None

Classes

  • GLFramework\Bootstrap
  • GLFramework\Cache\Cache
  • GLFramework\Cache\MemcachedCache
  • GLFramework\Cache\MemoryCache
  • GLFramework\Controller
  • GLFramework\Controller\AdminController
  • GLFramework\Controller\APIController
  • GLFramework\Controller\AuthController
  • GLFramework\Controller\ErrorController
  • GLFramework\Controller\ExceptionController
  • GLFramework\DaMa\Association
  • GLFramework\DaMa\DataManipulation
  • GLFramework\DaMa\Manipulator
  • GLFramework\DaMa\Manipulators\CSVManipulator
  • GLFramework\DaMa\Manipulators\ManipulatorCore
  • GLFramework\DaMa\Manipulators\XLSManipulator
  • GLFramework\DaMa\Manipulators\XLSXManipulator
  • GLFramework\Database\Connection
  • GLFramework\Database\MySQLConnection
  • GLFramework\DatabaseManager
  • GLFramework\DBStructure
  • GLFramework\Events
  • GLFramework\Filesystem
  • GLFramework\HTTP\API
  • GLFramework\Log
  • GLFramework\Mail
  • GLFramework\Mail\Mail
  • GLFramework\Mail\MailSystem
  • GLFramework\Mail\PHPMailer
  • GLFramework\MailView
  • GLFramework\Middleware\APIAuthorizationMiddleware
  • GLFramework\Middleware\ControllerMiddleware
  • GLFramework\Model
  • GLFramework\Model\Page
  • GLFramework\Model\User
  • GLFramework\Model\UserPage
  • GLFramework\ModelResult
  • GLFramework\Module\Module
  • GLFramework\Module\ModuleManager
  • GLFramework\Request
  • GLFramework\Response
  • GLFramework\Tests\DatabaseTestCase
  • GLFramework\Tests\TestCase
  • GLFramework\Upload\Upload
  • GLFramework\Upload\Uploads
  • GLFramework\Utils\DataTablesManager
  • GLFramework\Versions
  • GLFramework\View

Interfaces

  • GLFramework\Middleware

Functions

  • array_merge_recursive_ex
  • e
  • file_get_php_classes
  • fix_date
  • fix_date_format
  • fix_decimal
  • fix_url
  • get
  • get_php_classes
  • http_response_code
  • instance_method
  • is_module_enabled
  • now
  • post
  • print_array
  • print_brief_debug
  • print_debug
  • random_str
  • reArrayFiles
  • reArrayPost
  • today
  • Overview
  • Namespace
  • Class
  1: <?php
  2: /**
  3:  * Created by PhpStorm.
  4:  * User: manus
  5:  * Date: 13/1/16
  6:  * Time: 19:28
  7:  */
  8: 
  9: namespace GLFramework\Controller;
 10: 
 11: 
 12: use GLFramework\Controller;
 13: use GLFramework\Events;
 14: use GLFramework\Middleware;
 15: use GLFramework\Model\User;
 16: use GLFramework\Request;
 17: use GLFramework\Response;
 18: 
 19: class AuthController extends Controller implements Middleware
 20: {
 21: 
 22:     private static $session_key = "auth_user";
 23:     /**
 24:      * @var User
 25:      */
 26:     var $user;
 27:     private $requireLogin = true;
 28: 
 29:     public function __construct($base, $module)
 30:     {
 31:         parent::__construct($base, $module);
 32:         if(isset($_SESSION[self::$session_key]))
 33:         {
 34:             $username =  $_SESSION[self::$session_key][0];
 35:             $password =  $_SESSION[self::$session_key][1];
 36:             $user = self::instanceUser(null);
 37:             $user = $user->getByUserPassword($username, $password);
 38:             if($user)
 39:             {
 40:                 $this->user = self::instanceUser($user);
 41:             }
 42:             else{
 43:                 unset($_SESSION[self::$session_key]);
 44:             }
 45:         }
 46:         $this->addMiddleware($this);
 47:     }
 48: 
 49: 
 50:     public function login()
 51:     {
 52:         // TODO: Implement run() method.
 53: 
 54:         if(isset($_GET['logout']))
 55:         {
 56:             $this->addMessage("Se ha desconectado correctamente");
 57:             unset($_SESSION[self::$session_key]);
 58:         }
 59:         if($this->requireLogin)
 60:         {
 61:             if(!isset($_SESSION[self::$session_key]))
 62:             {
 63:                 if(strpos($_SERVER['REQUEST_URI'], "/login") === FALSE)
 64:                 {
 65:                     if(!isset($_GET['logout']))
 66:                         $this->addMessage("Por favor acceda con su cuenta antes de continuar", "warning");
 67:                     $this->quit($this->config['app']['basepath'] . "/login");
 68:                     return false;
 69:                 }
 70:             }
 71:         }
 72:         return true;
 73:     }
 74: 
 75:     public function processLogin($username = null, $password = null, $encrypt = true)
 76:     {
 77:         if($username === null)
 78:             $username = $_POST['username'];
 79:         if($password === null)
 80:             $password = $_POST['password'];
 81:         if(isset($username) && isset($password))
 82:         {
 83:             $this->csrf();
 84:             $user = self::instanceUser(null);
 85:             $db = $this->getDb();
 86:             $username = $db->escape_string($username); // Para evitar inyecciones SQL
 87:             if($encrypt)
 88:                 $password = $user->encrypt($password);
 89:             $user = $user->getByUserPassword($username, $password);
 90:             if($user)
 91:             {
 92:                 $this->user = new User($user);
 93:                 $_SESSION[self::$session_key] = array($username, $password);
 94:                 Events::fire('onLoginSuccess', array('user' => $this->user));
 95:                 $this->redirection("/home");
 96:                 return true;
 97:             }
 98:             else{
 99:                 $this->addMessage("Usuario o contraseƱa incorrecta", "danger");
100:             }
101:         }
102:         return false;
103:     }
104: 
105:     /**
106:      * @return boolean
107:      */
108:     public function isRequireLogin()
109:     {
110:         return $this->requireLogin;
111:     }
112: 
113:     /**
114:      * @param boolean $requireLogin
115:      */
116:     public function setRequireLogin($requireLogin)
117:     {
118:         $this->requireLogin = $requireLogin;
119:     }
120: 
121:     /**
122:      * @param $data
123:      * @return User
124:      */
125:     public static function instanceUser($data = null)
126:     {
127:         if(class_exists("User"))
128:             return new \User($data);
129:         return new User($data);
130:     }
131: 
132:     public function next(Request $request, Response $response, $next)
133:     {
134:         if($this->login())
135:         {
136:             $next($request, $response);
137:         }
138:         // TODO: Implement next() method.
139:     }
140: 
141:     public function run()
142:     {
143:         // Por motivos de compativilidad.
144:         // Lo ideal es que esta clase sea abstracta
145:         return true;
146:     }
147: 
148:     public static function auth($user_id)
149:     {
150:         $user = self::instanceUser($user_id);
151:         $_SESSION[self::$session_key] = array($user->user_name, $user->password);
152:     }
153: }
API documentation generated by ApiGen