AddSingleOgMembershipRole.php in Organic groups 8
File
src/Plugin/Action/AddSingleOgMembershipRole.php
View source
<?php
declare (strict_types=1);
namespace Drupal\og\Plugin\Action;
use Drupal\og\Entity\OgMembership;
use Drupal\og\Entity\OgRole;
class AddSingleOgMembershipRole extends ChangeSingleOgMembershipRoleBase {
public function execute(?OgMembership $membership = NULL) {
if (!$membership) {
return;
}
$role_name = $this->configuration['role_name'];
$role_id = implode('-', [
$membership
->getGroupEntityType(),
$membership
->getGroupBundle(),
$role_name,
]);
$role = OgRole::load($role_id);
if ($membership
->isRoleValid($role) && !$membership
->hasRole($role_id)) {
$membership
->addRole($role)
->save();
}
}
}