View source
<?php
namespace Drupal\feeds;
use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\Core\Url;
use Drupal\feeds\Entity\FeedType;
class FeedsPermissions {
use StringTranslationTrait;
public function contentPermissions() {
return [
'access feed overview' => [
'title' => $this
->t('Access the Feed overview page'),
'description' => $this
->t('Get an overview of <a href=":url">all feeds</a>.', [
':url' => Url::fromRoute('feeds.admin'),
]),
],
];
}
public function feedTypePermissions() {
$perms = [];
foreach (FeedType::loadMultiple() as $type) {
$perms += $this
->buildPermissions($type);
}
return $perms;
}
protected function buildPermissions(FeedType $feed_type) {
$args = [
'%name' => $feed_type
->label(),
];
$id = $feed_type
->id();
return [
"view {$id} feeds" => [
'title' => $this
->t('%name: View feeds', $args),
],
"create {$id} feeds" => [
'title' => $this
->t('%name: Create new feeds', $args),
],
"update {$id} feeds" => [
'title' => $this
->t('%name: Update existing feeds', $args),
],
"delete {$id} feeds" => [
'title' => $this
->t('%name: Delete feeds', $args),
],
"import {$id} feeds" => [
'title' => $this
->t('%name: Import feeds', $args),
],
"schedule_import {$id} feeds" => [
'title' => $this
->t('%name: Import feeds in background', $args),
],
"clear {$id} feeds" => [
'title' => $this
->t('%name: Delete feed items', $args),
],
"unlock {$id} feeds" => [
'title' => $this
->t('%name: Unlock feeds', $args),
'description' => $this
->t('If a feed importation breaks for some reason, users with this permission can unlock it.'),
],
];
}
}