Ejemplo n.º 1
0
    def post(self):
        form = self.form(request.form)
        if not form.validate():
            return render_template(self.template_name, **self.context)
        login = request.form.get('login')
        email = request.form.get('email')
        firstname = request.form.get('firstname')
        middlename = request.form.get('middlename')
        lastname = request.form.get('lastname')
        user_data = {
            'login': login,
            'email': email,
            'firstname': firstname,
            'middlename': middlename,
            'lastname': lastname,
            'image': email,
            'is_oauth': True,
        }
        # отдельно смотрим пароль:
        #   если стоит флаг, то меняем
        #   если пароль пустой, то сбрасываем
        if request.form.get('change_password'):
            password = request.form.get('password') if request.form.get(
                'password') else False
            pass_hash = User.hash_password(
                password).decode() if password else ''
            user_data['password'] = pass_hash

        if login != self.user.login:
            if User.query.filter_by(login=login).first():
                flash('Логин уже занят.', 'error')
                return render_template(
                    self.template_name,
                    **{'form': form},
                )

        if email != self.user.email:
            if User.query.filter_by(email=email).first():
                flash('Такой e-mail уже привязан к другому аккаунту.', 'error')
                return render_template(
                    self.template_name,
                    **{'form': form},
                )

        User.query.filter_by(github_id=self.user.github_id).update(user_data)
        return redirect(url_for('auth.profile_oauth'))
Ejemplo n.º 2
0
def create_user(save=True):

    password = factory.password(10)
    user = User(
        login=factory.user_name(),
        email=factory.email(),
        password=User.hash_password(password),
        firstname=factory.first_name(),
        middlename=factory.name(),
        lastname=factory.last_name(),
        is_aproved=True,
    )

    if save:
        user.save()

    return user, password
Ejemplo n.º 3
0
    def post(self):
        self.context['form'] = form = self.form(request.form)  # noqa: WPS204

        if not form.validate():
            return render_template(self.template,
                                   **self.context)  # noqa: WPS204

        login = request.form.get('login')
        email = request.form.get('email')
        password = request.form.get('password')
        firstname = request.form.get('firstname')
        middlename = request.form.get('middlename')
        lastname = request.form.get('lastname')
        image = request.form.get('email')
        pass_hash = User.hash_password(password)
        user = User(
            login=login,
            email=email,
            password=pass_hash.decode(),
            firstname=firstname,
            middlename=middlename,
            lastname=lastname,
            image=image,
            gravatar='gravatar',
        )
        if User.query.filter_by(login=login).first():
            flash('Логин уже занят.', 'error')
            return render_template(
                self.template,
                **self.context,
            )
        if User.query.filter_by(email=email).first():
            flash('Такой e-mail уже привязан к другому аккаунту.', 'error')
            return render_template(
                self.template,
                **self.context,
            )
        User.save(user)
        if send_mail_for_aprove(user):
            flash(
                'Вам на почту отправлена ссылка для подтверждения регистрации',
                'info')
        else:
            flash('Сбой отправки письма', 'error')
        return redirect(url_for('auth.login'))
Ejemplo n.º 4
0
 def post(self):
     form = self.form(request.form)
     if not form.validate():
         return render_template(self.template, **{'form': form})
     login = request.form.get('login')
     email = request.form.get('email')
     password = request.form.get('password')
     firstname = request.form.get('firstname')
     middlename = request.form.get('middlename')
     lastname = request.form.get('lastname')
     image = request.form.get('email')
     pass_hash = User.hash_password(password)
     user = User(
         login=login,
         email=email,
         password=pass_hash.decode(),
         firstname=firstname,
         middlename=middlename,
         lastname=lastname,
         image=image,
     )
     if User.query.filter_by(login=login).first():
         return render_template(
             self.template,
             **{
                 'form': form,
                 'info': 'Логин уже занят'
             },
         )
     if User.query.filter_by(email=email).first():
         return render_template(
             self.template,
             **{
                 'form': form,
                 'info': 'Email уже занят'
             },
         )
     User.save(user)
     if send_mail_for_aprove(user):
         flash(
             'Вам на почту отправлена ссылка для подтверждения регистрации')
     else:
         flash('Сбой отправки письма')
     return redirect(url_for('auth.login'))