MCPcopy Create free account
hub / github.com/DeepNotesApp/DeepNotes / userHasPermission

Function userHasPermission

packages/@deeplib/data/src/roles.ts:5–34  ·  view source on GitHub ↗
(
  dataAbstraction: DataAbstraction,
  userId: any,
  groupId: any,
  permission: keyof IGroupRole['permissions'],
)

Source from the content-addressed store, hash-verified

3import type { DataAbstraction } from '@stdlib/data';
4
5export async function userHasPermission(
6 dataAbstraction: DataAbstraction,
7 userId: any,
8 groupId: any,
9 permission: keyof IGroupRole['permissions'],
10) {
11 if (groupId == null) {
12 return false;
13 }
14
15 if (userId != null) {
16 const groupMemberRole = await dataAbstraction.hget(
17 'group-member',
18 `${groupId}:${userId}`,
19 'role',
20 );
21
22 if (rolesMap()[groupMemberRole!]?.permissions[permission]) {
23 return true;
24 }
25 }
26
27 const groupIsPublic = await dataAbstraction.hget(
28 'group',
29 groupId,
30 'is-public',
31 );
32
33 return !!groupIsPublic && permission === 'viewGroupPages';
34}

Callers 15

encrypted-name.tsFile · 0.90
role.tsFile · 0.90
exists.tsFile · 0.90
list.tsFile · 0.90
infos.tsFile · 0.90
encrypted-name.tsFile · 0.90

Calls 1

hgetMethod · 0.45

Tested by

no test coverage detected