RoleAccessControlRelationsProvider.php in Role Access Control 8.2
File
modules/rac_relations/src/Plugin/adva/AccessProvider/RoleAccessControlRelationsProvider.php
View source
<?php
namespace Drupal\rac_relations\Plugin\adva\AccessProvider;
use Drupal\adva\Plugin\adva\ReferenceAccessProvider;
use Drupal\Core\Link;
use Drupal\Core\Session\AccountInterface;
class RoleAccessControlRelationsProvider extends ReferenceAccessProvider {
public static function getTargetType() {
return "user_role";
}
public function getAuthorizedEntityIds($operation, AccountInterface $account) {
$userRoles = _rac_get_account_roles('update', $account);
return array_map(function ($role) {
return $role
->id();
}, $userRoles);
}
public static function getHelperMessage(array $definition) {
$context = [
'%provider' => $definition['label'],
];
$context['%link'] = Link::createFromRoute($definition['label'] . ' settings', 'rac_relations.settings', [], $context)
->toString();
$message = '<p>' . \Drupal::translation()
->translate('<em>%provider</em> allows a user to access control content based upon role relations. You can configure the access relations in the %link.', $context) . '</p>';
$message .= '<p>' . parent::getHelperMessage($definition) . '</p>';
return $message;
}
}