1010
1111package acp_types
1212
13- import "github.com/sourcenetwork/acp_core/pkg/types"
13+ import (
14+ "strings"
15+
16+ "github.com/sourcenetwork/acp_core/pkg/types"
17+ )
1418
1519// RequiredRegistererRelationName is the required relation name that any registerer will have,
1620// as the registerer is guaranteed to be the owner.
@@ -74,9 +78,14 @@ const (
7478 AdminDACEnablePerm
7579 AdminDACDisablePerm
7680 AdminDACPurgePerm
77- AdminAACEnablePerm
81+ AdminDACStatusPerm
82+ AdminDACRelationAddPerm
83+ AdminDACRelationDeletePerm
84+ AdminDACPolicyAddPerm
85+ AdminAACReEnablePerm
7886 AdminAACDisablePerm
7987 AdminAACPurgePerm
88+ AdminAACStatusPerm
8089 AdminAACRelationAddPerm
8190 AdminAACRelationDeletePerm
8291)
@@ -89,9 +98,14 @@ var RequiredResourcePermissionsForAdmin = []string{
8998 "dac-enable" ,
9099 "dac-disable" ,
91100 "dac-purge" ,
92- "aac-enable" ,
101+ "dac-status" ,
102+ "dac-relation-add" ,
103+ "dac-relation-delete" ,
104+ "dac-policy-add" ,
105+ "aac-re-enable" ,
93106 "aac-disable" ,
94107 "aac-purge" ,
108+ "aac-status" ,
95109 "aac-relation-add" ,
96110 "aac-relation-delete" ,
97111}
@@ -111,29 +125,39 @@ resources:
111125 node:
112126 permissions:
113127 dac-bypass:
114- expr: owner + super- admin
128+ expr: owner + admin
115129 dac-enable:
116- expr: owner + super- admin
130+ expr: owner + admin
117131 dac-disable:
118- expr: owner + super- admin
132+ expr: owner + admin
119133 dac-purge:
120- expr: owner + super-admin
121- aac-enable:
122- expr: owner + super-admin
134+ expr: owner + admin
135+ dac-status:
136+ expr: owner + admin
137+ dac-relation-add:
138+ expr: owner + admin
139+ dac-relation-delete:
140+ expr: owner + admin
141+ dac-policy-add:
142+ expr: owner + admin
143+ aac-re-enable:
144+ expr: owner + admin
123145 aac-disable:
124- expr: owner + super- admin
146+ expr: owner + admin
125147 aac-purge:
126- expr: owner + super-admin
148+ expr: owner + admin
149+ aac-status:
150+ expr: owner + admin
127151 aac-relation-add:
128- expr: owner + super- admin
152+ expr: owner + admin
129153 aac-relation-delete:
130- expr: owner + super- admin
154+ expr: owner + admin
131155
132156 relations:
133157 owner:
134158 types:
135159 - actor
136- super- admin:
160+ admin:
137161 types:
138162 - actor
139163`
@@ -142,6 +166,14 @@ func (resourcePermission AdminResourcePermission) String() string {
142166 return RequiredResourcePermissionsForAdmin [resourcePermission ]
143167}
144168
169+ func (resourcePermission AdminResourcePermission ) IsForAACOperation () bool {
170+ permission := resourcePermission .String ()
171+ if len (permission ) >= 3 && strings .EqualFold (permission [:3 ], "aac" ) {
172+ return true
173+ }
174+ return false
175+ }
176+
145177// RegistrationResult is an enum type which indicates the result of a RegisterObject call to SourceHub / ACP Core
146178type RegistrationResult int32
147179
0 commit comments