public function actionRegister()
 {
     $request = Yii::$app->request;
     $username = $request->post('username');
     $email = $request->post('email');
     $password = $request->post('password');
     if (empty($username) or empty($email) or empty($password)) {
         $this->setHeader(400);
         echo json_encode(array('status' => 0, 'error_code' => 400, 'message' => 'Missing params'), JSON_PRETTY_PRINT);
         exit;
     }
     $db = Yii::$app->db;
     $projectName = $request->post('gbid');
     if (!empty($projectName)) {
         $sql = "SELECT id FROM project WHERE name = :projectName";
         $params = [':projectName' => $projectName];
         $projectId = $db->createCommand($sql, $params)->queryScalar();
     }
     if (empty($projectId)) {
         $projectId = 0;
     }
     if (strlen($password) < 6 or strlen($password) > 20) {
         $this->setHeader(400);
         echo json_encode(array('status' => 0, 'error_code' => 400, 'message' => 'Password length must in [6, 20]'), JSON_PRETTY_PRINT);
         exit;
     }
     $email = trim($email);
     $sql = "SELECT 1 FROM user WHERE email = :email";
     $params = [':email' => $email];
     $emailExist = $db->createCommand($sql, $params)->queryScalar();
     if ($emailExist) {
         $this->setHeader(400);
         echo json_encode(array('status' => 0, 'error_code' => 400, 'message' => 'Email exists'), JSON_PRETTY_PRINT);
         exit;
     }
     $username = trim($username);
     $password = Util::hashPassword(trim($password));
     $sql = "INSERT user (name, password, email, project_id) VALUES (:name, :password, :email, :projectId)";
     $params = [':name' => $username, ':password' => $password, ':email' => $email, ':projectId' => $projectId];
     $db->createCommand($sql, $params)->execute();
     $sql = "SELECT id user_id, name user_name, project_id FROM user WHERE name = :name";
     $params = [':name' => $username];
     $data = $db->createCommand($sql, $params)->queryOne();
     $this->setHeader(200);
     echo json_encode(array('status' => 1, 'data' => $data, 'message' => 'Register success'), JSON_PRETTY_PRINT);
     exit;
 }
Exemplo n.º 2
0
 public function actionRegister()
 {
     $request = Yii::$app->request;
     $password = $request->post('password');
     $givenName = $request->post('givenName');
     $familyName = $request->post('familyName');
     $specialization = $request->post('specialization');
     //        $portfolio = $request->post('portfolio');
     $email = $request->post('email');
     $mobile = $request->post('mobile');
     $code = $request->post('code');
     if (empty($password) or empty($givenName) or empty($familyName) or empty($specialization) or empty($email) or empty($mobile) or empty($code)) {
         echo json_encode(array('status' => 0, 'error_code' => 400, 'message' => 'Missing params'), JSON_PRETTY_PRINT);
         exit;
     }
     $db = Yii::$app->db;
     $verify = Verify::find()->where(['mobile' => $mobile])->one();
     if (empty($verify)) {
         echo json_encode(['status' => 0, 'message' => 'Wrong verify message'], JSON_PRETTY_PRINT);
     }
     if ($code != $verify->code) {
         echo json_encode(['status' => 0, 'message' => 'Wrong verify message'], JSON_PRETTY_PRINT);
     }
     if (strlen($password) < 6 or strlen($password) > 20) {
         $this->setHeader(400);
         echo json_encode(array('status' => 0, 'error_code' => 400, 'message' => 'Password length must in [6, 20]'), JSON_PRETTY_PRINT);
         exit;
     }
     $email = trim($email);
     $sql = "SELECT 1 FROM user WHERE email = :email";
     $params = [':email' => $email];
     $emailExist = $db->createCommand($sql, $params)->queryScalar();
     if ($emailExist) {
         echo json_encode(array('status' => 0, 'error_code' => 400, 'message' => 'Email exists'), JSON_PRETTY_PRINT);
         exit;
     }
     $phoneExist = $db->createCommand("SELECT 1 FROM user WHERE mobile = :mobile", [':mobile' => $mobile])->queryScalar();
     if ($phoneExist) {
         echo json_encode(array('status' => 0, 'error_code' => 400, 'message' => 'Mobile exists'), JSON_PRETTY_PRINT);
         exit;
     }
     $givenName = trim($givenName);
     $familyName = trim($familyName);
     $password = Util::hashPassword(trim($password));
     $user = new User();
     $user->password = $password;
     $user->given_name = $givenName;
     $user->family_name = $familyName;
     $user->specialization = $specialization;
     $user->email = $email;
     $user->mobile = $mobile;
     $user->is_verified = 1;
     $user->save();
     echo json_encode(array('status' => 1, 'message' => 'Register success'), JSON_PRETTY_PRINT);
     exit;
 }