UNPKG

@lcsf/acl

Version:

权限控制模块

47 lines 5.16 kB
/** * 提供一个方法方便查找菜单树中第一个最深层次的菜单url * @param menus * @returns */ export function findFirstUrl(menus) { let firstMenu = menus[0]; let list = firstMenu.menu_list || firstMenu.children; if (!list || !list.length) { return firstMenu.url; } return findFirstUrl(list); } /** * 根据当前模块路径获取当前模块可以访问的第一个路由 * @param model_path * @returns */ export function getModelFirstAuthPath(model_path, menu_storage_key = 'LCmenus') { const LCmenus = JSON.parse(localStorage.getItem(menu_storage_key) || '[]'); let result_path = '/auth/403'; if (LCmenus.length > 0) { LCmenus.forEach(model_item => { if (model_item.url === model_path) { result_path = findFirstUrl([model_item]); } }); } if (result_path !== '/auth/403') { let path = result_path.replace(new RegExp(model_path + '/'), ''); path && (result_path = path); } return result_path; } /** * 获取当前menu第一个授权的模块path * @param menu_storage_key */ export function getMenuFirstAuthModel(menu_storage_key = 'LCmenus') { const LCmenus = JSON.parse(localStorage.getItem(menu_storage_key) || '[]'); let result_path = ''; if (LCmenus.length) { result_path = LCmenus[0].url; } return result_path; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGMtYWNsLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vYWNsL3NyYy9sYy1hY2wudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBZ0I7SUFDM0MsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUNyRCxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUN6QixPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUM7S0FDdEI7SUFDRCxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxVQUFrQixFQUFFLGdCQUFnQixHQUFHLFNBQVM7SUFDcEYsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7SUFDM0UsSUFBSSxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQzlCLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDdEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUMzQixJQUFJLFVBQVUsQ0FBQyxHQUFHLEtBQUssVUFBVSxFQUFFO2dCQUNqQyxXQUFXLEdBQUcsWUFBWSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQzthQUMxQztRQUNILENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFDRCxJQUFJLFdBQVcsS0FBSyxXQUFXLEVBQUU7UUFDL0IsSUFBSSxJQUFJLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakUsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDO0tBQzlCO0lBQ0QsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTO0lBQ2hFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQzNFLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUNyQixJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7UUFDbEIsV0FBVyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7S0FDOUI7SUFDRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWl4TWVudSB9IGZyb20gJy4vbGMtYWNsLnR5cGUnO1xuXG4vKipcbiAqIOaPkOS+m+S4gOS4quaWueazleaWueS+v+afpeaJvuiPnOWNleagkeS4reesrOS4gOS4quacgOa3seWxguasoeeahOiPnOWNlXVybFxuICogQHBhcmFtIG1lbnVzXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZEZpcnN0VXJsKG1lbnVzOiBNaXhNZW51W10pIHtcbiAgbGV0IGZpcnN0TWVudSA9IG1lbnVzWzBdO1xuICBsZXQgbGlzdCA9IGZpcnN0TWVudS5tZW51X2xpc3QgfHwgZmlyc3RNZW51LmNoaWxkcmVuO1xuICBpZiAoIWxpc3QgfHwgIWxpc3QubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZpcnN0TWVudS51cmw7XG4gIH1cbiAgcmV0dXJuIGZpbmRGaXJzdFVybChsaXN0KTtcbn1cblxuLyoqXG4gKiDmoLnmja7lvZPliY3mqKHlnZfot6/lvoTojrflj5blvZPliY3mqKHlnZflj6/ku6Xorr/pl67nmoTnrKzkuIDkuKrot6/nlLFcbiAqIEBwYXJhbSBtb2RlbF9wYXRoXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW9kZWxGaXJzdEF1dGhQYXRoKG1vZGVsX3BhdGg6IHN0cmluZywgbWVudV9zdG9yYWdlX2tleSA9ICdMQ21lbnVzJykge1xuICBjb25zdCBMQ21lbnVzID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShtZW51X3N0b3JhZ2Vfa2V5KSB8fCAnW10nKTtcbiAgbGV0IHJlc3VsdF9wYXRoID0gJy9hdXRoLzQwMyc7XG4gIGlmIChMQ21lbnVzLmxlbmd0aCA+IDApIHtcbiAgICBMQ21lbnVzLmZvckVhY2gobW9kZWxfaXRlbSA9PiB7XG4gICAgICBpZiAobW9kZWxfaXRlbS51cmwgPT09IG1vZGVsX3BhdGgpIHtcbiAgICAgICAgcmVzdWx0X3BhdGggPSBmaW5kRmlyc3RVcmwoW21vZGVsX2l0ZW1dKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBpZiAocmVzdWx0X3BhdGggIT09ICcvYXV0aC80MDMnKSB7XG4gICAgbGV0IHBhdGggPSByZXN1bHRfcGF0aC5yZXBsYWNlKG5ldyBSZWdFeHAobW9kZWxfcGF0aCArICcvJyksICcnKTtcbiAgICBwYXRoICYmIChyZXN1bHRfcGF0aCA9IHBhdGgpO1xuICB9XG4gIHJldHVybiByZXN1bHRfcGF0aDtcbn1cblxuLyoqXG4gKiDojrflj5blvZPliY1tZW5156ys5LiA5Liq5o6I5p2D55qE5qih5Z2XcGF0aFxuICogQHBhcmFtIG1lbnVfc3RvcmFnZV9rZXlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1lbnVGaXJzdEF1dGhNb2RlbChtZW51X3N0b3JhZ2Vfa2V5ID0gJ0xDbWVudXMnKSB7XG4gIGNvbnN0IExDbWVudXMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKG1lbnVfc3RvcmFnZV9rZXkpIHx8ICdbXScpO1xuICBsZXQgcmVzdWx0X3BhdGggPSAnJztcbiAgaWYgKExDbWVudXMubGVuZ3RoKSB7XG4gICAgcmVzdWx0X3BhdGggPSBMQ21lbnVzWzBdLnVybDtcbiAgfVxuICByZXR1cm4gcmVzdWx0X3BhdGg7XG59XG4iXX0=