UNPKG

cloud-admin-lite

Version:
72 lines (69 loc) 1.99 kB
let userInfoPromise = null; let userResourcesPromise = null; const maxTimes = 3; const request = function (times) { return Promise.resolve(); // return authService.GetUser({ // config: { // noErrorTip: true, // }, // }).catch((err) => { // times--; // if (times > 0) { // return request(times); // } else { // throw err; // } // }); }; const auth = { _map: undefined, getUserInfo(times = 1) { if (!userInfoPromise) { userInfoPromise = request(times).catch((e) => { userInfoPromise = undefined; throw e; }); } return userInfoPromise; }, getUserResources() { if (!userResourcesPromise) { userResourcesPromise = Promise.resolve(); // userResourcesPromise = authService.GetUserResources({ // }).then((result) => { // const resources = result.items.filter((resource) => resource.ResourceType === 'ui'); // // 初始化权限项 // this._map = new Map(); // resources.forEach((resource) => this._map.set(resource.ResourceValue, resource)); // }).catch((e) => { // // 获取权限异常 // userResourcesPromise = undefined; // }); } return userResourcesPromise; }, /** * 权限服务是否初始化 */ isInit() { return !!this._map; }, /** * 初始化权限服务 */ init(times) { return this.getUserInfo(times || maxTimes).then(() => this.getUserResources()); }, /** * 是否有权限 * @param {*} authPath 权限路径,如 /dashboard/entity/list */ has(authPath) { return this._map.has(authPath); }, }; export default auth; export const runAhead = function (domainName, times) { auth.init(domainName, times); };