fighting-pie/symfony-rbac

symfony bundle rbac

Installs: 1

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 1

Forks: 0

Open Issues: 0

Type:symfony-bundle

0.1.0 2020-11-16 06:30 UTC

This package is auto-updated.

Last update: 2024-04-16 13:54:13 UTC


README

Principle explanation:

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require fighting-pie/symfony-rbac "*"

or add

"fighting-pie/symfony-rbac": "*"

to the require section of your composer.json.

Usage

Once the extension is installed, simply modify your application configuration as follows:

Add Routing

#app/config/routes.yml

app_file:
    # loads routes from the given routing file stored in some bundle
    resource: '@SymfonyRbacBundle/Resources/config/routing/routes.yaml'

app_annotations:
    # loads routes from the PHP annotations of the controllers found in that directory
    resource: '@SymfonyRbacBundle/Controller/'
    type:     annotation

app_bundle:
    # loads routes from the YAML, XML or PHP files found in some bundle directory
    resource: '@SymfonyRbacBundle/Resources/config/routing/'
    type:     directory

Rbac Database's configuration (ex)

file of rbac-sql

#app/config/packages/doctrine.yaml

doctrine:
    dbal:
        default_connection: default
        connections:
            default:
              .....
            rbac:
                driver: 'pdo_mysql'
                url: '%env(resolve:DATABASE_RBAC_URL)%'
        # IMPORTANT: You MUST configure your server version,
        # either here or in the DATABASE_URL env var (see .env file)
        #server_version: '5.7'
    orm:
        default_entity_manager: default
        entity_managers:
            default:
              .....
            rbac:
                connection: rbac
                mappings:
                    RbacBundle:
                        is_bundle: true
                        type: annotation
                        dir: 'Entity'
                        prefix: 'SymfonyBundle\SymfonyRbac\Entity'
                        alias: Rbac

Code

  
  use SymfonyRbac\Services\RbacManager;

  private $rbacManager;

  public function __construct(RbacManager $rbacManager) {
    $this->rbacManager = $rbacManager;
    $userId = 31;
    $permissionName = '/admin/user/31';
    $res =  $this->rbacManager->checkAccess($userId,$permissionName,[]);
  }