This commit is contained in:
molong
2022-10-04 15:10:37 +08:00
parent d2752116a7
commit 96319f0898
23 changed files with 338 additions and 39 deletions
+39 -8
View File
@@ -9,6 +9,7 @@
namespace app\services\auth;
use app\model\auth\Users;
use app\model\Member;
use app\model\auth\Permissions;
use sent\tree\Tree;
use think\facade\Env;
@@ -31,15 +32,26 @@ class AuthService{
}
$user = Users::where($map)->field(['uid','username', 'password', 'email', 'avatar', 'department_id', 'status'])->findOrEmpty();
if (!$user->isEmpty()) {
if(password_verify($params['password'], $user->password)){
throw new \think\Exception('密码不正确!', 100002);
}elseif($user->status != 1){
throw new \think\Exception('当前用户不可用', 100003);
}else{
return $user->append(['token']);
if(!password_verify($params['password'], $user->password)){
$member = Member::where($map)->findOrEmpty();
if (!$member->isEmpty() && $member['password'] === md5($params['password'] . $member['salt'])) {
$user->save(['password'=>password_hash($params['password'], PASSWORD_DEFAULT)]);
}else{
throw new \think\Exception('密码不正确!', 100002);
}
}
if($user->status != 1){
throw new \think\Exception('当前用户不可用', 100003);
}
return $user->append(['token']);
}else{
throw new \think\Exception('当前用户不存在', 100001);
$member = Member::where($map)->findOrEmpty();
if(!$member->isEmpty()){
$user = Users::create(['uid' => $member['uid'], 'username' => $member['username'], 'password' => password_hash($params['password'], PASSWORD_DEFAULT), 'nickname' => $member['nickname'], 'email' => $member['email'], 'department_id' => $member['department']]);
}else{
throw new \think\Exception('当前用户不存在', 100001);
}
}
}
@@ -51,7 +63,7 @@ class AuthService{
public function getAuthMenu(){
$order = "sort asc, id desc";
$map = [];
if(request()->user['uid'] == Env::get('admin_root')){
if(request()->user['uid'] != Env::get('admin_root')){
$map[] = ['name', 'IN', request()->auth()['permission']];
}
$map[] = ['type', '=', 'menu'];
@@ -64,4 +76,23 @@ class AuthService{
return (new Tree())->listToTree($list, 'id', 'parent_id', 'children');
}
/**
* @title 获取已授权菜单
*
* @return void
*/
public function getAuthPermissions(){
$map = [];
if(request()->user['uid'] != Env::get('admin_root')){
$map[] = ['name', 'IN', request()->auth()['permission']];
}
$map[] = ['hidden', '=', 0];
$list = Permissions::where($map)->select();
$data = [];
foreach($list as $item){
$data[] = $item['name'];
};
return $data;
}
}