/** * 修改用户邮箱 * @param User $user * @param string $email * @param string $password * @param string $code * @throws \Exception */ public function edit_email($user, $email, $password, $code) { lib()->load('UserCheck'); $email = strtolower(trim($email)); $code = strtolower(trim($code)); if ($user->getPassword() !== UserCheck::CreatePassword($password, $user->getSalt())) { $this->throwMsg(-10); } $email_check = UserCheck::CheckEmail($email); if ($email_check !== true) { throw new \Exception($email_check); } $meta = $user->getMeta()->get(['edit_email_add', 'edit_email_time', 'edit_email_code'], ''); if ($meta['edit_email_add'] !== $email) { $this->throwMsg(-13); } if ($meta['edit_email_code'] !== $code) { $this->throwMsg(-12); } if (time() - strtotime($meta['edit_email_time']) > hook()->apply('UserControl_edit_email_time', 3 * 24 * 60 * 60)) { $this->throwMsg(-11); } $user->getMeta()->delete(['edit_email_add', 'edit_email_time', 'edit_email_code']); $user->set(['email' => $email]); }
/** * @param User $user * @param string $code * @throws \Exception * @return int 返回用户状态码 */ public static function UserActivation($user, $code) { if ($user->is_active()) { throw new \Exception(_("User is already activation")); } $meta = $user->getMeta()->get(["activation_code", "activation_time"], ''); if (empty($meta['activation_time']) || empty($meta['activation_code'])) { throw new \Exception(_("Activation code is invalid")); } if (time() - strtotime($meta['activation_time']) > hook()->apply('UserRegister_UserActivation_time', 3 * 24 * 60 * 60)) { throw new \Exception(_("Activation code is time out")); } if ($meta['activation_code'] != $code) { throw new \Exception(_("Activation code is error")); } else { $user->set(['status' => 1]); } return $user->getStatus(); }