MCPcopy
hub / github.com/YMFE/yapi / addMember

Method addMember

server/controllers/project.js:395–439  ·  view source on GitHub ↗

* 添加项目成员 * @interface /project/add_member * @method POST * @category project * @foldnumber 10 * @param {Number} id 项目id,不能为空 * @param {Array} member_uid 项目成员uid,不能为空 * @returns {Object} * @example ./api/project/add_member.json

(ctx)

Source from the content-addressed store, hash-verified

393 * @example ./api/project/add_member.json
394 */
395 async addMember(ctx) {
396 let params = ctx.params;
397 if ((await this.checkAuth(params.id, 'project', 'edit')) !== true) {
398 return (ctx.body = yapi.commons.resReturn(null, 405, '没有权限'));
399 }
400
401 params.role = ['owner', 'dev', 'guest'].find(v => v === params.role) || 'dev';
402 let add_members = [];
403 let exist_members = [];
404 let no_members = [];
405 for (let i = 0, len = params.member_uids.length; i < len; i++) {
406 let id = params.member_uids[i];
407 let check = await this.Model.checkMemberRepeat(params.id, id);
408 let userdata = await yapi.commons.getUserdata(id, params.role);
409 if (check > 0) {
410 exist_members.push(userdata);
411 } else if (!userdata) {
412 no_members.push(id);
413 } else {
414 add_members.push(userdata);
415 }
416 }
417
418 let result = await this.Model.addMember(params.id, add_members);
419 if (add_members.length) {
420 let members = add_members.map(item => {
421 return `<a href = "/user/profile/${item.uid}">${item.username}</a>`;
422 });
423 members = members.join('、');
424 let username = this.getUsername();
425 yapi.commons.saveLog({
426 content: `<a href="/user/profile/${this.getUid()}">${username}</a> 添加了项目成员 ${members}`,
427 type: 'project',
428 uid: this.getUid(),
429 username: username,
430 typeid: params.id
431 });
432 }
433 ctx.body = yapi.commons.resReturn({
434 result,
435 add_members,
436 exist_members,
437 no_members
438 });
439 }
440 /**
441 * 删除项目成员
442 * @interface /project/del_member

Callers 2

addMethod · 0.45
copyMethod · 0.45

Calls 5

getUserdataMethod · 0.80
getUsernameMethod · 0.80
checkAuthMethod · 0.45
checkMemberRepeatMethod · 0.45
getUidMethod · 0.45

Tested by

no test coverage detected