Skip to content

Commit db3d0e0

Browse files
committed
- add an ability to retrieve roles for a specific user by its id
1 parent 38a3447 commit db3d0e0

File tree

7 files changed

+32
-14
lines changed

7 files changed

+32
-14
lines changed

backendless.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ declare module Backendless {
297297

298298
function findByRole<T = Backendless.User>(roleName: string, loadRoles?: boolean, query?: Backendless.DataQueryBuilder | DataQueryI): Promise<T[]>;
299299

300-
function getUserRoles(): Promise<string[]>;
300+
function getUserRoles(userId?: string): Promise<string[]>;
301301

302302
function describeUserClass(): Promise<Object[]>;
303303

src/urls.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -290,8 +290,8 @@ export default class Urls {
290290
return `${this.users()}/logout`
291291
}
292292

293-
userRoles() {
294-
return `${this.users()}/userroles`
293+
userRoles(userId) {
294+
return `${this.users()}/userroles${userId ? `/${userId}` : ''}`
295295
}
296296

297297
usersRole(roleName) {

src/users/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -266,8 +266,8 @@ export default class Users {
266266
return this.roles.findByRole(roleName, loadRoles, query)
267267
}
268268

269-
async getUserRoles() {
270-
return this.roles.getUserRoles()
269+
async getUserRoles(userId) {
270+
return this.roles.getUserRoles(userId)
271271
}
272272

273273
async assignRole(identity, rolename) {

src/users/roles.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ export default class UsersRoles {
3737
.then(result => this.users.dataStore.parseResponse(result))
3838
}
3939

40-
async getUserRoles() {
40+
async getUserRoles(userId) {
4141
return this.app.request.get({
42-
url: this.app.urls.userRoles(),
42+
url: this.app.urls.userRoles(userId),
4343
})
4444
}
4545

test/tsd.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -808,6 +808,7 @@ function testUserService() {
808808
promiseObject = Backendless.UserService.register(newUser);
809809

810810
promiseListOfString = Backendless.UserService.getUserRoles();
811+
promiseListOfString = Backendless.UserService.getUserRoles('test-user-id');
811812

812813
promiseVoid = Backendless.UserService.assignRole(identity, roleName);
813814

test/unit/helpers/sandbox.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,11 @@ function wrapRequest(R) {
113113
}
114114
}
115115

116-
export function prepareMockRequest(responseFn) {
116+
export function prepareMockRequest(response) {
117117
const mockRequest = {
118-
responseFn: typeof responseFn === 'function'
119-
? responseFn
120-
: () => ({ body: responseFn })
118+
responseFn: typeof response === 'function'
119+
? response
120+
: () => ({ body: response })
121121
}
122122

123123
mockRequests.push(mockRequest)

test/unit/specs/users/roles.js

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -261,17 +261,34 @@ describe('<Users> Roles', function() {
261261
})
262262
})
263263

264-
it('gets user roles', async () => {
265-
const req1 = prepareMockRequest()
264+
it('gets current user roles', async () => {
265+
const req1 = prepareMockRequest(['role-1','role-2'])
266266

267-
await Backendless.UserService.getUserRoles()
267+
const result = await Backendless.UserService.getUserRoles()
268268

269269
expect(req1).to.deep.include({
270270
method : 'GET',
271271
path : `${APP_PATH}/users/userroles`,
272272
headers: {},
273273
body : undefined
274274
})
275+
276+
expect(result).to.be.eql(['role-1','role-2'])
277+
})
278+
279+
it('gets a specific user roles', async () => {
280+
const req1 = prepareMockRequest(['role-1','role-2'])
281+
282+
const result = await Backendless.UserService.getUserRoles('user-id')
283+
284+
expect(req1).to.deep.include({
285+
method : 'GET',
286+
path : `${APP_PATH}/users/userroles/user-id`,
287+
headers: {},
288+
body : undefined
289+
})
290+
291+
expect(result).to.be.eql(['role-1','role-2'])
275292
})
276293

277294
it('adds user roles', async () => {

0 commit comments

Comments
 (0)