1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-26 20:52:44 +08:00
xiaochong0302 43adee9ceb 1.重写view provider,数组赋值自动转对象
2.重写response provider,优化json输出格式
2020-04-25 18:36:32 +08:00

70 lines
1.3 KiB
PHP

<?php
namespace App\Services\Auth;
use App\Models\Role as RoleModel;
use App\Models\User as UserModel;
use App\Repos\Role as RoleRepo;
use App\Services\Auth as AuthService;
class Admin extends AuthService
{
public function saveAuthInfo(UserModel $user)
{
$roleRepo = new RoleRepo();
$role = $roleRepo->findById($user->admin_role);
$root = $role->id == RoleModel::ROLE_ROOT ? 1 : 0;
$authKey = $this->getAuthKey();
$authInfo = [
'id' => $user->id,
'name' => $user->name,
'routes' => $role->routes,
'root' => $root,
];
$this->session->set($authKey, $authInfo);
}
public function clearAuthInfo()
{
$authKey = $this->getAuthKey();
$this->session->remove($authKey);
}
public function getAuthInfo()
{
$authKey = $this->getAuthKey();
$authInfo = $this->session->get($authKey);
return $authInfo ?: null;
}
public function getAuthKey()
{
return 'admin_auth_info';
}
public function hasPermission($route)
{
$authUser = $this->getAuthInfo();
if ($authUser['root']) {
return true;
}
if (in_array($route, $authUser['routes'])) {
return true;
}
return false;
}
}