web-dev-qa-db-ja.com

プログラムでhook_installからカスタムロールに権限を付与します

Drupalバージョン:8.5.5

モジュールのインストール中に既存のロールに権限を割り当てる必要があります:hook_installで以下のコードを使用しています:

use Drupal\user\RoleInterface;
use Drupal\user\UserInterface;
function hook_install() {

 $permission = 'test permission';
    $tester_rid = RoleInterface::TESTER;

    if ('tester' == Role::load($tester_rid)) {
      $tester_role->grantPermission($permission);
      $tester_role->save();
    }
}

上記の許可は機能していません。私も試しました

user_role_grant_permissions(RoleInterface::ANONYMOUS_ID, array(
      'my custom permission',
    ));
user_role_grant_permissions(RoleInterface::TESTER, array(
      'my custom permission',
    ));

上記のhook_installが機能していません。

Plsのヘルプ

2

これを試して:

use Drupal\user\Entity\Role;

function mymodule_install() {
  $role_object = Role::load('my custom role name');
  $role_object->grantPermission('my custom permission name');
  $role_object->save();
}
4
Andy Lasda