1
- import { PermissionProps } from " ./VaultPermissions" ;
2
- import GroupRole from " ../AzAd/Role" ;
3
- import { currentEnv , currentServicePrincipal } from " ../Common/AzureEnv" ;
4
- import { getAdGroup } from " ../AzAd/Group" ;
5
- import { envRoleNames } from " ../AzAd/EnvRoles" ;
6
- import * as azuread from " @pulumi/azuread" ;
1
+ import { PermissionProps } from ' ./VaultPermissions' ;
2
+ import GroupRole from ' ../AzAd/Role' ;
3
+ import { currentEnv , currentServicePrincipal } from ' ../Common/AzureEnv' ;
4
+ import { getAdGroup } from ' ../AzAd/Group' ;
5
+ import { EnvRoleNamesType } from ' ../AzAd/EnvRoles' ;
6
+ import * as azuread from ' @pulumi/azuread' ;
7
7
8
8
export type VaultAccessType = {
9
- useEnvRoles ?: boolean ;
10
- enableRbac ?: boolean ;
9
+ /** Grant permission of this group into Environment Roles groups*/
10
+ envRoleNames ?: EnvRoleNamesType ;
11
11
permissions ?: Array < PermissionProps > ;
12
12
} ;
13
13
@@ -18,35 +18,41 @@ interface Props {
18
18
19
19
export default async ( { name, auth } : Props ) => {
20
20
//Permission Groups
21
- const readOnlyGroup = auth . useEnvRoles
22
- ? await getAdGroup ( envRoleNames . readOnly )
21
+ const readOnlyGroup = auth . envRoleNames
22
+ ? await getAdGroup ( auth . envRoleNames . readOnly )
23
23
: await GroupRole ( {
24
24
env : currentEnv ,
25
25
appName : `${ name } -vault` ,
26
- roleName : " ReadOnly" ,
26
+ roleName : ' ReadOnly' ,
27
27
} ) ;
28
- const adminGroup = auth . useEnvRoles
29
- ? await getAdGroup ( envRoleNames . contributor )
28
+ const adminGroup = auth . envRoleNames
29
+ ? await getAdGroup ( auth . envRoleNames . contributor )
30
30
: await GroupRole ( {
31
31
env : currentEnv ,
32
32
appName : `${ name } -vault` ,
33
- roleName : " Admin" ,
33
+ roleName : ' Admin' ,
34
34
} ) ;
35
35
36
36
//Add current service principal in
37
- if ( auth ! . permissions ! . length <= 0 ) {
38
- auth . permissions ! . push ( {
37
+ if ( auth . permissions == undefined ) {
38
+ auth . permissions = [
39
+ {
40
+ objectId : currentServicePrincipal ,
41
+ permission : 'ReadWrite' ,
42
+ } ,
43
+ ] ;
44
+ } else
45
+ auth . permissions . push ( {
39
46
objectId : currentServicePrincipal ,
40
- permission : " ReadWrite" ,
47
+ permission : ' ReadWrite' ,
41
48
} ) ;
42
- }
43
49
44
50
//Add Permission to Groups
45
- auth . permissions ! . forEach (
51
+ auth . permissions . forEach (
46
52
( { objectId, applicationId, permission } , index ) =>
47
53
new azuread . GroupMember ( `${ name } -${ permission } -${ index } ` , {
48
54
groupObjectId :
49
- permission === " ReadOnly"
55
+ permission === ' ReadOnly'
50
56
? readOnlyGroup . objectId
51
57
: adminGroup . objectId ,
52
58
memberObjectId : objectId ?? applicationId ,
0 commit comments