header(self::TOKEN_HEADER); if ($token != null && $token != "") { $data = JwtHelper::decode($token); if ($data != null) { $user_id = $data[LuticateUsersBusiness::KEY_USER_ID]; $salt = $data[LuticateUsersBusiness::KEY_SALT]; $user = LuticateUsersBusiness::getById($user_id); if ($user->getSalt() != $salt) { $user = null; } } } if (is_null($user)) { if ($token != null && $token != "") { abort(401, "Invalid token"); } $user = LuticateUsersBusiness::getById(0); } LuticateBusiness::setCurrentUser($user); LuBusiness::$parameters["_user"] = $user; $permissions[] = LuticatePermissions::USER_LOGIN; foreach ($permissions as $permission) { try { $perm = LuticatePermissionsBusiness::getEffectivePermission($user->getId(), $permission); if (!$perm->getValue()) { abort(401, "Permission denied"); } } catch (\Exception $e) { abort(401, "Permission denied"); } } return $next($request); } }