Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function userRegisterByList(Request $request)
- {
- $emails_list = $request['emails_list'];
- $user_ids = [];
- //перевод в нижний регистр
- $emails_list = strtolower($emails_list);
- //вставим разделитель емейлов " selector_of_emails" в текст с емейлами
- $emails_list = preg_replace('/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6})/', '$1 selector_of_emails', $emails_list);
- //переобразум струку в масив адрессов с помощью разделителя
- $emails_list = explode(' selector_of_emails', $emails_list);
- //уберем пробелы и другие символы с начала и конца строки (каждого адреса)
- foreach ($emails_list as $email) {
- $emails[] = trim($email);
- }
- //уберем пустые строки из масива адресов
- foreach ($emails as $key => $val) {
- if ($val == "") unset($emails[$key]);
- }
- //создание списка емейлов что уже зарегистрированы и есть в новом списке для регистрации, а также их удаление из нового списка емейлов
- $emails_all = User::all()->pluck('email')->toArray();
- $emails_new = array_diff($emails, $emails_all);
- $emails_exist = array_diff($emails, $emails_new);
- //разсылка и регистрация пользователей по списку емейлов
- foreach ($emails_new as $email) {
- $password = $this->setUserPassword();
- $user = new User();
- $user->email = $email;
- $user->password = bcrypt($password);
- $user->password_native = $password;
- $user->user_type_id = 1;
- $user->visitcount = 1;
- $user->activity = true;
- $user->save();
- $user_ids[] = $user->id;
- //send register email to user
- $user_first_name = null;
- $user_last_name = null;
- $user_email = $user->email;
- $email_text_template = EmailTemplate::where('id', $request['register_email_template'])->first();
- $mail_from = 'info@genio.academy';
- $mail_subject = 'info';
- $mail_template = $email_text_template;
- $mail_text_parameters['user_first_name'] = $user_first_name;
- $mail_text_parameters['user_last_name'] = $user_last_name;
- $mail_text_parameters['user_email'] = $user_email;
- $mail_text_parameters['password'] = $password;
- Mail::to($user)->send(new MailByTemplate($mail_from, $mail_subject,$mail_template, $mail_text_parameters));
- }
- //get exist user ids
- if (isset($emails_exist) && count($emails_exist>0)) $exist_users_ids = User::whereIn('email', $emails_exist)->get()->pluck('id');
- //set groups for added users
- if ($request->groups) {
- $this->userMultiSetGroups($user_ids, $request->groups);
- if(isset($exist_users_ids) && count($exist_users_ids)>0) $this->userMultiSetGroups($exist_users_ids, $request->groups);
- }
- //set courses for added users
- if ($request->courses) {
- $this->userMultiSetCourses($user_ids, $request->courses);
- if(isset($exist_users_ids) && count($exist_users_ids)>0) $this->userMultiSetCourses($exist_users_ids, $request->courses);
- }
- //if admin redirect to users table
- if (Auth::check()) {
- if (Auth::user()->userType->id == 4) {
- //dd($emails_exist);
- if(count($emails_new)==0 && count($emails_exist)>0) {
- $emails_exist_list = implode(", ", $emails_exist);
- $request->session()->flash('alert-danger', 'Пользователи с емейлами ' . $emails_exist_list . ' уже зарегистрированы в системе.');
- }
- elseif(count($emails_new)>0 && count($emails_exist)>0) {
- $emails_new_list = implode(", ", $emails_new);
- $emails_exist_list = implode(", ", $emails_exist);
- $request->session()->flash('alert-warning', 'Пользователи с емейлами '. $emails_new_list .' в колличестве ' . count($emails_new) . ' чел. зарегистрированы. (пароли высланы на емейлы).
- А пользователи с емейлами ' . $emails_exist_list . ' уже были зарегистрированы в системе.');
- }
- else $request->session()->flash('alert-success', 'Пользователи в колличестве ' . count($emails_new) . ' чел. зарегистрированы. (пароли высланы на емейлы)');
- return redirect()->route('allUsers');
- }
- }
- return redirect()->back();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement