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());
}

});

Другие вопросы по тегам