MCPcopy Create free account
hub / github.com/bytebase/bytebase / isWorksheetReadableV1

Function isWorksheetReadableV1

frontend/src/utils/v1/worksheet.ts:19–44  ·  view source on GitHub ↗
(sheet: Worksheet)

Source from the content-addressed store, hash-verified

17// PROJECT_WRITE: workspace Owner/DBA and all members in the project.
18// PROJECT_READ: workspace Owner/DBA and all members in the project.
19export const isWorksheetReadableV1 = (sheet: Worksheet) => {
20 const currentUser = getCurrentUserV1();
21
22 if (extractUserEmail(sheet.creator) === currentUser.email) {
23 // Always readable to the creator
24 return true;
25 }
26
27 if (hasWorkspacePermissionV2("bb.worksheets.manage")) {
28 return true;
29 }
30
31 switch (sheet.visibility) {
32 case Worksheet_Visibility.PRIVATE:
33 return false;
34 case Worksheet_Visibility.PROJECT_READ:
35 case Worksheet_Visibility.PROJECT_WRITE: {
36 const projectV1 = getProjectByName(sheet.project);
37 if (projectV1.name === UNKNOWN_PROJECT_NAME) {
38 return false;
39 }
40 return hasProjectPermissionV2(projectV1, "bb.worksheets.get");
41 }
42 }
43 return false;
44};
45
46// writable to
47// PRIVATE: workspace Owner/DBA and the creator only.

Callers 2

switchWorksheetFunction · 0.90
openWorksheetByNameFunction · 0.90

Calls 5

getCurrentUserV1Function · 0.90
extractUserEmailFunction · 0.90
hasWorkspacePermissionV2Function · 0.90
getProjectByNameFunction · 0.90
hasProjectPermissionV2Function · 0.90

Tested by

no test coverage detected