Skip to content

Commit 42a1581

Browse files
authored
Merge pull request #69 from imcaizheng/fix-booking-manager-access
allow booking manager to access all teams
2 parents fd9bb61 + 40106ed commit 42a1581

File tree

2 files changed

+119
-11
lines changed

2 files changed

+119
-11
lines changed

docs/Topcoder-bookings-api.postman_collection.json

Lines changed: 115 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4125,6 +4125,54 @@
41254125
},
41264126
"response": []
41274127
},
4128+
{
4129+
"name": "GET /taas-teams with booking manager",
4130+
"request": {
4131+
"method": "GET",
4132+
"header": [
4133+
{
4134+
"key": "Authorization",
4135+
"value": "Bearer {{token_bookingManager}}",
4136+
"type": "text"
4137+
}
4138+
],
4139+
"url": {
4140+
"raw": "{{URL}}/taas-teams?perPage=10&page=1&name=*taas*&sortBy=lastActivityAt&sortOrder=desc",
4141+
"host": [
4142+
"{{URL}}"
4143+
],
4144+
"path": [
4145+
"taas-teams"
4146+
],
4147+
"query": [
4148+
{
4149+
"key": "perPage",
4150+
"value": "10"
4151+
},
4152+
{
4153+
"key": "page",
4154+
"value": "1"
4155+
},
4156+
{
4157+
"key": "name",
4158+
"value": "*taas*",
4159+
"description": "case-insensitive; support wildcard match"
4160+
},
4161+
{
4162+
"key": "sortBy",
4163+
"value": "lastActivityAt",
4164+
"description": "allows: createdAt, updatedAt, lastActivityAt, id, status, name, type, best match"
4165+
},
4166+
{
4167+
"key": "sortOrder",
4168+
"value": "desc",
4169+
"description": "allows: asc, desc"
4170+
}
4171+
]
4172+
}
4173+
},
4174+
"response": []
4175+
},
41284176
{
41294177
"name": "GET /taas-teams with m2m read",
41304178
"request": {
@@ -4178,6 +4226,36 @@
41784226
},
41794227
"response": []
41804228
},
4229+
{
4230+
"name": "GET /taas-teams/:id with booking manager",
4231+
"request": {
4232+
"method": "GET",
4233+
"header": [
4234+
{
4235+
"key": "Authorization",
4236+
"value": "Bearer {{token_bookingManager}}",
4237+
"type": "text"
4238+
}
4239+
],
4240+
"url": {
4241+
"raw": "{{URL}}/taas-teams/:projectId",
4242+
"host": [
4243+
"{{URL}}"
4244+
],
4245+
"path": [
4246+
"taas-teams",
4247+
":projectId"
4248+
],
4249+
"variable": [
4250+
{
4251+
"key": "projectId",
4252+
"value": "16705"
4253+
}
4254+
]
4255+
}
4256+
},
4257+
"response": []
4258+
},
41814259
{
41824260
"name": "GET /taas-teams/:id with m2m read",
41834261
"request": {
@@ -4244,6 +4322,42 @@
42444322
},
42454323
"response": []
42464324
},
4325+
{
4326+
"name": "GET /taas-teams/:id/jobs/:jobId with booking manager",
4327+
"request": {
4328+
"method": "GET",
4329+
"header": [
4330+
{
4331+
"key": "Authorization",
4332+
"value": "Bearer {{token_bookingManager}}",
4333+
"type": "text"
4334+
}
4335+
],
4336+
"url": {
4337+
"raw": "{{URL}}/taas-teams/:projectId/jobs/:jobId",
4338+
"host": [
4339+
"{{URL}}"
4340+
],
4341+
"path": [
4342+
"taas-teams",
4343+
":projectId",
4344+
"jobs",
4345+
":jobId"
4346+
],
4347+
"variable": [
4348+
{
4349+
"key": "projectId",
4350+
"value": "16705"
4351+
},
4352+
{
4353+
"key": "jobId",
4354+
"value": "948a25a6-086f-4a96-aad5-9ccd2d3e87b2"
4355+
}
4356+
]
4357+
}
4358+
},
4359+
"response": []
4360+
},
42474361
{
42484362
"name": "GET /taas-teams/:id/jobs/:jobId with m2m read",
42494363
"request": {
@@ -6853,4 +6967,4 @@
68536967
}
68546968
],
68556969
"protocolProfileBehavior": {}
6856-
}
6970+
}

src/services/TeamService.js

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ async function _getJobsByProjectIds (projectIds) {
4141
* @returns {Object} the search result, contain total/page/perPage and result array
4242
*/
4343
async function searchTeams (currentUser, criteria) {
44-
if (currentUser.isMachine) {
44+
if (currentUser.isBookingManager || currentUser.isMachine) {
4545
const m2mToken = await helper.getM2Mtoken()
4646
currentUser.jwtToken = `Bearer ${m2mToken}`
4747
}
@@ -197,7 +197,7 @@ async function getTeamDetail (currentUser, projects, isSearch = true) {
197197
* @returns {Object} the team
198198
*/
199199
async function getTeam (currentUser, id) {
200-
if (currentUser.isMachine) {
200+
if (currentUser.isBookingManager || currentUser.isMachine) {
201201
const m2mToken = await helper.getM2Mtoken()
202202
currentUser.jwtToken = `Bearer ${m2mToken}`
203203
}
@@ -253,7 +253,7 @@ getTeam.schema = Joi.object().keys({
253253
* @returns the team job
254254
*/
255255
async function getTeamJob (currentUser, id, jobId) {
256-
if (currentUser.isMachine) {
256+
if (currentUser.isBookingManager || currentUser.isMachine) {
257257
const m2mToken = await helper.getM2Mtoken()
258258
currentUser.jwtToken = `Bearer ${m2mToken}`
259259
}
@@ -286,13 +286,7 @@ async function getTeamJob (currentUser, id, jobId) {
286286
const userHandles = _.map(candidates, 'handle')
287287
if (userHandles && userHandles.length > 0) {
288288
// Get user photo from /v5/members
289-
let members
290-
if (currentUser.isMachine) {
291-
const m2mToken = await helper.getTopcoderM2MToken()
292-
members = await helper.getMembers(`Bearer ${m2mToken}`, userHandles)
293-
} else {
294-
members = await helper.getMembers(currentUser.jwtToken, userHandles)
295-
}
289+
const members = await helper.getMembers(currentUser.jwtToken, userHandles)
296290

297291
for (const item of candidates) {
298292
item.resumeLink = null

0 commit comments

Comments
 (0)