| 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) { |