function signUp(Request $request) { $response = new stdClass(); if ($request->isMethod("POST")) { $postData = $request->all(); $objUsermeta = new Usersmeta(); $apiToken = ""; if (isset($postData['api_token'])) { $apiToken = $postData['api_token']; } if ($apiToken == $this->API_TOKEN) { $rules = array('firstname' => 'required|regex:/^[A-Za-z\\s]+$/|max:255', 'lastname' => 'required|regex:/^[A-Za-z\\s]+$/|max:255', 'username' => 'required|regex:/^[A-Za-z0-9._\\s]+$/|max:255|unique:users', 'email' => 'required|email|max:255|unique:users', 'password' => 'required|regex:/^[A-Za-z0-9@#$_\\s]+$/', 'conform_password' => 'required|same:password'); $messages = ['firstname.regex' => 'The :attribute cannot contain special characters.', 'lastname.regex' => 'The :attribute cannot contain special characters.', 'username.regex' => 'The :attribute cannot contain special characters.', 'email.unique' => 'E-Mail address already exist', 'password.regex' => 'The :attribute cannot contain special characters except @#$_.']; $validator = Validator::make($request->all(), $rules, $messages); if (!$validator->fails()) { $password = $postData['password']; // //generate random password // $password=""; // $charecters=array_merge(range('A','Z'),range('a', 'z'), range('0', '9')); // $max=count($charecters)-1; // for($i=0;$i<8;$i++) // { // $rand= mt_rand(0,$max); // $password.=$charecters[$rand]; // } $user = User::create(['name' => $postData['firstname'], 'lastname' => $postData['lastname'], 'username' => $postData['username'], 'skype_username' => isset($postData['skypeUsername']) ? $postData['skypeUsername'] : '', 'email' => $postData['email'], 'password' => bcrypt($password), 'status' => '0', 'role' => '1', 'user_timezone' => $postData['user_timezone']]); // if ($user) { //// $userOriginalData = $user['original']; // // $response->code = 200; // $response->message = "Signup successful."; // $response->data = $userOriginalData; // echo json_encode($response); //// } // // } // TODO this code is used for sending conformation ,mail with random generated password if ($user) { $mandrill = new Mandrill($this->MANDRILL_KEY); $async = false; $ip_pool = 'Main Pool'; $message = array('html' => '<div> <h3>Registration Successful</h3><br> <span>You have succesfull sign up, please wait for Admin Approval and use this credentials for login.</span><br> <p>Username :'******'username'] . '<br> Password: '******' </p> </div>', 'subject' => "Registration Successful", 'from_email' => "*****@*****.**", 'to' => array(array('email' => $postData['email'], 'type' => 'to')), 'merge_vars' => array(array("rcpt" => $postData['email'], 'vars' => array(array("name" => "firstname", "content" => $postData['firstname']), array("name" => "password", "content" => $password))))); $mailRespons = $mandrill->messages->send($message, $async, $ip_pool); if ($mailRespons[0]['status'] == "sent") { $response->code = 200; $response->message = "Signup successful. Please check your email for Password"; $response->data = null; echo json_encode($response); } else { $objuser = new User(); $whereForUpdate = ['rawQuery' => 'id =?', 'bindParams' => [$user->id]]; $deleteUser = $objuser->deleteUserDetails($whereForUpdate); //If mail sending fails then delete user details from db $response->code = 400; $response->message = "some Error occured try again"; echo json_encode($response); } } else { $response->code = 400; $response->message = "some Error occured try again"; $response->data = null; echo json_encode($response); } } else { $response->code = 100; $response->message = $validator->messages(); echo json_encode($response); } } else { $response->code = 401; $response->message = "Access Denied"; $response->data = null; echo json_encode($response, true); } } else { $response->code = 400; $response->message = "Request Not allowed"; $response->data = null; echo json_encode($response); } }