1234567891011121314151617181920212223242526272829303132 |
- import { DashboardAcl, DashboardAclDTO } from 'app/types/acl';
- export function processAclItems(items: DashboardAclDTO[]): DashboardAcl[] {
- return items.map(processAclItem).sort((a, b) => b.sortRank! - a.sortRank! || a.name!.localeCompare(b.name!));
- }
- function processAclItem(dto: DashboardAclDTO): DashboardAcl {
- const item = dto as DashboardAcl;
- item.sortRank = 0;
- if (item.userId! > 0) {
- item.name = item.userLogin;
- item.sortRank = 10;
- } else if (item.teamId! > 0) {
- item.name = item.team;
- item.sortRank = 20;
- } else if (item.role) {
- item.icon = 'fa fa-fw fa-street-view';
- item.name = item.role;
- item.sortRank = 30;
- if (item.role === 'Editor') {
- item.sortRank += 1;
- }
- }
- if (item.inherited) {
- item.sortRank += 100;
- }
- return item;
- }
|