Сделать доступным вложенный маршрут внутри AuthenticatedRouteMixin - PullRequest
0 голосов
/ 10 июня 2018

Я бы хотел "освободить" один вложенный маршрут, чтобы и пользователи, которые даже не вошли в систему, могли получить доступ к этому маршруту.

Например:

posts - /create - /edit - /show

На маршруте posts я использовал AuthenticatedRouteMixin.При этом все суб-маршруты автоматически защищены.Теперь я хочу сделать доступным /show.Я знаю, что мог бы использовать миксин на /create и /edit и удалить его из маршрута posts, но если у вас есть 10+ вложенных маршрутов и только 1 из них должен быть доступен также для незарегистрированных пользователей, этонеудобно.

Знаете ли вы какие-либо другие решения этой проблемы?

Если нет, я думаю, что мне нужно написать дополнительный миксин для этого ...

Спасибо!

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Вы можете подделать вложенный маршрут, используя параметр пути:

this.route('posts', function() {
    this.route('create');
    this.route('edit');
});
this.route('posts-show', { path: '/posts/show' });
0 голосов
/ 11 июня 2018

AuthenticatedRouteMixin ember-simple-auth использует хук beforeModel, чтобы проверить, является ли session.isAuthenticated или нет.Вам нужно переопределить beforeModel в маршруте 'show', чтобы пропустить проверку Auth, минуя реализацию super () AuthenticatedRouteMixin.

beforeModel (transition, skipAuthCheck) {
    if (!skipAuthCheck) {
       return this._super(...arguments, true);
    }
}

Проверьте, есть ли у 'show' beforeModel зависимость от родительского маршрута .ie'posts', выполните эту проверку на родительском маршруте.

...