6 changed files with 64 additions and 63 deletions
			
			
		| @ -0,0 +1,43 @@ | |||
| 'use strict'; | |||
| const fs = require('fs'); | |||
| const moment = require('moment') | |||
| 
 | |||
| module.exports = function (app, opts) { | |||
| 
 | |||
|    function judgeSuper (ctx) { | |||
|       try { | |||
|          const { userInfo = {} } = ctx.fs.api || {}; | |||
|          const { role = [] } = userInfo | |||
|          return role.includes('SuperAdmin') | |||
|       } catch (error) { | |||
|          ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); | |||
|       } | |||
|    } | |||
| 
 | |||
|    async function anxinStrucRange (ctx) { | |||
|       try { | |||
|          const { models } = ctx.fs.dc; | |||
|          const { userInfo = {} } = ctx.fs.api || {}; | |||
|          const { correlationProject = [] } = userInfo | |||
| 
 | |||
|          const bindRes = await models.ProjectCorrelation.findAll({ | |||
|             where: { | |||
|                pepProjectId: { $in: correlationProject } | |||
|             } | |||
|          }) | |||
|          return bindRes.reduce((arr, b) => { | |||
|             for (let sid of b.anxinProjectId) { | |||
|                arr.add(sid); | |||
|             } | |||
|             return arr; | |||
|          }, new Set()) | |||
|       } catch (error) { | |||
|          ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); | |||
|       } | |||
|    } | |||
| 
 | |||
|    return { | |||
|       judgeSuper, | |||
|       anxinStrucRange | |||
|    } | |||
| } | |||
| @ -1,54 +0,0 @@ | |||
| const fs = require('fs'); | |||
| 
 | |||
| module.exports = function (app, opts) { | |||
|     async function oauthParseAuthHeader (auth) { | |||
|         if (!auth) { | |||
|             throw new Error('参数无效: 未包含Authorization头'); | |||
|         } | |||
| 
 | |||
|         const authSplit = auth.split('Basic'); | |||
|         if (authSplit.length != 2) { | |||
|             throw new Error('参数无效: Authorization头格式无效,请检查是否包含了"Basic "'); | |||
|         } | |||
| 
 | |||
|         const authCode = authSplit[1]; | |||
|         const apikey = Buffer.from(authCode, 'base64').toString(); | |||
| 
 | |||
|         const keySplit = apikey.split(':'); | |||
|         if (keySplit.length != 2) { | |||
|             throw new Error('参数无效:请检查Authorization头内容是否经过正确Base64编码'); | |||
|         } | |||
|          | |||
|         return keySplit; | |||
|     } | |||
| 
 | |||
|     async function oauthParseBody (body, type) { | |||
|         let checked = true, token = ''; | |||
|         if (type == 'apply' && body['grant_type'] != 'client_credentials') { | |||
|             checked = false; | |||
|         } else if (type == 'refresh') { | |||
|             if (body['grant_type'] != 'refresh_token' || body['token'] == null) { | |||
|                 checked = false; | |||
|             } else { | |||
|                 token = body['token']; | |||
|             } | |||
|         } else if (type == 'invalidate') { | |||
|             if (body['token'] == null) { | |||
|                 checked = false; | |||
|             } else { | |||
|                 token = body['token']; | |||
|             } | |||
|         } | |||
| 
 | |||
|         if (!checked) { | |||
|             throw new Error('参数无效:请求正文中未包含正确的信息'); | |||
|         } | |||
| 
 | |||
|         return token; | |||
|     } | |||
| 
 | |||
|     return { | |||
|         oauthParseAuthHeader, | |||
|         oauthParseBody | |||
|     } | |||
| } | |||
					Loading…
					
					
				
		Reference in new issue