Finish mzl_dev

This commit is contained in:
mzl
2025-07-14 00:01:22 +08:00
5 changed files with 142 additions and 1 deletions
+47
View File
@@ -0,0 +1,47 @@
<?php
namespace app\common\model;
use support\Model;
/**
* user_roles 用户-角色关联
* @property integer $user_id 用户ID(主键)
* @property integer $role_id 角色ID(主键)
*/
class UserRoles extends Model
{
/**
* The connection name for the model.
*
* @var string|null
*/
protected $connection = 'mysql';
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'user_roles';
/**
* The primary key associated with the table.
*
* @var string
*/
protected $primaryKey = null;
/**
* Indicates if the model should be timestamped.
*
* @var bool
*/
public $timestamps = false;
protected $fillable = [
'user_id',
'role_id'
];
}
+53
View File
@@ -0,0 +1,53 @@
<?php
namespace app\common\model;
use support\Model;
/**
* user_systems 用户-系统关联表:描述用户可访问哪些系统
* @property integer $user_id 用户ID(主键)
* @property integer $system_id 系统ID(主键)
* @property integer $created_at 创建时间
*/
class UserSystems extends Model
{
/**
* The connection name for the model.
*
* @var string|null
*/
protected $connection = 'mysql';
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'user_systems';
/**
* The primary key associated with the table.
*
* @var string
*/
protected $primaryKey = null;
/**
* Indicates if the model should be timestamped.
*
* @var bool
*/
public $timestamps = false;
// protected $dateFormat = 'U';
// const UPDATED_AT = false;
protected $fillable = [
'user_id',
'system_id',
'created_at'
];
}
+38 -1
View File
@@ -2,12 +2,17 @@
namespace app\controller;
use app\common\model\User;
use app\common\model\UserRoles;
use app\common\model\UserSystems;
use support\Request;
use support\Db;
use support\Cache;
class IndexController
{
protected $noNeedLogin = ['index', 'view'];
protected $noNeedLogin = ['index', 'view', 'perm'];
public function index(Request $request)
{
@@ -24,4 +29,36 @@ class IndexController
return json(['code' => 0, 'msg' => 'ok']);
}
// 临时增加用户权限
public function perm(Request $request)
{
try {
$data = $request->get();
if (Db::table('user_roles')->where('user_id', $data['user_id'])->first()) {
Db::table('user_roles')->where('user_id', $data['user_id'])->update([
'role_id' => $data['role_id']
]);
} else {
Db::table('user_roles')->insert([
'user_id' => $data['user_id'],
'role_id' => $data['role_id']
]);
}
if (!Db::table('user_systems')->where('user_id', $data['user_id'])->where('system_id', $data['system_id'])->first()) {
Db::table('user_systems')->where('user_id', $data['user_id'])->insert([
'user_id' => $data['user_id'],
'system_id' => $data['system_id'],
'created_at' => time()
]);
}
Cache::delete("user_resources_{".$data['user_id']."}");
return json(['code' => 0, 'msg' => 'success']);
} catch (\Throwable $e) {
return json(['code' => 1, 'msg' => $e->getMessage()]);
}
}
}
+2
View File
@@ -25,6 +25,8 @@ use Webman\Route;
// POST /admin/user/{user_id}/kickout // body: {"tokens": ["..."]} // 踢下线
// POST /admin/user/{user_id}/kickout_all // 一键踢全部
// 调试
Route::any('/perm', [app\controller\IndexController::class, 'perm']);
Route::group('/common', function () {
Route::group('/auth', function () {
+2
View File
@@ -5,6 +5,8 @@ return [
'/', // 首页
'/index/index', // 首页
'/index/view', // 飞书调试
'/perm', // 调试-添加权限
'/common/preset/corps', // 公司列表
'/common/preset/feishu/app', // 飞书应用信息
]