@@ -16,6 +16,7 @@ import {
16
16
IsiteServicesEndpoints ,
17
17
IUpdateTeam ,
18
18
OPTIONS ,
19
+ GranularRole ,
19
20
} from "types"
20
21
21
22
import FormData from "form-data"
@@ -127,6 +128,7 @@ export default class FetchWrapper {
127
128
// Roles
128
129
roleGET : "/roles/ROLE_ZUID" ,
129
130
roleDELETE : "/roles/ROLE_ZUID" ,
131
+ rolePUT : "/roles/ROLE_ZUID" ,
130
132
rolesPOST : "/roles" ,
131
133
roles : "/roles" ,
132
134
instancesRoles : "/instances/INSTANCE_ZUID/roles" ,
@@ -136,6 +138,7 @@ export default class FetchWrapper {
136
138
userRolesPOST : "/users/USER_ZUID/roles/ROLE_ZUID" ,
137
139
userRolesDELETE : "/users/USER_ZUID/roles/ROLE_ZUID" ,
138
140
userRolesPUT : "/users/USER_ZUID/roles/ROLE_ZUID" ,
141
+ bulkReassignUserRolesPUT : "/users/roles/ROLE_ZUID" ,
139
142
// Roles Granular
140
143
rolesGranularGET : "/roles/ROLE_ZUID/granulars/RESOURCE_ZUID" ,
141
144
rolesGranularDELETE : "/roles/ROLE_ZUID/granulars/RESOURCE_ZUID" ,
@@ -1142,15 +1145,34 @@ export default class FetchWrapper {
1142
1145
} )
1143
1146
return await this . makeRequest ( url , "DELETE" , payload )
1144
1147
}
1145
- async createRole ( name : string , entityZUID : string , systemRoleZUID : string ) {
1148
+ async createRole (
1149
+ name : string ,
1150
+ entityZUID : string ,
1151
+ systemRoleZUID : string ,
1152
+ description = "" ,
1153
+ ) {
1146
1154
let payload = JSON . stringify ( {
1147
1155
name,
1148
1156
entityZUID,
1149
1157
systemRoleZUID,
1158
+ description,
1150
1159
} )
1151
1160
let url = this . accountsAPIURL + this . accountsAPIEndpoints . rolesPOST
1152
1161
return await this . makeRequest ( url , "POST" , payload )
1153
1162
}
1163
+ async updateRole (
1164
+ roleZUID : string ,
1165
+ data : { name : string ; description : string ; systemRoleZUID : string } ,
1166
+ ) {
1167
+ const payload = JSON . stringify ( data )
1168
+ const url =
1169
+ this . accountsAPIURL +
1170
+ this . replaceInURL ( this . accountsAPIEndpoints . rolePUT , {
1171
+ ROLE_ZUID : roleZUID ,
1172
+ } )
1173
+
1174
+ return await this . makeRequest ( url , "PUT" , payload )
1175
+ }
1154
1176
async getRoles ( ) {
1155
1177
let url = this . accountsAPIURL + this . accountsAPIEndpoints . roles
1156
1178
return await this . makeRequest ( url )
@@ -1173,6 +1195,22 @@ export default class FetchWrapper {
1173
1195
} )
1174
1196
return await this . makeRequest ( url , "POST" , payload )
1175
1197
}
1198
+ async bulkReassignUsersRole ( {
1199
+ oldRoleZUID,
1200
+ newRoleZUID,
1201
+ } : {
1202
+ oldRoleZUID : string
1203
+ newRoleZUID : string
1204
+ } ) {
1205
+ const payload = JSON . stringify ( { roleZUID : newRoleZUID } )
1206
+ const url =
1207
+ this . accountsAPIURL +
1208
+ this . replaceInURL ( this . accountsAPIEndpoints . bulkReassignUserRolesPUT , {
1209
+ ROLE_ZUID : oldRoleZUID ,
1210
+ } )
1211
+
1212
+ return await this . makeRequest ( url , "PUT" , payload )
1213
+ }
1176
1214
async deleteUserRole ( userZUID : string , roleZUID : string ) {
1177
1215
let payload = JSON . stringify ( { } )
1178
1216
let url =
@@ -1247,8 +1285,33 @@ export default class FetchWrapper {
1247
1285
} )
1248
1286
return await this . makeRequest ( url , "PUT" , payload )
1249
1287
}
1250
- async createGranularRole ( roleZUID : string , resourceZUID : string , create = true ) {
1251
- let payload = JSON . stringify ( { resourceZUID, create } )
1288
+ async batchUpdateGranularRoles ( roleZUID : string , granularRoles : GranularRole [ ] ) {
1289
+ let payload = JSON . stringify ( granularRoles )
1290
+ let url =
1291
+ this . accountsAPIURL +
1292
+ this . replaceInURL ( this . accountsAPIEndpoints . rolesGranularPUT , {
1293
+ ROLE_ZUID : roleZUID ,
1294
+ } )
1295
+
1296
+ return await this . makeRequest ( url , "PUT" , payload )
1297
+ }
1298
+ async createGranularRole (
1299
+ roleZUID : string ,
1300
+ resourceZUID : string ,
1301
+ create = true ,
1302
+ read = false ,
1303
+ update = false ,
1304
+ remove = false ,
1305
+ publish = false ,
1306
+ ) {
1307
+ let payload = JSON . stringify ( {
1308
+ resourceZUID,
1309
+ create,
1310
+ read,
1311
+ update,
1312
+ delete : remove ,
1313
+ publish,
1314
+ } )
1252
1315
let url =
1253
1316
this . accountsAPIURL +
1254
1317
this . replaceInURL ( this . accountsAPIEndpoints . rolesGranularPOST , {
@@ -1431,9 +1494,11 @@ export default class FetchWrapper {
1431
1494
}
1432
1495
1433
1496
// Search Items Function
1434
- async searchItems ( ) {
1497
+ async searchItems ( params : Record < string , string > = { } ) {
1498
+ const searchParams = new URLSearchParams ( params ) ?. toString ( )
1435
1499
let url = this . instancesAPIURL + this . instanceAPIEndpoints . searchItemsGET
1436
- return await this . makeRequest ( url )
1500
+
1501
+ return await this . makeRequest ( `${ url } ?${ searchParams } ` )
1437
1502
}
1438
1503
1439
1504
// Locales functionality
0 commit comments