ujjwal/user-rbac

A Zend Framework 2 module to easily integrate ZfcUser and ZfcRbac

0.1.1 2014-04-05 09:48 UTC

This package is auto-updated.

Last update: 2024-04-13 13:09:40 UTC


README

Master Branch Build Status Latest Stable Version Latest Unstable Version Total Downloads Scrutinizer Code Coverage

A Zend Framework 2 module to easily integrate ZfcUser and ZfcRbac

Are your tired of doing tedious work of integrating ZfcUser and ZfcRbac again and again? Then, you are in the right place. This module comes to save us. This module, simply, gets roles of a user from the database and passes it to the ZfcRbac. You only need to focus on the domain logic of your application. No more repetive tasks.

Features

  1. No need to write code for integrating ZfcUser and ZfcRbac
  2. A user`s roles are easily retrievable from the database
  3. Addition of SmartRedirectStrategy

Installation

  • Add "ujjwal/user-rbac": "0.1.*", to your composer.json and run php composer.phar update
  • Import the schema in data/mysql.sql
  • Enable this module in config/application.config.php
  • Copy file located in vendor/ujjwal/user-rbac/config/user-rbac.global.php to ./config/autoload/user-rbac.global.php and change the values as you wish

What it does

This module registers an identity provider and provides some configuration to ZfcRbac. So, you don't need to create your own identity provider. See config/module.config.php.

How it works

It gets a user's roles from the table user_role_linker and passes the roles to ZfcRbac. This module is best suited when you use ZfcRbac\Role\InMemoryRoleProvider as role provider.

Options

Check the options available in vendor/ujjwal/user-rbac/config/user-rbac.global.php.

SmartRedirectStrategy

This module comes with a new strategy called SmartRedirectStrategy. This simply redirects to ZfcUser's login page or route, zfcuser/login only when the user is unauthenticated. Otherwise, it shows a 403 error page!

Usage

public function onBootstrap(EventInterface $e)
{
    $t = $e->getTarget();

    $t->getEventManager()->attach(
        $t->getServiceManager()->get('UserRbac\View\Strategy\SmartRedirectStrategy')
    );
}

Known Limitation

This module is only ideal for small and meduim web sites as a quick and easy way. For complicated use cases, it may not suit your need.