Skip to content

Commit

Permalink
Merged in bugfix/SHIBUI-1550 (pull request #402)
Browse files Browse the repository at this point in the history
SHIBUI-1550 Filtered navigation actions by user role
  • Loading branch information
rmathis committed Oct 31, 2019
2 parents cc8830c + 9a34881 commit 1158ee3
Show file tree
Hide file tree
Showing 7 changed files with 18 additions and 25 deletions.
8 changes: 1 addition & 7 deletions ui/src/app/admin/admin.component.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,10 @@
import { Component } from '@angular/core';

import * as fromRoot from '../app.reducer';
import { Store } from '@ngrx/store';
import { LoadAdminRequest } from './action/admin-collection.action';

@Component({
selector: 'admin-page',
templateUrl: './admin.component.html',
styleUrls: []
})
export class AdminComponent {
constructor(
private store: Store<fromRoot.State>
) {}
constructor() {}
}
7 changes: 1 addition & 6 deletions ui/src/app/admin/container/action-required.component.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
import { Component, ChangeDetectionStrategy } from '@angular/core';
import { Store } from '@ngrx/store';

import * as fromRoot from '../../app.reducer';

@Component({
selector: 'action-required-page',
Expand All @@ -11,7 +8,5 @@ import * as fromRoot from '../../app.reducer';
})
export class ActionRequiredPageComponent {

constructor(
private store: Store<fromRoot.State>
) {}
constructor() {}
}
8 changes: 1 addition & 7 deletions ui/src/app/admin/container/admin-management.component.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
import { Component, ChangeDetectionStrategy } from '@angular/core';
import { Store } from '@ngrx/store';

import * as fromRoot from '../../app.reducer';
import { LoadAdminRequest } from '../action/admin-collection.action';

@Component({
selector: 'admin-management-page',
Expand All @@ -12,7 +8,5 @@ import { LoadAdminRequest } from '../action/admin-collection.action';
})
export class AdminManagementPageComponent {

constructor(
private store: Store<fromRoot.State>
) {}
constructor() {}
}
13 changes: 10 additions & 3 deletions ui/src/app/app.component.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';
import { Observable, of } from 'rxjs';
import { map, catchError } from 'rxjs/operators';
import { Observable, of, combineLatest } from 'rxjs';
import { map, catchError, filter } from 'rxjs/operators';

import { Store } from '@ngrx/store';

Expand Down Expand Up @@ -44,7 +44,14 @@ export class AppComponent implements OnInit {
this.formatted$ = this.version$.pipe(map(this.formatter));
this.isAdmin$ = this.store.select(fromRoot.isCurrentUserAdmin);

this.nav$ = this.navService.emitter;
this.nav$ = combineLatest(
this.store.select(fromRoot.getCurrentUserRole).pipe(filter(r => !!r)),
this.navService.emitter
).pipe(
map(([role, actions]) => actions.filter(
action => action.restrict ? action.restrict.includes(role) : action
)
));
}

ngOnInit(): void {
Expand Down
1 change: 1 addition & 0 deletions ui/src/app/core/model/action.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ export interface NavigationAction {
label: string;
content: string;
icon?: string;
restrict?: string[];
}
2 changes: 2 additions & 0 deletions ui/src/app/core/reducer/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,6 @@ export const getConfigState = createSelector(getCoreFeature, getConfigStateFn);
export const getRoles = createSelector(getConfigState, fromConfig.getRoles);

export const getUserRoles = createSelector(getRoles, filterRolesFn);
export const getCurrentUserRole = createSelector(getUser, u => u ? u.role : null);

export const isCurrentUserAdmin = createSelector(getUser, isUserAdminFn);
4 changes: 2 additions & 2 deletions ui/src/app/metadata/metadata.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import { NavigationService } from '../core/service/navigation.service';
import { MetadataResolver } from './domain/model';
import { AddDraftRequest } from './resolver/action/draft.action';
import * as fromResolver from './resolver/reducer';
import * as fromProvider from './provider/reducer';
import { Router } from '@angular/router';

@NgModule({
Expand Down Expand Up @@ -66,7 +65,8 @@ export class MetadataModule {
this.router.navigate(['/metadata', 'provider', 'wizard']);
},
category: 'metadata',
icon: 'fa-cubes'
icon: 'fa-cubes',
restrict: ['ROLE_ADMIN']
});
}
}

0 comments on commit 1158ee3

Please sign in to comment.