Security update for permissions_by_term
[yaffs-website] / web / modules / contrib / permissions_by_term / src / Controller / PermissionsByTermController.php
1 <?php
2
3 namespace Drupal\permissions_by_term\Controller;
4
5 use Drupal\Core\Controller\ControllerBase;
6 use \Drupal\Component\Utility\Tags;
7 use Symfony\Component\HttpFoundation\JsonResponse;
8
9 /**
10  * Default controller for the permissions_by_term module.
11  */
12 class PermissionsByTermController extends ControllerBase {
13
14   /**
15    * Returns JSON response for user's autocomplete field in permissions form.
16    *
17    * @return JsonResponse
18    *   The response as JSON.
19    */
20   public function autoCompleteMultiple() {
21     // The user enters a comma-separated list of users.
22     // We only autocomplete the last user.
23     $array = Tags::explode($_REQUEST['q']);
24
25     // Fetch last user.
26     $last_string = trim(array_pop($array));
27
28     $matches = [];
29
30     $aUserIds = \Drupal::entityQuery('user')
31       ->condition('name', $last_string, 'CONTAINS')
32       ->execute();
33
34     $prefix = count($array) ? implode(', ', $array) . ', ' : '';
35
36     foreach ($aUserIds as $iUserId) {
37       $oUser = user_load($iUserId);
38       $matches[$prefix . $oUser->getDisplayName()] = $oUser->getDisplayName();
39     }
40
41     return new JsonResponse($matches);
42   }
43
44 }