Skip to content

Very easy ACL implementation for Slim Framework 3 when using HTTP Authentication

License

Notifications You must be signed in to change notification settings

conrad10781/slim-middleware-basic-acl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

PSR-7 HTTP Authentication ACL Middleware

This middleware provides a very simple way to implement ACL in a PSR-7 environment.

It has been tested with Slim Framework using the [PSR-7 Basic Auth Middleware] provided by tuupola (https://github.com/tuupola/slim-basic-auth).

Install

Install latest version using composer.

$ composer require rcs_us/slim-middleware-basic-acl

Usage

The middleware accepts two possible parameters.

  1. An array of one or more usernames allowed to access the route. This compares against the value that is ultimately stored in $_SERVER["PHP_AUTH_USER"] | $request->getServerParams()["PHP_AUTH_USER"] .
  2. A callable that can do more complicated comparisons on $_SERVER["PHP_AUTH_USER"] | $request->getServerParams()["PHP_AUTH_USER"] .
$app = new \Slim\App;
// .... implement HTTP Authentication , IE $app->add(new \Slim\Middleware\HttpBasicAuthentication( ... 

// array of usernames
$app->get("/path/of/your/route", "\App\Controller\SomeController:methodToCall")->add(new \Slim\Middleware\HttpBasicACL(["username1", "username2"]));

// callable
$app->get("/path/of/your/route", "\App\Controller\SomeController:methodToCall")->add(new \Slim\Middleware\HttpBasicACL(function ($request, $response) {
    // Some Logic Here Based On $_SERVER["PHP_AUTH_USER"] | $request->getServerParams()["PHP_AUTH_USER"] .
    // Returning false will trigger a 403, true will execute route
    return false;
}));

About

Very easy ACL implementation for Slim Framework 3 when using HTTP Authentication

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages