class MoxtraMembershipController in Opigno Moxtra 8
Same name and namespace in other branches
- 3.x src/Controller/MoxtraMembershipController.php \Drupal\opigno_moxtra\Controller\MoxtraMembershipController
Controller for the actions related to moxtra membership.
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\opigno_moxtra\Controller\MoxtraMembershipController
Expanded class hierarchy of MoxtraMembershipController
File
- src/
Controller/ MoxtraMembershipController.php, line 15
Namespace
Drupal\opigno_moxtra\ControllerView source
class MoxtraMembershipController extends ControllerBase {
/**
* Database connection.
*
* @var \Drupal\Core\Database\Connection
*/
protected $connection;
/**
* Form builder.
*
* @var \Drupal\Core\Form\FormBuilder
*/
protected $formBuilder;
/**
* MoxtraMembershipController constructor.
*/
public function __construct(Connection $connection, FormBuilderInterface $formBuilder) {
$this->connection = $connection;
$this->formBuilder = $formBuilder;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container
->get('database'), $container
->get('form_builder'));
}
/**
* Returns users of current group for the autocompletion.
*
* @return \Symfony\Component\HttpFoundation\JsonResponse
* A JSON response containing the autocomplete suggestions.
*/
public function addToGroupWorkspaceUserAutocomplete() {
$matches = [];
$string = \Drupal::request()->query
->get('q');
if ($string) {
$like_string = '%' . $this->connection
->escapeLike($string) . '%';
/** @var \Drupal\group\Entity\Group $curr_group */
$curr_group = \Drupal::routeMatch()
->getParameter('group');
$workspace = \Drupal::routeMatch()
->getParameter('workspace');
// Find users by email or name.
$query = \Drupal::entityQuery('user')
->condition('uid', 0, '<>');
$cond_group = $query
->orConditionGroup()
->condition('mail', $like_string, 'LIKE')
->condition('name', $like_string, 'LIKE');
$query = $query
->condition($cond_group)
->sort('name');
$uids = $query
->execute();
$users = User::loadMultiple($uids);
$current_members = $workspace
->getMembersIds();
/** @var \Drupal\user\Entity\User $user */
foreach ($users as $user) {
$id = $user
->id();
$name = $user
->getDisplayName();
// Remove users that are not members of current group
// or already in workspace.
if ($curr_group
->getMember($user) === FALSE || in_array($id, $current_members) || !_opigno_moxtra_is_user_enabled($user)) {
continue;
}
$matches[] = [
'value' => "{$name} ({$id})",
'label' => $name,
'id' => $id,
];
}
}
return new JsonResponse($matches);
}
/**
* Returns all users for the autocompletion.
*
* @return \Symfony\Component\HttpFoundation\JsonResponse
* A JSON response containing the autocomplete suggestions.
*/
public function addToAllWorkspaceUserAutocomplete() {
$matches = [];
$string = \Drupal::request()->query
->get('q');
if ($string) {
$like_string = '%' . $this->connection
->escapeLike($string) . '%';
$workspace = \Drupal::routeMatch()
->getParameter('workspace');
// Find users by email or name.
$query = \Drupal::entityQuery('user')
->condition('uid', 0, '<>');
$cond_group = $query
->orConditionGroup()
->condition('mail', $like_string, 'LIKE')
->condition('name', $like_string, 'LIKE');
$query = $query
->condition($cond_group)
->sort('name');
$uids = $query
->execute();
$users = User::loadMultiple($uids);
$current_members = $workspace
->getMembersIds();
/** @var \Drupal\user\Entity\User $user */
foreach ($users as $user) {
$id = $user
->id();
$name = $user
->getDisplayName();
// Remove users that are already in workspace.
if (in_array($id, $current_members) || $id == 0 || !_opigno_moxtra_is_user_enabled($user)) {
continue;
}
$matches[] = [
'value' => "{$name} ({$id})",
'label' => $name,
'id' => $id,
];
}
}
return new JsonResponse($matches);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ControllerBase:: |
protected | property | The configuration factory. | |
ControllerBase:: |
protected | property | The current user service. | 1 |
ControllerBase:: |
protected | property | The entity form builder. | |
ControllerBase:: |
protected | property | The entity manager. | |
ControllerBase:: |
protected | property | The entity type manager. | |
ControllerBase:: |
protected | property | The key-value storage. | 1 |
ControllerBase:: |
protected | property | The language manager. | 1 |
ControllerBase:: |
protected | property | The module handler. | 2 |
ControllerBase:: |
protected | property | The state service. | |
ControllerBase:: |
protected | function | Returns the requested cache bin. | |
ControllerBase:: |
protected | function | Retrieves a configuration object. | |
ControllerBase:: |
private | function | Returns the service container. | |
ControllerBase:: |
protected | function | Returns the current user. | 1 |
ControllerBase:: |
protected | function | Retrieves the entity form builder. | |
ControllerBase:: |
protected | function | Retrieves the entity manager service. | |
ControllerBase:: |
protected | function | Retrieves the entity type manager. | |
ControllerBase:: |
protected | function | Returns the form builder service. | 2 |
ControllerBase:: |
protected | function | Returns a key/value storage collection. | 1 |
ControllerBase:: |
protected | function | Returns the language manager service. | 1 |
ControllerBase:: |
protected | function | Returns the module handler. | 2 |
ControllerBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
ControllerBase:: |
protected | function | Returns the state storage service. | |
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
MoxtraMembershipController:: |
protected | property | Database connection. | |
MoxtraMembershipController:: |
protected | property |
Form builder. Overrides ControllerBase:: |
|
MoxtraMembershipController:: |
public | function | Returns all users for the autocompletion. | |
MoxtraMembershipController:: |
public | function | Returns users of current group for the autocompletion. | |
MoxtraMembershipController:: |
public static | function |
Instantiates a new instance of this class. Overrides ControllerBase:: |
|
MoxtraMembershipController:: |
public | function | MoxtraMembershipController constructor. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. |