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

Method changeMemberRole

server/controllers/project.js:646–683  ·  view source on GitHub ↗

* 修改项目成员角色 * @interface /project/change_member_role * @method POST * @category project * @foldnumber 10 * @param {String} id 项目id * @param {String} member_uid 项目成员uid * @param {String} role 权限 ['owner'|'dev'] * @returns {Object} * @example

(ctx)

Source from the content-addressed store, hash-verified

644 * @example
645 */
646 async changeMemberRole(ctx) {
647 let params = ctx.request.body;
648 let projectInst = yapi.getInst(projectModel);
649
650 var check = await projectInst.checkMemberRepeat(params.id, params.member_uid);
651 if (check === 0) {
652 return (ctx.body = yapi.commons.resReturn(null, 400, '项目成员不存在'));
653 }
654 if ((await this.checkAuth(params.id, 'project', 'danger')) !== true) {
655 return (ctx.body = yapi.commons.resReturn(null, 405, '没有权限'));
656 }
657
658 params.role = ['owner', 'dev', 'guest'].find(v => v === params.role) || 'dev';
659 let rolename = {
660 owner: '组长',
661 dev: '开发者',
662 guest: '访客'
663 };
664
665 let result = await projectInst.changeMemberRole(params.id, params.member_uid, params.role);
666
667 let username = this.getUsername();
668 yapi
669 .getInst(userModel)
670 .findById(params.member_uid)
671 .then(member => {
672 yapi.commons.saveLog({
673 content: `<a href="/user/profile/${this.getUid()}">${username}</a> 修改了项目中的成员 <a href="/user/profile/${
674 params.member_uid
675 }">${member.username}</a> 的角色为 "${rolename[params.role]}"`,
676 type: 'project',
677 uid: this.getUid(),
678 username: username,
679 typeid: params.id
680 });
681 });
682 ctx.body = yapi.commons.resReturn(result);
683 }
684
685 /**
686 * 修改项目成员是否收到邮件通知

Callers

nothing calls this directly

Calls 5

getUsernameMethod · 0.80
checkMemberRepeatMethod · 0.45
checkAuthMethod · 0.45
findByIdMethod · 0.45
getUidMethod · 0.45

Tested by

no test coverage detected