UNPKG

4.36 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/Api/GrantApi.js"],"names":["GrantApi","Err","ask","bind","cache","clearCache","req","data","rules","action","Array","isArray","length","app","module","grant","userId","user","_id","prefix","forEach","canGroup","__cache","fork","checkAdmin","path","filter","Boolean","join","Api"],"mappings":"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","sourcesContent":["import Err from '@lskjs/err';\nimport Api from '@lskjs/server-api';\n\nexport class GrantApi extends Api {\n getRoutes() {\n return {\n ...super.getRoutes(),\n '/can': () => {\n throw new Err('DEPRECATED');\n },\n '/canGroup': () => {\n throw new Err('DEPRECATED');\n },\n '/ask': this.ask.bind(this),\n '/cache': this.cache.bind(this),\n '/clearCache': this.clearCache.bind(this),\n };\n }\n async ask(req) {\n let { rules, clearCache } = req.data;\n clearCache = !!+clearCache;\n const { action } = req.data;\n if (!(rules && Array.isArray(rules) && rules.length > 0)) {\n if (action) {\n rules = [{ action }];\n } else {\n throw new Err('grant.askFormat', 'rules is not array', { rules });\n }\n }\n const grant = await this.app.module('grant');\n const userId = req.user ? req.user._id : null;\n const prefix = userId || 'guest';\n if (clearCache) {\n // eslint-disable-next-line no-shadow\n await grant.clearCache(rules.forEach(({ action }) => `${prefix}.${action}`));\n }\n return grant.canGroup(rules, {\n user: req.user,\n userId,\n cache: grant.__cache.fork({ prefix }),\n });\n }\n async cache(req) {\n await this.checkAdmin(req);\n const grant = await this.app.module('grant');\n return grant.__cache.data;\n }\n async clearCache(req) {\n const grant = await this.app.module('grant');\n const userId = (req.user && req.user._id) || 'guest';\n const path = [userId, req.data.path || '*'].filter(Boolean).join('.');\n return grant.clearCache(path);\n }\n}\n\nexport default GrantApi;\n"],"file":"GrantApi.js"}
\No newline at end of file