2017 © Pedro Peláez
 

library authorizationservice

Servicio de autorizacion de usuarios y sectores.

image

poweronsystem/authorizationservice

Servicio de autorizacion de usuarios y sectores.

  • Friday, July 28, 2017
  • by sosalucas87
  • Repository
  • 0 Watchers
  • 0 Stars
  • 2 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 100 % Grown

The README.md

PowerOn System - AuthorizationService

Servicio de autorización de usuarios, inicio, cierre, pausa y resumen de sesión., (*1)

Instalación vía Composer

Podés instalar AuthorizationService vía Composer a través de la consola:, (*2)

``` bash $ composer require poweronsystem/authorizationservice, (*3)

## Requisitos

* PHP >= 5.4
* poweronsystem/utility: "^0.1.3"

## Uso

### Instancia y configuración
Creación de la clase y configuración básica de la misma

``` php
//Autoload composer
require '/vendor/autoload.php';

//Configuración del autenticador (Ver archivo src/Authorization.php)
$config =  [
  'login_session_time' => 7200,
  'login_session_inactive_time' => 3600
];

//Establecemos los permisos para los sectores
$permissions = [];

//Creamos una instancia del autorizador
$auth = new PowerOn\Authorization\Authorization($config, $permissions);

Ejemplo de autenticación de usuarios

Adaptador de sesiones

Adaptador de ejemplo ``` php, (*4)

namespace App;, (*5)

use PowerOn\Database\Model; use PowerOn\Authorization\AuthorizationAdapterInterface; use PowerOn\Authorization\UserCredentials;, (*6)

public class MyAdapter implements AuthorizationAdapterInterface { private $db;, (*7)

public function __construct($database) {
    $this->db = $database;
}

public function login(UserCredentials $credentials) {
    /* Lógica de comprobación de usuario ...
     * Lógica de Password Hasher personalizada ...
     * $user = $db->getUser($credentials->username, $credentials->password);
     * ...
     */

    //Si es inválido retorna FALSE

    //Si es correcto devuelve las credenciales con los datos del usuario que se deseen cargar
    $credentials->setUserData($user);

    //Se establece el nivel de acceso del usuario
    $credentials->setUserAccessLevel($user['access_level']);

    //Otra lógica adicional antes de finalizar...

    return $credentials;
}

public function logout() {
    return TRUE;
}

public function pauseSession() {
    return TRUE;
}

public function resumeSession() {
    return TRUE;
}

}, (*8)

Registrar adaptador a la clase

``` php
//Base de datos requerida por el adaptador de ejemplo
$database = new PDO();

//Instancia del adaptador
$adapter = new App\MyAdapter($database);

//Registro del adaptador
$auth->registerAdapter($adapter);

Inicio de sesión

``` php //Credenciales obtenidas de un formulario $credentals = new PowerOn\Authorization\UserCredentials($_POST['username'], $_POST['password']); try { $auth->login($login_credentials); //Login success, (*9)

echo $auth->getStatus(); //ok, (*10)

} catch (PowerOn\Authorization\AuthorizationException $e) { //Lógica de excepciones, (*11)

echo $auth->getStatus(); //user_not_found | user_error }, (*12)

#### Cierre de sesión

``` php
$auth->logout();

echo $auth->getStatus(); //user_not_found

Pausa

``` php $auth->pause();, (*13)

echo $auth->getStatus(); //paused var_dump($auth->isValid()); //bool(false), (*14)


#### Resumen ``` php $auth->resume(); echo $auth->getStatus(); //ok echo $auth->getUserCredentials->getSessionInactiveTime(); //120 var_dump($auth->isValid()); //bool(true)

Ejemplo de authorización de sectores

Ejemplo básico para la validación de sectores, (*15)

Configuración de permisos

``` php //Establecemos los permisos para los sectores de la siguiente manera $permissions = [ //La url "/home" require un nivel de acceso básico de 1 '/home' => ['access_level' => 1],, (*16)

//Cualquier sector referente a "/admin" requerirá un nivel de acceso de 10 o superior '/admin/*' => ['access_level' => 10],, (*17)

//En este ejemplo solo permitimos el acceso a "/account/new-password" para que el usuario cambie su contraseña //solo en caso que haya transcurrido más de un dia desde la última modificación. '/account/new-password => ['allowed' => function(\PowerOn\Authorization\UserCredentials $userCredentials) { return (time() - $userCredentials['last_password_request_time']) > 86400; }] ];, (*18)

//Creamos una instancia del autorizador $auth = new PowerOn\Authorization\Authorization($config, $permissions);, (*19)


#### Ejecución de validación de permisos de sectores ``` php //Clase Request genérica de ejemplo $request = new \App\MyRequestClass(); //Url obtenida de una clase request $url = $request->getUrl(); //Otros archivos adicionales a pasar en la función callable del array de permisos con la clave "allowed" $otherFile = new \App\SomeClass(); $result = $auth->sector($url, $request, $otherFile); var_dump($result); //bool(false) | bool(true) echo $auth->getStatus(); //sector_low_access_level | sector_not_allowed

The Versions

28/07 2017

dev-master

9999999-dev https://github.com/poweronsystem/authorizationservice

Servicio de autorizacion de usuarios y sectores.

  Sources   Download

GPL

The Requires

 

The Development Requires

user auth login

28/07 2017

v0.1.0

0.1.0.0 https://github.com/poweronsystem/authorizationservice

Servicio de autorizacion de usuarios y sectores.

  Sources   Download

GPL

The Requires

 

The Development Requires

user auth login