Я видел некоторые проблемы по этой конкретной проблеме.Angular2 Router CanActivate, с параметрами?
В последнее время я работаю только над проектами angular2. Во всяком случае, я сейчас перехожу к проблеме. В устаревшем маршрутизаторе я добавил свою роль пользователя в части данных маршрута, я переопределил routerOutlet, чтобы проверить это значение до активации маршрута).
В настоящее время мы можем соответствовать строке CanActivate класса/интерфейса w/e, которую мы можем назвать.
Прямо сейчас, я хотел бы иметь возможность предоставить Разрешения (которые я ударил в Enum) таким классам CanActivate. Прежде чем я просто проверил, был ли пользователь зарегистрирован при доступе к моему SessionService, мне теперь нужно проверить, есть ли у пользователя определенные разрешения.
Как я вижу, теперь я должен реализовать новый класс, который реализует CanActivate для каждого разрешения. Прямо сейчас это означало бы, что у меня будет 7. Мы, однако, находимся на ранней стадии этого точного проекта, и, не слишком думая, я мог бы улучшить это до 11.
Что я вижу перед собой - это реализация, которая будет только стоил мне около 3 - 5 строк за такую реализацию canActivate. Однако я бы лучше помог реализовать, где я мог бы предоставить свойства или параметры.
Не думать о ситуации, я должен реализовать классы, как:
CanActivateIfUserHasPermissionsViewContentAndViewUsers или даже дольше.
Примечание: в моей ситуации разрешения - это в основном несколько действий. Как и все элементы содержимого, или отредактируйте их все и т. Д.
Хороший вопрос :) Я думаю, что это может быть сделано с другой стороны. Вы можете импортировать следующий маршрут в «CanActivateGuard» и посмотреть, есть ли у пользователя разрешение. –
Вы получите путь, а не объект маршрута. Итак, что происходит, когда это детский маршрут, будет ли это соответствовать? Охраняет ли ваш охранник и о детских маршрутах? Или вы сканируете свои подмодули для конфигурации маршрута. Не проверили это, хотя. –
У меня нет кода для проверки. Но я найду 'ActivatedRouteSnapshot'https: //angular.io/docs/ts/latest/api/router/index/ActivatedRouteSnapshot-interface.html –