public static function UloginHelper::userSave in uLogin (advanced version) 8
Internal functions.
1 call to UloginHelper::userSave()
- UloginController::uloginCallback in src/
Controller/ UloginController.php - Call back for login and registration.
File
- src/
UloginHelper.php, line 102
Class
- UloginHelper
- Ulogin Helper class.
Namespace
Drupal\uloginCode
public static function userSave($data, $uid = NULL) {
if ($uid) {
$account = User::load($uid);
}
else {
$account = \Drupal::currentUser();
}
UloginHelper::identitySave($data, $uid);
$user_save_trigger = FALSE;
// Save user picture.
if (\Drupal::config('ulogin.settings')
->get('user_pictures') && \Drupal::config('ulogin.settings')
->get('pictures')) {
$photo_url = '';
if (!empty($data['photo_big']) && $data['photo_big'] != 'http://ulogin.ru/img/photo_big.png') {
$photo_url = $data['photo_big'];
}
elseif (!empty($data['photo']) && $data['photo'] != 'http://ulogin.ru/img/photo.png') {
$photo_url = $data['photo'];
}
if ($photo_url) {
$photo = \Drupal::httpClient()
->get($photo_url);
$file = file_save_data($photo
->getBody()
->getContents());
// To make user_save() to process the file and move it.
$file
->set('status', 0);
$account
->set('user_picture', $file);
$user_save_trigger = TRUE;
}
}
// Email_confirm: if email was manually entered - trigger email change confirmation.
if (!empty($data['email']) && !empty($data['manual']) && in_array('email', explode(',', $data['manual'])) && \Drupal::config('ulogin.settings')
->get('email_confirm') && \Drupal::moduleHandler()
->moduleExists('email_confirm')) {
$account
->set('mail', $data['email']);
$user_save_trigger = TRUE;
if ($uid) {
// Backup original user.
$user_backup = \Drupal::currentUser();
// Replace user with fake one so that email_confirm module works without notices.
$user = $account;
}
}
if ($user_save_trigger) {
// Hack to remove one notice from Legal module.
if (\Drupal::moduleHandler()
->moduleExists('legal')) {
$account
->set('legal_accept', NULL);
}
$account
->save();
}
// Return original user back.
if (isset($user_backup)) {
\Drupal::currentUser()
->setAccount($user_backup);
}
}