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'))
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
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'))
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'))