Vladddosss
@Vladddosss

Как правильно настроить casl/vue для vue?

Добрый день.

Как правильно установить способности?
Получаю перечень строк способностей в массиве с сервера, устанавливаю их таким образом
try {
      const {data} = await this.$axios.get('abilities')
     
      this.$ability.update([
        {actions: data.data, subject: 'all'}
      ])
      }

Проверяю
$can('role-access')
Выдает false

Попробовал так установить
// импортировал defineAbility
try {
      const {data} = await this.$axios.get('abilities')
      
      defineAbility((can) => {
        can(data.data, 'all')
      })
      }

Тоже не работает.
В чём ошибка?

Кто опытный скажите, как лучше сделать, получать права при каждом клике или при входе сохранять в локал сторадж?
  • Вопрос задан
  • 343 просмотра
Решения вопроса 1
Vladddosss
@Vladddosss Автор вопроса
Работает так.
// import { AbilityBuilder } from '@casl/ability';
const {data} = await this.$axios.get('abilities')
const { can, rules } = new AbilityBuilder();

can(data.data, 'all');

this.$ability.update(rules);

Инструкция
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы