alikazemayni/easy_permission

This package is for creating a simple authentication system

v1.0.20 2023-09-03 11:19 UTC

This package is auto-updated.

Last update: 2025-05-15 18:17:20 UTC


README

description : This package is for creating a simple authentication system in laravel

Install package :

  composer require alikazemayni/easy_permission

Publish files :

  php artisan vendor:publish --tag publish-permissions-file

Migrate :

  php artisan migrate

User relation :

public function permissions(): BelongsToMany
{
    $this->belongsToMany(Permission::class, 'user_permission',
        'user_id', 'permissions_id')->withTimestamps();
}

Get all permission and user permission :

    ResponderFacade::setData(
        Permissions::with(
            ['users' => fn($q) => $q->where('user_id' , $request->user_id),'section']
        )
        ->get()
    )->respond();

Sync user permission :

public function user(Request $request): JsonResponse{
    $permissions = User::findOrFail($request->user_id)->permissions();
    $permissions->sync($request->permissions);
}

Add user from role :

    $role_permission = Role::findOrFail($request->role_id)->permissions->pluck('id');
    if ($request->force)
        User::findOrFail($request->user_id)->permissions()
            ->wherePivot('type', 'role')->delete();
    User::findOrFail($request->user_id)->permissions()
        ->syncWithPivotValues($role_permission, ['type' => 'role']);
    Role::findOrFail($request->role_id)->users()->attach($request->user_id);

Remove user from role

    User::findOrFail($request->user_id)->permissions()->wherePivot('type', 'role')->detach();
    Role::findOrFail($request->role_id)->users()
        ->wherePivot('user_id', $request->user_id)->detach();