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
Requires
- php: ^7.1
- doctrine/doctrine-bundle: ^2.1
- doctrine/orm: ^2.7
- knplabs/knp-paginator-bundle: ^5.3
- symfony/config: ^3.4 || ^4.4 || ^5.0
- symfony/dependency-injection: 4.4.*
- symfony/framework-bundle: ^4.3||^5.0
- symfony/http-foundation: ^3.4 || ^4.4 || ^5.0
- symfony/http-kernel: ^3.4 || ^4.4 || ^5.0
- symfony/property-access: ^3.4 || ^4.4 || ^5.0
- symfony/serializer: ^3.4 || ^4.4 || ^5.0
- symfony/uid: ^5.1
- symfony/yaml: ^4.3||^5.0
Requires (Dev)
- doctrine/doctrine-fixtures-bundle: ^3.3
- phpunit/phpunit: ^6.4
- symfony/browser-kit: 4.4.*
- symfony/css-selector: 4.4.*
- symfony/dotenv: 4.4.*
- symfony/maker-bundle: ^1.21
- symfony/phpunit-bridge: ^5.1
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)
#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,[]); }