| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- const resources = [
- { value: 'art', label: '作品' },
- { value: 'art-daily', label: '每日一图' },
- { value: 'art-album', label: 'Art Album' },
- { value: 'category', label: '分类管理' },
- { value: 'translate', label: '多语翻译' },
- { value: 'user', label: '用户' },
- { value: 'role', label: '角色' },
- ];
- const actions = [
- { value: 'read', label: '查看' },
- { value: 'create', label: '创建' },
- { value: 'update', label: '更新' },
- { value: 'delete', label: '删除' },
- ];
- const possessions = [
- { value: 'own', label: '自己的' },
- { value: 'any', label: '全部' },
- ];
- const resourcesHash = resources.reduce((h, cur) => { h[cur.value] = cur.label; return h; }, {});
- const actionsHash = actions.reduce((h, cur) => { h[cur.value] = cur.label; return h; }, {});
- const possessionsHash = possessions.reduce((h, cur) => { h[cur.value] = cur.label; return h; }, {});
- /**
- * 将grant信息翻译成人可读的
- * @param {*} grants
- */
- function translate(grant) {
- let { resource, action, possession, attributes } = grant;
- resource = resourcesHash[resource] || resource;
- action = actionsHash[action] || action;
- possession = possessionsHash[possession] || possession;
- return { resource, action, possession, attributes };
- }
- function fullGrants() {
- let grants = [];
- resources.forEach(res => {
- actions.forEach(act => {
- grants.push({
- resource: res.value,
- action: act.value,
- possession: 'any',
- attributes: '*',
- })
- });
- })
- return grants;
- }
- module.exports = { resources, actions, possessions, translate, fullGrants }
|