Skip to content

Commit 9b7d2b5

Browse files
committed
[dashboard, server] use maySetTimeout
1 parent f242605 commit 9b7d2b5

File tree

5 files changed

+8
-15
lines changed

5 files changed

+8
-15
lines changed

components/dashboard/src/user-settings/Preferences.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export default function Preferences() {
4242
const [allowConfigureWorkspaceTimeout, setAllowConfigureWorkspaceTimeout] = useState<boolean>(false);
4343
useEffect(() => {
4444
getGitpodService()
45-
.server.supportConfigureWorkspaceTimeout()
45+
.server.maySetTimeout()
4646
.then((r) => setAllowConfigureWorkspaceTimeout(r));
4747
}, []);
4848

components/gitpod-protocol/src/gitpod-service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
313313
getNotifications(): Promise<AppNotification[]>;
314314

315315
getSupportedWorkspaceClasses(): Promise<SupportedWorkspaceClass[]>;
316-
supportConfigureWorkspaceTimeout(): Promise<boolean>;
316+
maySetTimeout(): Promise<boolean>;
317317
updateWorkspaceTimeoutSetting(setting: Partial<WorkspaceTimeoutSetting>): Promise<void>;
318318
}
319319

components/server/ee/src/workspace/gitpod-server-impl.ts

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,7 @@ export class GitpodServerEEImpl extends GitpodServerImpl {
411411
await this.requireEELicense(Feature.FeatureSetTimeout);
412412
const user = this.checkUser("setWorkspaceTimeout");
413413

414-
if (!(await this.maySetTimeout(user))) {
414+
if (!(await this.entitlementService.maySetTimeout(user, new Date()))) {
415415
throw new ResponseError(ErrorCodes.PLAN_PROFESSIONAL_REQUIRED, "Plan upgrade is required");
416416
}
417417

@@ -455,7 +455,7 @@ export class GitpodServerEEImpl extends GitpodServerImpl {
455455

456456
const user = this.checkUser("getWorkspaceTimeout");
457457

458-
const canChange = await this.maySetTimeout(user);
458+
const canChange = await this.entitlementService.maySetTimeout(user, new Date());
459459

460460
const workspace = await this.internalGetWorkspace(workspaceId, this.workspaceDb.trace(ctx));
461461
const runningInstance = await this.workspaceDb.trace(ctx).findRunningInstance(workspaceId);
@@ -494,13 +494,6 @@ export class GitpodServerEEImpl extends GitpodServerImpl {
494494
return PrebuiltWorkspace.isDone(pws);
495495
}
496496

497-
/**
498-
* gitpod.io Extension point for implementing eligibility checks. Throws a ResponseError if not eligible.
499-
*/
500-
protected async maySetTimeout(user: User): Promise<boolean> {
501-
return this.entitlementService.maySetTimeout(user, new Date());
502-
}
503-
504497
public async controlAdmission(ctx: TraceContext, workspaceId: string, level: "owner" | "everyone"): Promise<void> {
505498
traceAPIParams(ctx, { workspaceId, level });
506499
traceWI(ctx, { workspaceId });

components/server/src/auth/rate-limiter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ const defaultFunctions: FunctionsConfig = {
232232
setUsageLimit: { group: "default", points: 1 },
233233
getNotifications: { group: "default", points: 1 },
234234
getSupportedWorkspaceClasses: { group: "default", points: 1 },
235-
supportConfigureWorkspaceTimeout: { group: "default", points: 1 },
235+
maySetTimeout: { group: "default", points: 1 },
236236
updateWorkspaceTimeoutSetting: { group: "default", points: 1 },
237237
};
238238

components/server/src/workspace/gitpod-server-impl.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -499,8 +499,8 @@ export class GitpodServerImpl implements GitpodServerWithTracing, Disposable {
499499
return user;
500500
}
501501

502-
public async supportConfigureWorkspaceTimeout(ctx: TraceContext): Promise<boolean> {
503-
const user = this.checkUser("supportConfigureWorkspaceTimeout");
502+
public async maySetTimeout(ctx: TraceContext): Promise<boolean> {
503+
const user = this.checkUser("maySetTimeout");
504504
await this.guardAccess({ kind: "user", subject: user }, "get");
505505

506506
return await this.entitlementService.maySetTimeout(user, new Date());
@@ -515,7 +515,7 @@ export class GitpodServerImpl implements GitpodServerWithTracing, Disposable {
515515
WorkspaceTimeoutDuration.validate(setting.workspaceTimeout);
516516
}
517517

518-
const user = this.checkUser("updateWorkspaceTimeoutSetting");
518+
const user = this.checkAndBlockUser("updateWorkspaceTimeoutSetting");
519519
await this.guardAccess({ kind: "user", subject: user }, "update");
520520

521521
if (!(await this.entitlementService.maySetTimeout(user, new Date()))) {

0 commit comments

Comments
 (0)