Security update for permissions_by_term
[yaffs-website] / web / modules / contrib / permissions_by_term / src / Service / Term.php
1 <?php
2
3 namespace Drupal\permissions_by_term\Service;
4
5 use Drupal\Core\Database\Connection;
6
7 /**
8  * Class Term
9  *
10  * @package Drupal\permissions_by_term\Service
11  */
12 class Term {
13
14   /**
15    * The database connection.
16    *
17    * @var Connection
18    */
19   private $database;
20
21   /**
22    * Term constructor.
23    *
24    * @param Connection $database
25    */
26   public function __construct(
27     Connection $database
28   ) {
29     $this->database = $database;
30   }
31
32   /**
33    * @param int $nid
34    *
35    * @return array
36    */
37   public function getTidsByNid($nid) {
38     $query = $this->database->select('taxonomy_index', 'ti')
39       ->fields('ti', ['tid'])
40       ->condition('ti.nid', $nid);
41
42     return $query->execute()
43       ->fetchCol();
44   }
45
46   /**
47    * @param array $tids
48    *
49    * @return array
50    */
51   public function getNidsByTids($tids) {
52     if (!empty($tids)) {
53       $query = $this->database->select('taxonomy_index', 'ti')
54           ->fields('ti', ['nid'])
55           ->condition('ti.tid', $tids, 'IN');
56
57       $nids = $query->execute()
58         ->fetchCol();
59
60       return array_unique($nids);
61     }
62     else {
63       return [];
64     }
65   }
66
67   /**
68    * @param string $sTermName
69    *
70    * @return int
71    */
72   public function getTermIdByName($sTermName) {
73     $aTermId = \Drupal::entityQuery('taxonomy_term')
74       ->condition('name', $sTermName)
75       ->execute();
76     return key($aTermId);
77   }
78
79   /**
80    * @param int $term_id
81    *
82    * @return string
83    */
84   public function getTermNameById($term_id) {
85     $term_name = \Drupal::entityQuery('taxonomy_term')
86       ->condition('id', $term_id)
87       ->execute();
88     return key($term_name);
89   }
90
91 }