ricardocrem20 / modu
模块化
dev-main
2022-02-19 01:39 UTC
This package is auto-updated.
Last update: 2024-09-19 07:36:42 UTC
README
模块化具有以下结构
模块
是系统的核心模块。
区域
区域是模块的一部分,是系统结构中更小的部分。
角色
角色分配给用户,并具有分配给模块的权限。
角色类型
角色可以根据其需求进行分类。
权限
根据要分配的区域,将权限分配给用户。
用户
用户需要分配角色和模块,并根据模块权限分配给区域。
安装
此包还需要安装Laravel Passport。
composer require ricardocrem20/modu
配置
- 前往'app/Providers/AuthServiceProvider.php'目录,在'boot'函数中定义以下'Gate'
use App\Models\User;
public function boot()
{
$this->registerPolicies();
if (!$this->app->routesAreCached()) {
Passport::routes();
}
Gate::define('tieneAcceso', function ($user, $permiso) {
return $user->tienePermiso($permiso, $user->id);
});
}
- 前往以下迁移'database/migrations/########_create_users_table.php',应如下所示
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->enum('tipo_identificacion', ['CC', 'TI'])->nullable();
$table->string('identificacion', 15)->unique()->nullable();
$table->string('nombre', 90);
$table->string('nombres', 45)->nullable();
$table->string('apellidos', 45)->nullable();
$table->string('email', 60)->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->string('foto_perfil')
->default('http://modu.test/storage/img/perfiles/default.png');
$table->rememberToken();
$table->timestamps();
});
}
- 在以下目录'app/Models/User.php'中添加
use Ricardo\Modu\Traits\UserTrait;
class User extends Authenticatable
{
use HasApiTokens, HasFactory, Notifiable, UserTrait;
}
- 执行迁移和播种
php artisan migrate --seed
o
php artisan migrate:fres --seed
在数据库中,应该已经创建了数据和一个用户,如下所示
user: ricardo@app.io
password: password
- 执行Passport Laravel并发布storage
php artisan passport:install
php artisan storage:link
如果出现错误,请务必执行
php artisan optimize
实现
在每个需要权限的控制器函数中添加以下内容
Gate::authorize('tieneAcceso', 'slug_del_permiso');
路由必须位于
Route::group(['middleware' => 'auth:api'], function() {
// Routes
}
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。