| 12345678910111213141516171819202122232425262728293031 |
- 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;
- }
|