def home_signin(request): result = home(request) if 'sign_out' in request.POST.keys(): request.session.invalidate() result['u_name'] = None else: email = request.POST['mail'] password = request.POST['pass'] session = DBSession() user = session.query(User) \ .filter(User.email == email, User.password == User.password_hash(password, 'rte45EWRRT')) \ .first() if user: request.session['sk'] = generate_session_id() request.session['u_name'] = user.display_name request.session['u_id'] = user.id request.response.set_cookie('sk', value=request.session['sk'], max_age=86400) result['u_name'] = user.display_name session.close() result['static_version'] = request.registry.settings['static_version'] return result
def register_post(request): session = DBSession() errors = [] info = '' if not request.POST['name']: errors.append(u'Вы не указали ваше имя') if request.POST['email']: import re if not re.match(r"[^@]+@[^@]+\.[^@]+", request.POST['email']): errors.append( u'Неправильный формат адреса электронной почты - адрес должен иметь вид [email protected]' ) existed_email = session.query( User.email).filter(User.email == request.POST['email']).count() if existed_email > 0: errors.append( u'Пользователь с таким адресом электронной почты (%s) уже существует' % request.POST['email']) else: errors.append(u'Вы не указали адрес вашей электронной почты') if 'password' in request.POST.keys() or request.POST['pass']: if not request.POST[ 'pass2'] or request.POST['pass'] != request.POST['pass2']: errors.append(u'Введенные вами пароли не совпадают') if len(request.POST['pass']) < 5: errors.append(u'Длина пароля должна быть больше 4 символов') else: errors.append(u'Вы не указали пароль') if not errors: with transaction.manager: user = User() user.display_name = request.POST['name'] user.email = request.POST['email'] user.password = User.password_hash(request.POST['pass'], 'rte45EWRRT') user.registered_time = datetime.datetime.now() session.add(user) info = u'Вы зарегистрированы. Поздравляем!' session.close() return {'errors': errors, 'info': info}
def register_post(request): session = DBSession() errors = [] info = '' if not request.POST['name']: errors.append(u'Вы не указали ваше имя') if request.POST['email']: import re if not re.match(r"[^@]+@[^@]+\.[^@]+", request.POST['email']): errors.append(u'Неправильный формат адреса электронной почты - адрес должен иметь вид [email protected]') existed_email = session.query(User.email).filter(User.email == request.POST['email']).count() if existed_email > 0: errors.append(u'Пользователь с таким адресом электронной почты (%s) уже существует' % request.POST['email']) else: errors.append(u'Вы не указали адрес вашей электронной почты') if 'password' in request.POST.keys() or request.POST['pass']: if not request.POST['pass2'] or request.POST['pass'] != request.POST['pass2']: errors.append(u'Введенные вами пароли не совпадают') if len(request.POST['pass']) < 5: errors.append(u'Длина пароля должна быть больше 4 символов') else: errors.append(u'Вы не указали пароль') if not errors: with transaction.manager: user = User() user.display_name = request.POST['name'] user.email = request.POST['email'] user.password = User.password_hash(request.POST['pass'], 'rte45EWRRT') user.registered_time = datetime.datetime.now() session.add(user) info = u'Вы зарегистрированы. Поздравляем!' session.close() return { 'errors': errors, 'info': info }