PHPackages                             ggbb/symfony-user-permission - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. ggbb/symfony-user-permission

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

ggbb/symfony-user-permission
============================

The permissions system for users in symfony

v0.0.1(1y ago)054MITPHPPHP &gt;=8.1

Since Nov 15Pushed 1y ago1 watchersCompare

[ Source](https://github.com/devggbb/symfony-user-permission)[ Packagist](https://packagist.org/packages/ggbb/symfony-user-permission)[ RSS](/packages/ggbb-symfony-user-permission/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (7)Versions (2)Used By (0)

SymfonyUserPermission
=====================

[](#symfonyuserpermission)

This bundle extends the capabilities of the standard Symfony security mechanism by adding custom access rights for roles.

Installation
------------

[](#installation)

Installation from composer

```
composer require ggbb/symfony-user-permission
```

config/packages/ggbb\_user\_permission.yaml

```
ggbb_user_permission:
  entity:
    user: App\Entity\User
    user_role: App\Entity\UserRole
  mapping:
    permissions_dir: '%kernel.project_dir%/src/Permission'
    namespace: App\Permission
```

config/packages/security.yaml

```
security:
  providers:
    users:
      id: ggbb.user_permission.user_provider
  access_decision_manager:
    strategy: unanimous
  # ...
```

.../UserRepository.php

```
class UserRepository extends ServiceEntityRepository implements PasswordUpgraderInterface, UserLoaderInterface
{
    use UserRoleUserLoaderTrait;
    ...
}
```

.../User.php

```
class User implements UserInterface, UserRoleFieldInterface
{
    use GetRolesMethodTrait;
    ...
}
```

.../UserRole.php

```
namespace App\Entity;

#[ORM\Entity(repositoryClass: UserRoleRepository::class)]
class UserRole implements UserRoleInterface
{
    use RoleFieldTrait;
    use RolePermissionFieldTrait;
    ...
}
```

Using
-----

[](#using)

### Creating and assigning default roles for users

[](#creating-and-assigning-default-roles-for-users)

```
php bin/console role:create-default-user-role
```

### Application in the controller

[](#application-in-the-controller)

```
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;

class YourController extends AbstractController
{
    public function yourAction(): Response
    {
        if ($this->isGranted('ROLE_ADMIN')) {
            // ...
        }

        $object = ...;
        if ($this->isGranted('EDIT', $object)) {
            // ...
        }

        return new Response('...');
    }
}
```

### Usage in the api-platform

[](#usage-in-the-api-platform)

```
#[Patch(
    security: "is_granted('PostPermission::EDIT') or is_granted('PostPermission::MY_EDIT', object.getAddedByUser())",
)]
class Post
{
    // ...
}
```

### Creating permissions

[](#creating-permissions)

.../src/Permission/MyPermission.php

```
