У меня есть несколько маршрутов, защищенных в vue-router, это я делаю через свойство meta маршрутов в vue-router.
Когда я загружаю индексный маршрут, то есть все записи показывают мне кнопку редактирования, так как в этот момент у меня есть это разрешение, если я обновляю этого пользователя, я перехожу на другую панель с администратором и яудалить указанное разрешение.Теперь я иду к обычному пользователю и даю кнопку редактирования моей таблицы, я должен отправить меня на маршрут 403, поскольку у меня нет этого разрешения в данный момент, но его нет, только для следующей навигации по другому маршруту.Я обновляю разрешения.Как мне решить эту проблему?
router.beforeEach((to, from, next) => {
store.dispatch('ME'); // get permissions before navigate route
if (to.matched.some(record => record.meta.permission_name)) {
// I check if the route permits, otherwise send to route 403
if(!store.getters.containsPermission(to.meta.permission_name)){
next({name : '403'})
}
else{
next()
}
}
else{
next()
}
})
Разрешения находятся в базе данных от бэкэнда. Я использую разрешения Laravel и Laravel, изменяя разрешения для этого пользователя от другого пользователя-администратора и выполняя store.dispatch('ME');
Iполучить новые разрешения, которые, как мне показалось, вызывая диспетчерскую службу перед оценкой мета, правильно дойдет до next({'403'});
Надеюсь, вы меня понимаете, если нет, не стесняйтесь комментировать.