Изменить целевую страницу Jhipster в зависимости от полномочий - PullRequest
0 голосов
/ 05 марта 2019

Я видел, что можно изменить целевую страницу Jhipster, добавив эту строку,

registerAuthenticationSuccess() {
    this.eventManager.subscribe('authenticationSuccess', (message) => {
        this.principal.identity().then((account) => {
         if (account.authorities.indexOf('ROLE_CONTRACTOR') >=0)
        {
            this.router.navigate(['/property']);
        }
        else
        {
            this.account = account;
        }
        });
    });
}

в home.component.ts и вызвать ее в методе onInit как

this.principal.identity().then((account) => {
        this.account = account;
    });
    this.registerAuthenticationSuccess();
* 1006.* Однако в моем случае это не работает.На моей домашней странице я определил только права администратора, чтобы иметь возможность доступа к домашней странице в файле route.ts, как показано ниже:
export const HOME_ROUTE: Route = {  path: '',  component: HomeComponent, data: {    authorities: ['ROLE_ADMIN'],    pageTitle: 'home.title'  },  canActivate: [UserRouteAccessService]};

Но когда я вхожу в качестве подрядчика, я перенаправлен на знак-в странице, говоря, что у меня нет разрешения перейти на домашнюю страницу.Он не перенаправляется на страницу свойств.

1 Ответ

0 голосов
/ 05 марта 2019

Полагаю, в Jhipster, когда мы войдем в систему, он по умолчанию переходит в HomeComponent.В вашем случае это происходит сбой, потому что только ROLE_ADMIN может получить доступ к HomeComponent.Таким образом, очевидно, что он не позволит пользователю с ROLE_CONTRACTOR войти в систему, он будет перенаправлен на неавторизованную страницу перед вызовом метода, в котором вы написали код для навигации маршрутизатора.

Поэтому попробуйте удалить полномочия: ['ROLE_ADMIN'] из пути маршрута, поэтому он разрешит всем пользователям доступ к HomeComponent, а если пользователь использует ROLE_CONTRACTOR, он перенаправит на страницу свойств.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...