class DefaultController in Username originality AJAX check 8
Default controller for the username_check module.
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\username_check\Controller\DefaultController
Expanded class hierarchy of DefaultController
File
- src/
Controller/ DefaultController.php, line 16 - Contains \Drupal\username_check\Controller\DefaultController.
Namespace
Drupal\username_check\ControllerView source
class DefaultController extends ControllerBase {
public function username_check_callback() {
$output = [];
$username = $_GET['username'];
$ret = user_validate_name($username);
if ($ret) {
$output['allowed'] = FALSE;
$output['msg'] = $ret;
}
else {
$ret = user_is_blocked($username);
if ($ret) {
$output['allowed'] = FALSE;
$output['msg'] = t('The username %username is not allowed.', [
'%username' => $username,
]);
}
else {
//$username = check_plain($username);
$username = SafeMarkup::checkPlain($username);
$ret = $this
->_username_check_is_user_exists($username);
if ($ret) {
$url = Url::fromRoute("user.page");
$login_link = \Drupal::l(t('login'), $url);
$forgot_link = \Drupal::l(t(' password'), $url);
$output['allowed'] = FALSE;
$output['msg'] = t('The username %username is already taken. If this is you, please ' . $login_link . ' or if you\'ve forgotten your password, ' . $forgot_link . '.', [
'%username' => $username,
]);
}
else {
$output['allowed'] = TRUE;
}
}
}
return new JsonResponse($output);
}
/**
* Query user table to check if such username is already exists.
*/
function _username_check_is_user_exists($username) {
return db_query("SELECT COUNT(u.name) count FROM {users_field_data} u WHERE LOWER(u.name) = LOWER(:username)", array(
':username' => $username,
))
->fetchField();
}
public function username_check_profile_callback() {
$output = [];
$username = $_GET['profile'];
$ret = user_validate_name($username);
if ($ret) {
$output['allowed'] = FALSE;
$output['msg'] = $ret;
}
else {
$ret = user_is_blocked($username);
if ($ret) {
$output['allowed'] = FALSE;
$output['msg'] = t('The username %username is not allowed.', [
'%username' => $username,
]);
}
else {
$username = SafeMarkup::checkPlain($username);
// check to see if this username is the current users username
$ret = $this
->_username_check_is_current_user($username);
print_r($ret);
die;
if ($ret == 0) {
$output['allowed'] = TRUE;
$output['msg'] = t('The username %username is your username.', [
'%username' => $username,
]);
}
else {
$ret = $this
->_username_check_is_user_exists($username);
if ($ret) {
$output['allowed'] = FALSE;
$output['msg'] = t('The username %username is already taken.', [
'%username' => $username,
]);
}
else {
$output['allowed'] = TRUE;
}
}
}
}
return new JsonResponse($output);
}
/**
* Query user table to check if this is the current user.
*/
function _username_check_is_current_user($username) {
$account = \Drupal::currentUser();
return db_query("SELECT COUNT(u.name) count FROM {users_field_data} u WHERE LOWER(u.name) = LOWER(:username) AND u.uid =" . $account
->id(), array(
':username' => $username,
))
->fetchField();
}
public function username_check_mail_callback() {
$output = [];
$mail = $_GET['mail'];
$ret = valid_email_address($mail);
if (!$ret) {
$output['msg'] = $ret;
}
else {
$ret = user_is_blocked($mail);
$output['allowed'] = FALSE;
if ($ret) {
$output['allowed'] = FALSE;
$output['msg'] = t('The e-mail address %mail is not allowed.', [
'%mail' => $mail,
]);
}
else {
$mail = SafeMarkup::checkPlain($mail);
$ret = $this
->_username_check_is_mail_exists($mail);
if ($ret) {
$url = Url::fromRoute("user.page");
$login_link = \Drupal::l(t('login'), $url);
$forgot_link = \Drupal::l(t(' password'), $url);
$output['allowed'] = FALSE;
$output['msg'] = t('The e-mail address %mail is already in the system, you have an account here. Please ' . $login_link . ' or if you\'ve forgotten your password, ' . $forgot_link . '.', [
'%mail' => $mail,
]);
}
else {
$output['allowed'] = TRUE;
}
}
}
return new JsonResponse($output);
}
/**
* Query user table to check if such mail is already exists.
*/
public function _username_check_is_mail_exists($mail) {
return db_query("SELECT COUNT(u.mail) count FROM {users_field_data} u WHERE LOWER(u.mail) = LOWER(@mail)", array(
'@mail' => $mail,
))
->fetchField();
}
}
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 form builder. | 2 |
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:: |
public static | function |
Instantiates a new instance of this class. Overrides ContainerInjectionInterface:: |
40 |
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. | |
DefaultController:: |
public | function | ||
DefaultController:: |
public | function | ||
DefaultController:: |
public | function | ||
DefaultController:: |
function | Query user table to check if this is the current user. | ||
DefaultController:: |
public | function | Query user table to check if such mail is already exists. | |
DefaultController:: |
function | Query user table to check if such username is already exists. | ||
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. | |
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. |