opportus/authorizer

Provides a simple yet powerful authorization system

v1.0.0 2022-06-06 22:10 UTC

This package is auto-updated.

Last update: 2024-06-07 03:03:23 UTC


README

License Latest Stable Version Latest Unstable Version Build

Index

Introduction

This library provides a generic and standardizable authorization system.

Roadmap

To develop this solution faster, contributions are welcome...

v1.1:

  • Implement property chain access support
  • Implement multiple condition authorization support
  • Implement multiple comparison operators support
  • Implement higher test coverage

Integrations

  • {{ reference_here_your_own_integration }}

Setup

Step 1 - Installation

Open a command console, enter your project directory and execute:

$ composer require opportus/authorizer

Step 2 - Initialization

This library contains 4 services. 3 of them require a single dependency which is another lower level service among those 4:

use Opportus\Authorizer\Authorizer;
use Opportus\Authorizer\ObjectPropertyAccessor\ObjectPropertyAccessor;

$objectPropertyAccessor = new ObjectPropertyAccessor();
$authorizer             = new Authorizer($objectPropertyAccessor);

In order for the authorizer to get properly initialized, each of its services it depends on must be instantiated such as above.

By design, this solution does not provide "helpers" for the instantiation of its own services which is much better handled the way you're already instantiating your own services, with a DIC system or whatever.

Authorization

Concept

An authorization is a use case assigned to an actor of your system.

An authorization is composed of:

  • an operation
  • (on) a resource
  • (under) an optional condition

Example Use Cases

...