Example #1
0
 protected function doReg()
 {
     self::processUpload();
     self::logRecord([__FUNCTION__ => $this->_requestData]);
     $name = isset($this->_requestData[self::$_authUser]) && !empty($this->_requestData[self::$_authUser]) ? true : false;
     $pwd = isset($this->_requestData[self::$_authPwd]) && !empty($this->_requestData[self::$_authPwd]) ? true : false;
     if (!$name || !$pwd) {
         self::sendError(EC_BACKEND_FAIL_GET_USER_PWD);
     }
     if (self::$_regNeedCode) {
         $invitation_code = isset($this->_requestData[self::$_regCodeField]) && !empty($this->_requestData[self::$_regCodeField]) ? $this->_requestData[self::$_regCodeField] : '';
         unset($this->_requestData[self::$_regCodeField]);
         $tmp = self::$_regCodeModel;
         $invitation_model = new $tmp();
         $invitation = $invitation_model->find()->select(self::$_regPriKeyField . ',' . self::$_regStatusField)->where([self::$_regCodeField => $invitation_code])->asArray()->one();
         if ($invitation) {
             if ($invitation[self::$_regStatusField] != self::$_regStatusValueUsable) {
                 self::sendError(EC_BACKEND_INVITATION_USED);
             }
         } else {
             self::sendError(EC_BACKEND_INVITATION_INVALID);
         }
     }
     $feedback = $this->_authModel->add($this->_requestData);
     if ($feedback[XIIS_FEEDBACK_STATUS]) {
         $id = isset($feedback['data'][XIIS_DEFAULT_PRI_KEY]) ? $feedback['data'][XIIS_DEFAULT_PRI_KEY] : false;
         if ($id) {
             if (self::$_regNeedCode) {
                 $invitation_model->edit([self::$_regUserIdField => $id, self::$_regStatusField => self::$_regStatusValueUsed, self::$_regPriKeyField => $invitation[self::$_regPriKeyField]]);
             }
             if (self::$_regSendMail) {
                 $mail = self::setMailOfReg($id);
                 XiiMail::send($mail);
             }
             $this->_requestData[XIIS_DEFAULT_PRI_KEY] = $id;
             $diff = array_diff(self::$_jwtPayload, array_keys($this->_requestData));
             $user = [];
             if (count($diff) == 0) {
                 foreach (self::$_jwtPayload as $v) {
                     $user[$v] = $this->_requestData[$v];
                 }
             } else {
                 $para = [XIIS_DEFAULT_PRI_KEY => $id];
                 $feedback = $this->_authModel->getOne([XIIS_PARAMS_CONDITION => $para]);
                 $user = reset($feedback[XIIS_FEEDBACK_DATA]);
             }
             self::$_outData = self::generateJwt($user, EC_BACKEND_SUCCESS_REG);
         }
     } else {
         self::$_outData = $feedback;
     }
 }
Example #2
0
 public function actionForgotpwd()
 {
     $this->_requestData[self::$_forgotMailField] = self::getUserMail();
     $mail = self::setMailOfForgot($this->_requestData[self::$_forgotMailField]);
     $feedback = XiiMail::send($mail);
     if ($feedback) {
         self::$_outData = [XIIS_FEEDBACK_STATUS => true, XIIS_FEEDBACK_CODE => EC_BACKEND_ACTIVE_MAIL_SUCCESS, XIIS_FEEDBACK_MSG => XiiError::getErrorMessage(EC_BACKEND_ACTIVE_MAIL_SUCCESS), XIIS_FEEDBACK_DATA => $feedback];
     } else {
         self::$_outData = [XIIS_FEEDBACK_STATUS => false, XIIS_FEEDBACK_CODE => EC_BACKEND_ACTIVE_MAIL_FAIL, XIIS_FEEDBACK_MSG => XiiError::getErrorMessage(EC_BACKEND_ACTIVE_MAIL_FAIL), XIIS_FEEDBACK_DATA => []];
     }
 }