def setUp(): user = Users(username = '******', password = '******', email = '*****@*****.**', name = 'testuser', surname = 'testUser', gender = 'Hombre', timestamp = datetime.datetime.now()) world.user = user user.save()
def test_if_authenticated(step): session = world.browser.session session['id'] = 1 session['user_session'] = 'foo' session.set_expiry(0) session.save() assert Users.is_authenticated(session_key = world.browser.cookies['sessionid'].value, cookie = world.browser.session)
def modifypassword(request): id = request.session['id'] user = Users.objects.get(id=id) oldpassword = request.POST['old_password'] newpassword = request.POST['password'] newpasswordcheck = request.POST['password_checker'] if (Users.validatePassword(newpassword)): error = False try: assert user.matchPassword(oldpassword) except: error = True request.session['passwordError'] = 'La contraseña antigua no coincide.' try: assert newpassword == newpasswordcheck except: error = True request.session['passwordError'] = 'La contraseña nueva no coincide con la confirmación de contraseña.' if (not error): encPassword = hashlib.sha1('%s -- %s' % (newpassword, str(user.timestamp))).hexdigest() user.password = encPassword user.save() request.session['passwordOK'] = 'La contraseña ha sido modificada satisfactoriamente.' else: request.session['passwordError'] = 'La contraseña no tiene la complejidad requerida.' return HttpResponseRedirect('/user/config')
def profile(request, id): try: user = Users.objects.get(id = id) loggedUser = Users.objects.get(id = request.session['id']) if (not Users.is_authenticated(session_key = request.session.session_key, cookie = request.session)): raise CookieError except CookieError: # User has not logged in request.session.flush() return HttpResponseRedirect('/') except: # Likely, user with id = id has not been found return HttpResponseRedirect('/user/home') else: if (not user.inactive): # Rendering profile page using id t = get_template('profile.html') c = RequestContext(request, { 'ProfileUserName': user.username, 'ProfileName': user.name, 'ProfileSurname': user.surname, 'ProfileGender': user.gender, 'ProfileBirthdate': user.birthdate, 'UserID': loggedUser.id, 'UserName': loggedUser.username, 'section': 'Perfil' }) return HttpResponse(t.render(c)) else: return HttpResponseRedirect('/user/home')
def register(request): if request.method == 'POST': phone = request.POST['phone'] user = Users.objects.filter(user_phone=phone).first() if user: # return render(request, '注册 _ 猫眼电影.html', context={'title': '注册', 'msg': '账号已注册,请直接登录'}) return render(request, '登录 1.html', context={'title': '登录'}) else: phonecode = int(request.POST['phonecode']) print(phonecode) if phonecode == request.session['code']: Users.register(request) request.session['username'] = phone user = Users.objects.filter(user_phone=phone).first() request.session['user_id'] = user.user_id return redirect(reverse('film:index')) else: return render(request, '注册 _ 猫眼电影.html', context={'title': '注册', 'msg': '验证码有误,请重新输入'}) else: return render(request, '注册 _ 猫眼电影.html', context={'title': '注册'})
def upload(request): if request.method == 'POST': photo = request.FILES.get('photo') if not Users.check_file_type(photo.name) and Users.check_file_size(photo.size): return HttpResponse('文件不合法') user = Users() user.user_phone = photo user.save() return HttpResponse('上传成功') return render(request, 'index.html')
def login(request): if request.method == 'POST': phone = request.POST['phone'] password = request.POST['password'] if Users.checklogin(phone, password): request.session['username'] = phone return redirect(reverse('film:index')) else: request.session['username'] = phone return render(request, '登录 1.html', context={'title': '登录'}) else: return render(request, '登录 1.html', context={'title': '登录'})
def newUser(request): time = datetime.datetime.now() try: if (request.POST['password_register'] == request.POST['password_register_checker']): encPassword = hashlib.sha1('%s -- %s' % (request.POST['password_register'], str(time))).hexdigest() user = Users(username = request.POST['username'], timestamp = time, password = request.POST['password_register'], email = request.POST['email'], name = request.POST['nombre'], surname = request.POST['apellidos'], gender = request.POST['gender'], birthdate = request.POST['birthdate'], inactive = False) else: raise ValidationError('Las contraseñas no coinciden') Users.validateInput(user) user.password = encPassword except ValidationError as vError: request.session['regError'] = 'Los datos de entrada no son válidos' return HttpResponseRedirect('/') else: # User has been created try: user.saveUser() # and saved to database except: request.session['regError'] = 'El usuario ya existe en la base de datos.' else: request.session['newUser'] = True return HttpResponseRedirect('/')
def modifydata(request): name = request.POST['name'] surname = request.POST['surname'] email = request.POST['email'] birthdate = request.POST['birthdate'] gender = request.POST['gender'] user = Users.objects.get(id = request.session['id']) if Users.validateEmail(email): user.name = name user.surname = surname user.email = email user.birthdate = birthdate user.gender = gender user.save() request.session['configOK'] = 'Los datos se han actualizado satisfactoriamente.' else: request.session['configError'] = 'El campo email no es válido. Los datos no han sido actualizados.' return HttpResponseRedirect('/user/config')
def config(request): try: id = request.session['id'] except: # User is not logged in return HttpResponseRedirect('/') else: #User maybe has logged in try: dbCookie = Session.objects.get(session_key = request.session.session_key).get_decoded() if (not Users.is_authenticated(session_key = request.session.session_key, cookie = request.session)): raise CookieError except: # Bad cookie request.session.flush() return HttpResponseRedirect('/') else: user = Users.objects.get(id = dbCookie['id']) t = get_template('config.html') # Here we load all user information with context context = {'UserID': user.id, 'UserName': user.username, 'Name': user.name, 'Surname': user.surname, 'Email': user.email, 'Birthdate': user.birthdate, 'Gender': user.gender, 'section': 'Configuración'} if (request.session.get('configError', False)): context.update({ 'configError': request.session['configError'] }) del request.session['configError'] if (request.session.get('configOK', False)): context.update({ 'configOK': request.session['configOK'] }) del request.session['configOK'] if (request.session.get('passwordError', False)): context.update({ 'passwordError': request.session['passwordError'] }) del request.session['passwordError'] if (request.session.get('passwordOK', False)): context.update({ 'passwordOK': request.session['passwordOK'] }) del request.session['passwordOK'] c = RequestContext(request, context) return HttpResponse(t.render(c))
def home(request): try: id = request.session['id'] except: # User is not logged in return HttpResponseRedirect('/') else: #User maybe has logged in try: dbCookie = Session.objects.get(session_key = request.session.session_key).get_decoded() if (not Users.is_authenticated(session_key = request.session.session_key, cookie = request.session)): raise CookieError except: # Bad cookie request.session.flush() return HttpResponseRedirect('/') else: user = Users.objects.get(id = dbCookie['id']) t = get_template('home.html') # Here we load all user information with context c = RequestContext(request, { 'UserName': user.username, 'UserID': user.id, 'section': 'Home' }) return HttpResponse(t.render(c))
def SignUp(request): if request.session.has_key('username'): username = request.session['username'] return redirect(Welcome, username) elif request.method == "POST": try: user = Users.objects.get(username=request.POST['username']) except: user = None try: user1 = Users.objects.get(email=request.POST['email']) except: user1 = None if user: messages.info(request, "Username is already exists") elif user1: messages.info(request, "Email ID is already exists") else: new_user = Users() new_user.username = request.POST['username'] new_user.firstname = request.POST['firstname'] new_user.lastname = request.POST['lastname'] new_user.email = request.POST['email'] new_user.password = request.POST['password'] new_user.confirm_password = request.POST['confirm_password'] new_user.birth_date = request.POST['birth_date'] date = datetime.strptime(new_user.birth_date, '%Y-%m-%d') no_of_days = (date.today().date() - date.date()).days age = no_of_days // 365.2425 new_user.age = age current_site = get_current_site(request) message = render_to_string( 'account_activation.html', { 'user': new_user, 'domain': current_site.domain, 'token': createToken(new_user), }) mail_subject = 'Please Activate Your Account' to_email = new_user.email email = EmailMessage(mail_subject, message, to=[to_email]) email.send() new_user.save() messages.success(request, "New User is Created Successfully") messages.success( request, "Verification Email is sent to your Registered Email ID") return render(request, 'signup.html', {})
def create_user(step): assert not Users.exists(username=world.user.username)
def validate_user(step): assert Users.exists(username=world.user.username)
def save_user(step): try: world.user.saveUser() except ValidationError, e: assert not Users.exists(username=world.user.username)
def rigth_format(step, word): world.user.email = word assert not Users.validateEmail(email=world.user.email)
def right_length(step): world.user.email = 'a'*51 assert not Users.validateEmail(email=world.user.email)
def empty_field(step): world.user.email = "" assert not Users.validateEmail(email=world.user.email)
def test_if_logout_works(step): world.response = world.browser.get('/user/logout') world.browser.session.flush() assert not Users.is_authenticated(session_key = world.browser.cookies['sessionid'].value, cookie = world.browser.session)
def pass_long(step): assert Users.validatePassword(world.user.password)