concrete5 8.4+, как программно добавить групповые разрешения в File Manager - PullRequest
0 голосов
/ 06 июня 2019

Может ли кто-нибудь помочь мне, как программно добавить групповые разрешения в Диспетчер файлов, что эквивалентно добавлению групповых разрешений в Панель управления -> Система и настройки -> Файлы -> Разрешения файлового менеджера -> Добавить файл?

Я могу добавить групповые разрешения в папку:

$group = Group::getByName('Group Name');
if (is_object($group)) {
    $file_system = $this->app->make(Filesystem::class);
    $root_folder = $file_system->getRootFolder();
    $folder_name = t('My Folder');
    $folder = FileFolder::getNodeByName($folder_name);
    if (!is_object($folder) || !$folder instanceof FileFolder) {
        $folder->assignPermissions($group, ['add_file']);
    }
}

Но как мне сделать это глобально не только для папки, но так, чтобы она была установлена ​​в Dashboard? Я пробовал это, но это не работает:

$pk = PermissionKey::getByHandle('add_file');
$pk->setPermissionObject($folder);
$pa = $pk->getPermissionAccessObject();
$pe = GroupEntity::getOrCreate($group);
$pa->addListItem($pe, false, PermissionKey::ACCESS_TYPE_INCLUDE);

А как мне удалить его при удалении пакета?

Спасибо.

...