findById($user->admin_role); $root = $role->id == RoleModel::ROLE_ROOT; $authInfo = [ 'id' => $user->id, 'name' => $user->name, 'routes' => $role->routes, 'root' => $root, ]; $authKey = $this->getAuthKey(); $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); if (!$authInfo) return null; return new Collection($authInfo); } 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; } }