annotate core/modules/taxonomy/src/TaxonomyPermissions.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children 1fec387a4317
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\taxonomy;
Chris@0 4
Chris@0 5 use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
Chris@0 6 use Drupal\Core\Entity\EntityManagerInterface;
Chris@0 7 use Drupal\Core\StringTranslation\StringTranslationTrait;
Chris@0 8 use Symfony\Component\DependencyInjection\ContainerInterface;
Chris@0 9
Chris@0 10 /**
Chris@0 11 * Provides dynamic permissions of the taxonomy module.
Chris@0 12 *
Chris@0 13 * @see taxonomy.permissions.yml
Chris@0 14 */
Chris@0 15 class TaxonomyPermissions implements ContainerInjectionInterface {
Chris@0 16
Chris@0 17 use StringTranslationTrait;
Chris@0 18
Chris@0 19 /**
Chris@0 20 * The entity manager.
Chris@0 21 *
Chris@0 22 * @var \Drupal\Core\Entity\EntityManagerInterface
Chris@0 23 */
Chris@0 24 protected $entityManager;
Chris@0 25
Chris@0 26 /**
Chris@0 27 * Constructs a TaxonomyPermissions instance.
Chris@0 28 *
Chris@0 29 * @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager
Chris@0 30 * The entity manager.
Chris@0 31 */
Chris@0 32 public function __construct(EntityManagerInterface $entity_manager) {
Chris@0 33 $this->entityManager = $entity_manager;
Chris@0 34 }
Chris@0 35
Chris@0 36 /**
Chris@0 37 * {@inheritdoc}
Chris@0 38 */
Chris@0 39 public static function create(ContainerInterface $container) {
Chris@0 40 return new static($container->get('entity.manager'));
Chris@0 41 }
Chris@0 42
Chris@0 43 /**
Chris@0 44 * Get taxonomy permissions.
Chris@0 45 *
Chris@0 46 * @return array
Chris@0 47 * Permissions array.
Chris@0 48 */
Chris@0 49 public function permissions() {
Chris@0 50 $permissions = [];
Chris@0 51 foreach ($this->entityManager->getStorage('taxonomy_vocabulary')->loadMultiple() as $vocabulary) {
Chris@0 52 $permissions += [
Chris@0 53 'edit terms in ' . $vocabulary->id() => [
Chris@0 54 'title' => $this->t('Edit terms in %vocabulary', ['%vocabulary' => $vocabulary->label()]),
Chris@0 55 ],
Chris@0 56 ];
Chris@0 57 $permissions += [
Chris@0 58 'delete terms in ' . $vocabulary->id() => [
Chris@0 59 'title' => $this->t('Delete terms from %vocabulary', ['%vocabulary' => $vocabulary->label()]),
Chris@0 60 ],
Chris@0 61 ];
Chris@0 62 }
Chris@0 63 return $permissions;
Chris@0 64 }
Chris@0 65
Chris@0 66 }