Пример #1
0
    def mutate(self, info, **kwargs):
        with session_scope() as db_session:
            username = kwargs.get("username")
            email = kwargs.get("email")
            password = kwargs.get("password")
            validation.validate_registration(username, email, password)
            try:
                if current_user.is_authenticated:
                    raise GraphQLError(_("You are already logged in."))
                user = ModelUserAccount(
                    username=username,
                    email=email,
                    password=ModelUserAccount.generate_hash(password),
                    locale=str(get_locale()),
                )
                token = encode_token(user.email, verify_email_salt)
                verify_url = generate_url("verify_email.verify_email", token)
                template = template_env.get_template("verify_email.html")
                content = template.render(display_name=username,
                                          verify_url=verify_url)
                db_session.add(user)
                db_session.flush()
                q.enqueue(send_email, user.email,
                          _("Verify your DofusLab account"), content)
                login_user(user)
                save_custom_sets(db_session)
            except Exception as e:
                raise GraphQLError(_("An error occurred while registering."))

        return RegisterUser(user=user, ok=True)
Пример #2
0
 def mutate(self, info, **kwargs):
     if not current_user.is_authenticated:
         raise GraphQLError(_("You are not logged in."))
     old_password = kwargs.get("old_password")
     new_password = kwargs.get("new_password")
     user = current_user._get_current_object()
     auth_error = GraphQLError(_("Incorrect password."))
     if not user:
         raise auth_error
     if not user.check_password(old_password):
         raise auth_error
     validation.validate_password(new_password)
     if old_password == new_password:
         raise GraphQLError(
             _("You must enter a password different from your current one.")
         )
     with session_scope():
         user.password = ModelUserAccount.generate_hash(new_password)
         return ChangePassword(ok=True)
Пример #3
0
    def mutate(self, info, **kwargs):
        if current_user.is_authenticated:
            raise GraphQLError(_("You are already logged in."))
        token = kwargs.get("token")
        password = kwargs.get("password")
        email = decode_token(token, reset_password_salt)
        invalid_token_error = GraphQLError(
            _("The link is invalid or expired. Please request a new one."))
        if not email:
            raise invalid_token_error
        user = ModelUserAccount.find_by_email(email)

        if not user:
            raise GraphQLError(
                _("The link is invalid or expired. Please request a new one."))

        validation.validate_password(password)
        if user.check_password(password):
            raise GraphQLError(
                _("You must enter a password different from your current one.")
            )
        with session_scope() as db_session:
            user.password = ModelUserAccount.generate_hash(password)
            return ResetPassword(ok=True)