creode/permissions-seeder

Exposes a simple permission seeder class that aids in creation of roles and permissions.

1.1.0 2024-10-24 14:34 UTC

This package is auto-updated.

Last update: 2024-12-24 14:47:00 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Exposes a simple permission seeder class that aids in creation of roles and permissions.

Installation

You can install the package via composer:

composer require creode/permissions-seeder

Usage

The getPermissions() function

This is a function used to return an array of permissions to create. By default it uses the following but of course can be overridden in child classes.

protected function getPermissions(): array {
    return [
        'viewAny',
        'view',
        'update',
        'create',
        'delete',
        'destroy',
    ];
}

The getPermissionGroup() function

This is an abstract function used to determine the type of resource to create permissions for. It should return a string for example "Asset". This is used to be appended to the end of the permission name for instance "viewAnyAsset" or "deleteAsset". It also is used to determine the name of the role to create.

protected function getPermissionGroup(): string {
    return 'Asset';
}

The getRoleName() function

This is a function used to return the name of the role to create. By default it uses the following but of course can be overridden in child classes. It defaults to the following but can be overridden in child classes:

protected function getRoleName(): string {
    return strtolower($this->getPermissionGroup().'-manager');
}

Properties

This class exposes the following properties that can be used to override the default behaviour:

/** Determines if we should give super admin permissions to this group. */
protected $giveSuperAdminPermissions = true;

/** Determines if we should create a role for this group. */
protected $shouldCreateRole = true;

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.