@@ -14,121 +14,7 @@ import {
1414 multiSession ,
1515 organization ,
1616} from 'better-auth/plugins' ;
17- import { createAccessControl } from 'better-auth/plugins/access' ;
18- import {
19- defaultStatements ,
20- adminAc ,
21- ownerAc ,
22- } from 'better-auth/plugins/organization/access' ;
23-
24- // ============================================================================
25- // Permissions (inlined from @comp/auth to avoid cross-package TS compilation)
26- // ============================================================================
27-
28- const statement = {
29- ...defaultStatements ,
30- organization : [ 'read' , 'update' , 'delete' ] ,
31- control : [ 'create' , 'read' , 'update' , 'delete' , 'assign' , 'export' ] ,
32- evidence : [ 'create' , 'read' , 'update' , 'delete' , 'upload' , 'export' ] ,
33- policy : [ 'create' , 'read' , 'update' , 'delete' , 'publish' , 'approve' ] ,
34- risk : [ 'create' , 'read' , 'update' , 'delete' , 'assess' , 'export' ] ,
35- vendor : [ 'create' , 'read' , 'update' , 'delete' , 'assess' ] ,
36- task : [ 'create' , 'read' , 'update' , 'delete' , 'assign' , 'complete' ] ,
37- framework : [ 'create' , 'read' , 'update' , 'delete' ] ,
38- audit : [ 'create' , 'read' , 'update' , 'export' ] ,
39- finding : [ 'create' , 'read' , 'update' , 'delete' ] ,
40- questionnaire : [ 'create' , 'read' , 'update' , 'delete' , 'respond' ] ,
41- integration : [ 'create' , 'read' , 'update' , 'delete' ] ,
42- apiKey : [ 'create' , 'read' , 'delete' ] ,
43- app : [ 'read' ] ,
44- trust : [ 'read' , 'update' ] ,
45- } as const ;
46-
47- const ac = createAccessControl ( statement ) ;
48-
49- const owner = ac . newRole ( {
50- ...ownerAc . statements ,
51- organization : [ 'read' , 'update' , 'delete' ] ,
52- control : [ 'create' , 'read' , 'update' , 'delete' , 'assign' , 'export' ] ,
53- evidence : [ 'create' , 'read' , 'update' , 'delete' , 'upload' , 'export' ] ,
54- policy : [ 'create' , 'read' , 'update' , 'delete' , 'publish' , 'approve' ] ,
55- risk : [ 'create' , 'read' , 'update' , 'delete' , 'assess' , 'export' ] ,
56- vendor : [ 'create' , 'read' , 'update' , 'delete' , 'assess' ] ,
57- task : [ 'create' , 'read' , 'update' , 'delete' , 'assign' , 'complete' ] ,
58- framework : [ 'create' , 'read' , 'update' , 'delete' ] ,
59- audit : [ 'create' , 'read' , 'update' , 'export' ] ,
60- finding : [ 'create' , 'read' , 'update' , 'delete' ] ,
61- questionnaire : [ 'create' , 'read' , 'update' , 'delete' , 'respond' ] ,
62- integration : [ 'create' , 'read' , 'update' , 'delete' ] ,
63- apiKey : [ 'create' , 'read' , 'delete' ] ,
64- app : [ 'read' ] ,
65- trust : [ 'read' , 'update' ] ,
66- } ) ;
67-
68- const admin = ac . newRole ( {
69- ...adminAc . statements ,
70- organization : [ 'read' , 'update' ] ,
71- control : [ 'create' , 'read' , 'update' , 'delete' , 'assign' , 'export' ] ,
72- evidence : [ 'create' , 'read' , 'update' , 'delete' , 'upload' , 'export' ] ,
73- policy : [ 'create' , 'read' , 'update' , 'delete' , 'publish' , 'approve' ] ,
74- risk : [ 'create' , 'read' , 'update' , 'delete' , 'assess' , 'export' ] ,
75- vendor : [ 'create' , 'read' , 'update' , 'delete' , 'assess' ] ,
76- task : [ 'create' , 'read' , 'update' , 'delete' , 'assign' , 'complete' ] ,
77- framework : [ 'create' , 'read' , 'update' , 'delete' ] ,
78- audit : [ 'create' , 'read' , 'update' , 'export' ] ,
79- finding : [ 'create' , 'read' , 'update' , 'delete' ] ,
80- questionnaire : [ 'create' , 'read' , 'update' , 'delete' , 'respond' ] ,
81- integration : [ 'create' , 'read' , 'update' , 'delete' ] ,
82- apiKey : [ 'create' , 'read' , 'delete' ] ,
83- app : [ 'read' ] ,
84- trust : [ 'read' , 'update' ] ,
85- } ) ;
86-
87- const auditor = ac . newRole ( {
88- organization : [ 'read' ] ,
89- member : [ 'create' ] ,
90- invitation : [ 'create' ] ,
91- control : [ 'read' , 'export' ] ,
92- evidence : [ 'read' , 'export' ] ,
93- policy : [ 'read' ] ,
94- risk : [ 'read' , 'export' ] ,
95- vendor : [ 'read' ] ,
96- task : [ 'read' ] ,
97- framework : [ 'read' ] ,
98- audit : [ 'read' , 'export' ] ,
99- finding : [ 'create' , 'read' , 'update' ] ,
100- questionnaire : [ 'read' ] ,
101- integration : [ 'read' ] ,
102- app : [ 'read' ] ,
103- trust : [ 'read' ] ,
104- } ) ;
105-
106- const employee = ac . newRole ( {
107- task : [ 'read' , 'complete' ] ,
108- evidence : [ 'read' , 'upload' ] ,
109- policy : [ 'read' ] ,
110- questionnaire : [ 'read' , 'respond' ] ,
111- trust : [ 'read' , 'update' ] ,
112- } ) ;
113-
114- const contractor = ac . newRole ( {
115- task : [ 'read' , 'complete' ] ,
116- evidence : [ 'read' , 'upload' ] ,
117- policy : [ 'read' ] ,
118- trust : [ 'read' , 'update' ] ,
119- } ) ;
120-
121- const allRoles = {
122- owner,
123- admin,
124- auditor,
125- employee,
126- contractor,
127- } as const ;
128-
129- // ============================================================================
130- // Auth Server Configuration
131- // ============================================================================
17+ import { ac , allRoles } from '@comp/auth' ;
13218
13319const MAGIC_LINK_EXPIRES_IN_SECONDS = 60 * 60 ; // 1 hour
13420
0 commit comments