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

Method getProjectRole

server/controllers/base.js:217–290  ·  view source on GitHub ↗
(id, type)

Source from the content-addressed store, hash-verified

215 }
216
217 async getProjectRole(id, type) {
218 let result = {};
219 try {
220 if (this.getRole() === 'admin') {
221 return 'admin';
222 }
223 if (type === 'interface') {
224 let interfaceInst = yapi.getInst(interfaceModel);
225 let interfaceData = await interfaceInst.get(id);
226 result.interfaceData = interfaceData;
227 // 项目创建者相当于 owner
228 if (interfaceData.uid === this.getUid()) {
229 return 'owner';
230 }
231 type = 'project';
232 id = interfaceData.project_id;
233 }
234
235 if (type === 'project') {
236 let projectInst = yapi.getInst(projectModel);
237 let projectData = await projectInst.get(id);
238 if (projectData.uid === this.getUid()) {
239 // 建立项目的人
240 return 'owner';
241 }
242 let memberData = _.find(projectData.members, m => {
243 if (m && m.uid === this.getUid()) {
244 return true;
245 }
246 });
247
248 if (memberData && memberData.role) {
249 if (memberData.role === 'owner') {
250 return 'owner';
251 } else if (memberData.role === 'dev') {
252 return 'dev';
253 } else {
254 return 'guest';
255 }
256 }
257 type = 'group';
258 id = projectData.group_id;
259 }
260
261 if (type === 'group') {
262 let groupInst = yapi.getInst(groupModel);
263 let groupData = await groupInst.get(id);
264 // 建立分组的人
265 if (groupData.uid === this.getUid()) {
266 return 'owner';
267 }
268
269 let groupMemberData = _.find(groupData.members, m => {
270 if (m.uid === this.getUid()) {
271 return true;
272 }
273 });
274 if (groupMemberData && groupMemberData.role) {

Callers 3

checkAuthMethod · 0.95
getMethod · 0.80
getMethod · 0.80

Calls 3

getRoleMethod · 0.95
getUidMethod · 0.95
getMethod · 0.45

Tested by

no test coverage detected