Проверка роли пользователя в репозитории настроек (машинопись, аурелия) - PullRequest
1 голос
/ 19 апреля 2019

Я делаю навигацию с авторизацией.Я сделал что-то вроде этого

run(navigationInstruction: NavigationInstruction, next: Next) : Promise<any> {

    let requiredRoles = navigationInstruction.getAllInstructions()
                        .map(i => i.config.settings.roles)[0];

    toastr.success('TEST1');

    let isUserInRole = requiredRoles?   
        requiredRoles.some(r => r === this.userIdentity.role) : true;

    toastr.success('TEST2');//LINE IT`S NOT EXECUTED

    return isUserInRole? next() : next.cancel(new Redirect('users/login'));    
}

requiredRoles - Я проверил, и он возвращает мне значение

В строку r => r === this.userIdentity.role В моем визуальном коде у меня есть сообщение вроде:Parameter 'r' implicitly has an 'any' type, but a better type may be inferred from usage.ts(7044)

1 Ответ

1 голос
/ 20 апреля 2019

Я думаю, что вы можете сделать это приведение .roles)[0] к строке (я думаю, по виду вашего кода)

run(navigationInstruction: NavigationInstruction, next: Next) : Promise<any> {

    let requiredRoles = navigationInstruction.getAllInstructions()
                        .map(i => i.config.settings.roles)[0] as string;
  ...  
}

Редактировать: если роли - это массив строк, то ваш код должен выглядеть следующим образом

run(navigationInstruction: NavigationInstruction, next: Next) : Promise<any> {

    let requiredRoles = navigationInstruction.getAllInstructions()
                        .map(i => i.config.settings.roles)[0] as string[];
  ...  
}

Это должно решить проблему.

...