1. Go to this page and download the library: Download winavin/permissions library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
use Winavin\Permissions\Traits\HasRolesAndPermissions;
class User extends Authenticatable
{
use HasRolesAndPermissions;
public function permissions(): array
{
return match ($this) {
self::ADMINISTRATOR => [
TeamNamePermission::VIEW,
TeamNamePermission::CREATE,
TeamNamePermission::UPDATE,
TeamNamePermission::DELETE,
],
default => [];
};
}
// Without Teams Model
$user->assignRole($role);
//OR
$user->addRole($role);
//////////////
$user->assignPermission($permission);
// OR
$user->addPermission($permission);
// With Teams Model
$user->assignRole($role, $team);
$user->addRole($role, $team);
$user->assignPermission($permission, $team);
$user->addPermission($permission, $team);
// Without Teams Model
$user->hasRole($role); // true or false
$user->hasPermission($permission); // true or false
// With Teams Model
$user->hasRole($role, $team); // true or false
$user->hasPermission($permission, $team); // true or false
$user->isAbleTo($permission);
// Check if user has ANY of the given roles
$user->hasAnyRole([$role1, $role2]);
$user->hasAnyRole([$role1, $role2], $team);
// Check if user has ALL of the given roles
$user->hasAllRoles([$role1, $role2]);
$user->hasAllRoles([$role1, $role2], $team);
// Check if user has ANY of the given permissions
$user->hasAnyPermission([$permission1, $permission2]);
$user->hasAnyPermission([$permission1, $permission2], $team);
// Check if user has ALL of the given permissions
$user->hasAllPermissions([$permission1, $permission2]);
$user->hasAllPermissions([$permission1, $permission2], $team);
// Get all roles assigned to the user
$user->roles();
$user->roles($team);
// Get all permissions (both direct and through roles)
$user->permissions();
$user->permissions($team);
// Get only directly assigned permissions
$user->directPermissions();
$user->directPermissions($team);
// Get permissions that are inherited through assigned roles
$user->permissionsThroughRoles();
$user->permissionsThroughRoles($team);
// Get all distinct teams the user is assigned a role in
$user->teams();
// Without Teams Model
$user->syncRoles($rolesArray);
$user->syncPermissions($permissionsArray);
// With Teams Model
$user->syncRoles($rolesArray, $team);
$user->syncPermissions($permissionsArray, $team);