igengx
This commit is contained in:
@@ -5,9 +5,11 @@
|
||||
|
||||
namespace app\adminapi\controller;
|
||||
|
||||
use app\adminapi\logic\auth\AuthLogic;
|
||||
use app\common\enum\AdminTerminalEnum;
|
||||
use app\common\enum\YesNoEnum;
|
||||
use app\common\model\auth\Admin;
|
||||
use app\common\model\auth\AdminRole;
|
||||
|
||||
/**
|
||||
* 用最小身份信息把 ZYT 管理员账号映射到客服软件租户。
|
||||
@@ -31,12 +33,23 @@ class DesktopController extends BaseAdminController
|
||||
}
|
||||
|
||||
$admin = Admin::where(['id' => (int)$identity['admin_id']])
|
||||
->field('id,account,name,avatar,disable')
|
||||
->field('id,account,name,avatar,disable,root')
|
||||
->findOrEmpty();
|
||||
if ($admin->isEmpty() || (int)$admin['disable'] === YesNoEnum::YES) {
|
||||
return $this->fail('管理员不存在或已禁用');
|
||||
}
|
||||
|
||||
// 身份和权限在专用接口一次返回,客服后台无需跨 IP 调用网页端 mySelf。
|
||||
$roleIds = array_values(array_unique(array_map('intval',
|
||||
AdminRole::where('admin_id', (int)$admin['id'])->column('role_id')
|
||||
)));
|
||||
sort($roleIds);
|
||||
$permissions = AuthLogic::getBtnAuthByRoleId([
|
||||
'id' => (int)$admin['id'],
|
||||
'root' => (int)$admin['root'],
|
||||
'role_id' => $roleIds,
|
||||
]);
|
||||
|
||||
$account = trim((string)$admin['account']);
|
||||
$name = trim((string)$admin['name']);
|
||||
return $this->data([
|
||||
@@ -50,6 +63,9 @@ class DesktopController extends BaseAdminController
|
||||
'expire_time' => (int)($identity['expire_time'] ?? 0),
|
||||
'status' => 'active',
|
||||
'account_type' => 'admin',
|
||||
'root' => (int)$admin['root'] === YesNoEnum::YES,
|
||||
'role_ids' => $roleIds,
|
||||
'permissions' => array_values($permissions),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user