SHARE
TWEET

Untitled

a guest Mar 20th, 2017 81 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  public function userRegisterByList(Request $request)
  2.     {
  3.  
  4.         $emails_list = $request['emails_list'];
  5.         $user_ids = [];
  6.  
  7.         //перевод в нижний регистр
  8.         $emails_list = strtolower($emails_list);
  9.         //вставим разделитель емейлов " selector_of_emails" в текст с емейлами
  10.         $emails_list = preg_replace('/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6})/', '$1 selector_of_emails', $emails_list);
  11.         //переобразум струку в масив адрессов с помощью разделителя
  12.         $emails_list = explode(' selector_of_emails', $emails_list);
  13.         //уберем пробелы и другие символы с начала и конца строки (каждого адреса)
  14.         foreach ($emails_list as $email) {
  15.             $emails[] = trim($email);
  16.         }
  17.         //уберем пустые строки из масива адресов
  18.         foreach ($emails as $key => $val) {
  19.             if ($val == "") unset($emails[$key]);
  20.         }
  21.  
  22.         //создание списка емейлов что уже зарегистрированы и есть в новом списке для регистрации, а также их удаление из нового списка емейлов
  23.         $emails_all = User::all()->pluck('email')->toArray();
  24.         $emails_new = array_diff($emails, $emails_all);
  25.         $emails_exist = array_diff($emails, $emails_new);
  26.  
  27.         //разсылка и регистрация пользователей по списку емейлов
  28.         foreach ($emails_new as $email) {
  29.  
  30.             $password = $this->setUserPassword();
  31.  
  32.             $user = new User();
  33.  
  34.             $user->email = $email;
  35.             $user->password = bcrypt($password);
  36.             $user->password_native = $password;
  37.             $user->user_type_id = 1;
  38.             $user->visitcount = 1;
  39.             $user->activity = true;
  40.  
  41.             $user->save();
  42.  
  43.             $user_ids[] = $user->id;
  44.  
  45.  
  46.             //send register email to user
  47.  
  48.             $user_first_name = null;
  49.             $user_last_name = null;
  50.             $user_email = $user->email;
  51.  
  52.             $email_text_template = EmailTemplate::where('id', $request['register_email_template'])->first();
  53.             $mail_from = 'info@genio.academy';
  54.             $mail_subject = 'info';
  55.             $mail_template = $email_text_template;
  56.             $mail_text_parameters['user_first_name'] = $user_first_name;
  57.             $mail_text_parameters['user_last_name'] = $user_last_name;
  58.             $mail_text_parameters['user_email'] = $user_email;
  59.             $mail_text_parameters['password'] = $password;
  60.             Mail::to($user)->send(new MailByTemplate($mail_from, $mail_subject,$mail_template, $mail_text_parameters));
  61.  
  62.         }
  63.  
  64.         //get exist user ids
  65.         if (isset($emails_exist) && count($emails_exist>0)) $exist_users_ids = User::whereIn('email', $emails_exist)->get()->pluck('id');
  66.  
  67.  
  68.         //set groups for added users
  69.         if ($request->groups) {
  70.             $this->userMultiSetGroups($user_ids, $request->groups);
  71.             if(isset($exist_users_ids) && count($exist_users_ids)>0) $this->userMultiSetGroups($exist_users_ids, $request->groups);
  72.         }
  73.  
  74.         //set courses for added users
  75.         if ($request->courses) {
  76.             $this->userMultiSetCourses($user_ids, $request->courses);
  77.             if(isset($exist_users_ids) && count($exist_users_ids)>0) $this->userMultiSetCourses($exist_users_ids, $request->courses);
  78.         }
  79.  
  80.         //if admin redirect to users table
  81.         if (Auth::check()) {
  82.             if (Auth::user()->userType->id == 4) {
  83.                 //dd($emails_exist);
  84.                 if(count($emails_new)==0 && count($emails_exist)>0) {
  85.                     $emails_exist_list = implode(", ", $emails_exist);
  86.                     $request->session()->flash('alert-danger', 'Пользователи с емейлами ' . $emails_exist_list . ' уже зарегистрированы в системе.');
  87.                 }
  88.                 elseif(count($emails_new)>0 && count($emails_exist)>0) {
  89.                     $emails_new_list = implode(", ", $emails_new);
  90.                     $emails_exist_list = implode(", ", $emails_exist);
  91.                     $request->session()->flash('alert-warning', 'Пользователи с емейлами '. $emails_new_list .' в колличестве ' . count($emails_new) . ' чел. зарегистрированы. (пароли высланы на емейлы).
  92.                     А пользователи с емейлами ' . $emails_exist_list . ' уже были зарегистрированы в системе.');
  93.                 }
  94.                 else $request->session()->flash('alert-success', 'Пользователи в колличестве ' . count($emails_new) . ' чел. зарегистрированы. (пароли высланы на емейлы)');
  95.                 return redirect()->route('allUsers');
  96.             }
  97.         }
  98.  
  99.         return redirect()->back();
  100.     }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top