Closed forest-lynx closed 5 months ago
Здравствуйте, интересный PR, но пакет уже создает автоматически права при заходе в ресурсе с трейтом WithRolePermissions. В MoonshineRBAC провайдере когда проверяется права, проверяется существования прав в таблице, если их нету, скрипт создаёт их. Этот скрипт находится в трейте, который мы добавили для Role модели.
В Провайдере есть вот такой код
foreach ($user->roles as $role) {
$hasPermission = $role->isHavePermission(
class_basename($resource::class),
$ability
);
if ($hasPermission) {
break;
}
}
Вызывается функция isHavePermission() из трейта.
В целом можно добавить, но это не обязательный шаг для установки пакета. Что думаете ?
Добрый день! При развертывании проекта на другой локальной машине у меня не произошло автоматическое добавление разрешений, вот и подумал, что при инициализации было бы неплох автоматизировать процесс добавления разрешений. Думаю в таком случае действительно нет необходимости добавления такого функционала. Спасибо за указание на методы автоматического добавления разрешений, изначально не обратил на это внимание. Есть предложение, чисто по улучшению, перевести команды на Laravel Prompts. Если одобряете, могу в ближайшее время заняться этим вопросом.
Здравствуйте, возможно не произошло, потому что нужно зайти в ресурс и только тогда он начнет создавать права. Думаю функционал был бы интересный для версии 1.х, там было сложнее сделать такое, но сейчас процесс автоматизирован 🤗
Насчет Laravel Prompts, идея суперская, тоже хотел внедрить этот пакет, но руки не доходили. Спасибо за следующий PR, но думаю не очень сильно важный, или чтоб просто оптимизировать пакет, можете убрать как важный шаг из документации и просто добавить как функцию, которая создаёт эти права при установке пакета, вдруг пакет поставят на Проде и чтоб не грузить базу в лишний раз. Можно ещё добавить в документацию по командам.
Добрый день! Внес корректировки для включения данного функционала как вспомогательного. На следующей неделе займусь тогда Promts.
Здравствуйте, вы забыли зарегистрировать команду в Провайдере
Добрый день! Добавил.
Реализовал добавление разрешений в базу данных в случае когда установка пакета происходит где уже реализованы ресурсы Moonshine, при наличии в них трейта WithRolePermissions текущего пакета.