Marionette js условно останавливает маршрут или удаляет маршрут во время выполнения
Я не уверен, как удержать определенных пользователей от определенных маршрутов.
Проблема в основном в этом. Допустим, у меня есть 3 пользовательских типа, A, B и C, а в моем приложении 10 маршрутов. Я хочу, чтобы пользователь типа A имел доступ, скажем, к маршрутам с 1 по 5, пользователь типа B для доступа к маршрутам с 6 по 10 и тип пользователя C для доступа к маршрутам с 3 по 7.
Проблема в том, что мне нужен мой маршрутизатор, прежде чем я узнаю тип пользователя, иначе я бы просто условно добавил маршруты для каждого типа. Могу ли я удалить маршруты во время выполнения, когда узнаю тип? Есть ли лучший подход?
1 ответ
Хм, я думаю, что есть два способа справиться с этой проблемой. 1) вы можете добавить событие beforeRoute к маршрутизатору марионеток или 2) вы можете проверить в вашем контроллере show(), есть ли у текущего пользователя права доступа.
Вариант 2), может быть так:
const Controller = Object.extend({
show (options) {
//user login params
if (user) {
this._showMainView();
} else {
// Route back or something
}
},
_showMainView () {
this.layout.getRegion('mainRegion').empty().show(new MainView());
}
});