mkinyua53/authorization

为 larapacks/authorization 包添加功能的包

v1.0.0 2020-12-14 11:42 UTC

This package is auto-updated.

Last update: 2024-09-14 19:31:32 UTC


README

此包返回 larapacks\authorization 包的所有可能的路由。您需要在您的laravel项目中先配置该包。

安装

使用composer

composer require mkinyua53/authorization

将服务提供者在 config\app.php 的 providers 数组中插入。

  Mkinyua53\Authorization\AuthorizationServiceProvider::class,

用法

\App\User

public function roles()
{
    return $this->belongsToMany(Role::class);
}

public function permissions()
{
    return $this->belongsToMany(Permission::class);
}

\App\Role

public function users()
{
    return $this->belongsToMany(User::class);
}

public function permissions()
{
    return $this->belongsToMany(Permission::class);
}

\App\Permission

public function roles()
{
    return $this->belongsToMany(Role::class);
}

public function users()
{
    return $this->belongsToMany(User::class);
}

在服务提供者的注册函数中插入路由声明

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        \Mkinyua53\Authorization\Authorization::routes();
    }
}

以下路由将被添加

Route::group(['namespace' => '\Mkinyua53\Authorization'], function () {
    Route::resource('roles', 'RoleController', ['except' => ['create', 'edit']]);
    Route::resource('permissions', 'PermissionController', ['except' => ['create', 'edit']]);

    Route::post('roles/{role}/users/{user}/attach', 'RoleController@attachUser');
    Route::post('roles/{role}/permissions/{permission}/attach', 'RoleController@attachPermission');
    Route::post('roles/{role}/users/{user}/detach', 'RoleController@detachUser');
    Route::post('roles/{role}/permissions/{permission}/detach', 'RoleController@detachPermission');
    Route::post('roles/users/{user}/detach', 'RoleController@detachUserAll');
    Route::post('roles/permissions/{permission}/detach', 'RoleController@detachPermissionAll');

    Route::post('permissions/{permission}/users/{user}/attach', 'PermissionController@attachUser');
    Route::post('permissions/{permission}/users/{user}/detach', 'PermissionController@detachUser');
    Route::post('permissions/users/{user}/detach', 'PermissionController@detachUserAll');
});

注意

  1. 此包针对在API中使用进行了优化,未提供视图

摘要