Skip to content

Commit 8ddb52e

Browse files
authored
Add project context to analytics access verification (#1855)
Fixes OPS-3446.
1 parent e5645d4 commit 8ddb52e

File tree

4 files changed

+12
-3
lines changed

4 files changed

+12
-3
lines changed

packages/server/api/src/app/authentication/analytics-authentication-service.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,12 @@ export const analyticsAuthenticationService = {
1414

1515
async authenticateAnalyticsRequest(
1616
userId: string,
17+
projectId: string,
1718
): Promise<AnalyticsAuthTokens> {
18-
await getAnalyticsAccessService().verifyUserAnalyticsAccess(userId);
19+
await getAnalyticsAccessService().verifyUserAnalyticsAccess(
20+
userId,
21+
projectId,
22+
);
1923
const authTokens = await authenticateOpenOpsAnalyticsAdmin();
2024

2125
return authTokens;

packages/server/api/src/app/authentication/analytics/access-service-factory.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import { analyticsAccessService } from './access-service';
22

33
export type AnalyticsAccessService = {
4-
verifyUserAnalyticsAccess(openopsUserId: string): Promise<void> | void;
4+
verifyUserAnalyticsAccess(
5+
openopsUserId: string,
6+
projectId: string,
7+
): Promise<void> | void;
58
};
69

710
export const getAnalyticsAccessService = (): AnalyticsAccessService => {
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* eslint-disable @typescript-eslint/no-empty-function */
22

33
export const analyticsAccessService = {
4-
verifyUserAnalyticsAccess(_: string): void {},
4+
verifyUserAnalyticsAccess(openopsUserId: string, projectId: string): void {},
55
};

packages/server/api/src/app/authentication/authentication.controller.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ export const authenticationController: FastifyPluginAsyncTypebox = async (
6767
const { access_token } =
6868
await analyticsAuthenticationService.authenticateAnalyticsRequest(
6969
request.principal.id,
70+
request.principal.projectId,
7071
);
7172

7273
const embedId =
@@ -84,6 +85,7 @@ export const authenticationController: FastifyPluginAsyncTypebox = async (
8485
const { access_token } =
8586
await analyticsAuthenticationService.authenticateAnalyticsRequest(
8687
request.principal.id,
88+
request.principal.projectId,
8789
);
8890

8991
const guestToken =

0 commit comments

Comments
 (0)