techlify-inc/laravel-core-module

此包的最新版本(10.15)没有可用的许可证信息。

由功能模块组成的Laravel核心模块

安装: 3,064

依赖项: 3

建议者: 0

安全性: 0

类型:laravel-module

10.15 2024-09-19 21:51 UTC

This package is auto-updated.

Last update: 2024-09-24 13:15:59 UTC


README

这是Techlify用于项目的核心模块。它包含以下基础:

  • 用户管理
  • 模块管理
  • 客户管理

安装

使用以下命令通过composer安装此包

composer require techlify-inc/laravel-core

运行迁移

$ php artisan migrate

将Rbac特质添加到您的 User 模型中


class User extends Authenticatable
{
    use TechlifyInc\LaravelRbac\Traits\LaravelRbac;
}

用法

角色

创建角色

use \TechlifyInc\LaravelRbac\Models\Role;

$adminRole = Role::create([
    'name' => 'Administrator',
    'slug' => 'admin'
]);

$managerRole = Role::create([
    'name' => 'Manager',
    'slug' => 'manager'
]);

分配和移除角色

您可以将角色简单地分配给用户

use App\Models\User;

$user = User::find(1);
$user->attachRole($adminRole);
//or you can attach using the role slug
$user->attachRole("admin");

同样,如果您想移除角色

$user->detachRole($adminRole);
//or you can remove using the role slug
$user->detachRole("admin");

检查角色

您可以简单地检查用户是否具有角色

use App\Models\User;

$user = User::find(1);
if ($user->hasRole('admin')) {
    
}

权限

创建权限

use \TechlifyInc\LaravelRbac\Models\Permission;

$createPermission = Permission::create([
    'name' => 'Create product',
    'slug' => 'product.create'
]);

$removePermission = Permission::create([
    'name' => 'Delete product',
    'slug' => 'product.remove'
]);

附加和移除权限

您可以将权限附加到角色非常简单

use \TechlifyInc\LaravelRbac\Models\Role;

$adminRole = Role::find(1);
$adminRole->attachPermission($createPermission);
//or you can insert only slug
$adminRole->attachPermission("product.create");

同样,移除权限也是如此

$adminRole->detachPermission($createPermission);
$adminRole->detachPermission("product.create");

检查权限

您可以简单地检查用户是否具有权限

use App\Models\User;

$user = User::find(1);
if ($user->hasPermission('product.create')) {
    
}

// OR for currently logged in user
if (auth()->user()->hasPermission('product.create'))

您还可以使用中间件在路由级别强制执行访问控制;这以多种方式执行。

  1. 使用权限
Route::get("customers", "CustomerController@index")
    ->middleware("TechlifyAccessControl:customer_view");

OR

Route::get("customers", "CustomerController@index")
    ->middleware("TechlifyAccessControl:ps:customer_view");
  1. 使用用户类型
Route::get("customers", "CustomerController@index")
    ->middleware("TechlifyAccessControl:ut:admin");
  1. 使用状态来限制访问
Route::get("customers", "CustomerController@index")
    ->middleware("TechlifyAccessControl:state:logged-in");

用户管理


// Get the set of users
GET api/users

// Get a single user
GET api/users/{id}

// Add a new user
POST api/users

// Update a user record
PATCH api/users/{id}

// Delete a user record
DELETE api/users/{id}

用户密码管理


// Change the current user password
POST api/user/current/update-password {current_password, new_password}

用户会话管理


// Log out the currently logged in user
POST api/user/logout

// Get the User record of the currently logged in user
GET api/user/current

实体文件管理

应用程序内集成了功能强大的动态文件管理器。实体文件就是指它。

配置

// add this variable to your .env file to supply the maximum 
ENTITY_FILE_MAX_UPLOAD_FILE_SIZE=20480 // 20MB
ENTITY_FILE_DISK=....   // Which Disk
ENTITY_FILE_SUB_PATH=....   // Which Disk

该模块通过内置的 <entity-files entityType="'Sale'" entityId="sale.id"></entity-files> angular 组件在 ngx-techlify-core 包中独立工作。