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; } }
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 => []]; } }