3 namespace Drupal\permissions_by_term\Controller;
5 use Drupal\Core\Controller\ControllerBase;
6 use \Drupal\Component\Utility\Tags;
7 use Symfony\Component\HttpFoundation\JsonResponse;
10 * Default controller for the permissions_by_term module.
12 class PermissionsByTermController extends ControllerBase {
15 * Returns JSON response for user's autocomplete field in permissions form.
17 * @return JsonResponse
18 * The response as JSON.
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']);
26 $last_string = trim(array_pop($array));
30 $aUserIds = \Drupal::entityQuery('user')
31 ->condition('name', $last_string, 'CONTAINS')
34 $prefix = count($array) ? implode(', ', $array) . ', ' : '';
36 foreach ($aUserIds as $iUserId) {
37 $oUser = user_load($iUserId);
38 $matches[$prefix . $oUser->getDisplayName()] = $oUser->getDisplayName();
41 return new JsonResponse($matches);