def mount(self): self.loggedIn = False self.username = '' self.password = '' self.loggedInMessage = '' self.failed = False self.users = User.all().serialize()
def test_can_correct_incorrect_pagination_page(self): users = User.all() (self.get('/paginator').assertHasJson('count', 10).assertHasJson( 'per_page', 10).assertHasJson('current_page', 1).assertHasJson('from', 1).assertHasJson('to', 10)) (self.get('/paginate', { 'page': 'hey', 'page_size': 'hey' }).assertHasJson('total', len(users)).assertHasJson( 'count', 10).assertHasJson('per_page', 10).assertHasJson( 'current_page', 1).assertHasJson('from', 1).assertHasJson('to', 10)) (self.get('/length_aware', { 'page': 'hey', 'page_size': 'hey' }) # .assertHasJson('total', len(User.find(1))) # .assertHasJson('count', len(User.find(1))) .assertHasJson('per_page', 10).assertHasJson('current_page', 1).assertHasJson( 'from', 1).assertHasJson('to', 10)) (self.get('/single_paginator', { 'page': 'hey', 'page_size': 'hey' }).assertHasJson('count', 1).assertHasJson('per_page', 10).assertHasJson( 'current_page', 1).assertHasJson('from', 1).assertHasJson('to', 10))
def store(self, request: Request, auth: Auth, validate: Validator, view: View): user = User.all() email = User.lists('email') pw = User.lists('password') errors = request.validate(validate.required(['email', 'password']), validate.email('email')) #checks for errors in login inputs and redirects user back to login page. if errors: return request.back().with_errors(errors).with_input() elif request.input('email') not in email and request.input( 'password') not in pw: return request.back().with_errors( {'email': ["Email and password not found. Please register."]}) #check to see if user already had an account which they may have closed/cancelled and need to register for a new account or reactivate account. if user.where('email', request.input('email')).where('cancelled', 'Yes'): # cancelled = True user_id = User.where('email', request.input('email')).get().pluck('id') return request.redirect('/reregister/' + str(user_id[0])) #logins user if no errors and account has not been closed/cancelled before if auth.login(request.input('email'), request.input('password')): return request.redirect('/') # returns back to login page if email or password are incorrect return request.back().with_errors( {'email': ["Email or password is incorrect"]})
def test_view_should_return_a_json_response_when_returning_paginator_instance( self): users = User.all() (self.get('/paginator').assertHasJson('count', 10).assertHasJson( 'per_page', 10).assertHasJson('current_page', 1).assertHasJson('from', 1).assertHasJson('to', 10))
def check_exists(self): users = User.all() self.messages({'username': '******'}) self.request.request_variables[ 'username'] = self.request.request_variables['username'].lower() return self.validate({ 'username': [ Required, Not(In(users.pluck('name').map(lambda item: item.lower()))) ] })
def validate_input(self, data): users = User.all() rules = { 'name': [Required, Not(Blank()), Length(3)], 'email': [Required, Not(Blank()), Not(In(users.pluck('email')))], 'password': [Required, Not(Blank()), Length(6)], } return validate(rules, data)
def update(self, request: Request, validate: Validator, auth: Auth, view: View): user = User.all() customer = request.user() email = User.lists('email') user_name = User.lists('username') #Checks to see if updated email or username already exists if request.input('email') != customer.email: if request.input('email') in email: return request.back().with_errors({ 'error': ['{} already exists'.format(request.input('email'))] }) elif request.input('username') != customer.username: if request.input('username') in user_name: return request.back().with_errors({ 'error': ['{} already exists'.format(request.input('username'))] }) #Inputs to update customer information user.where( 'id', customer.id).first().update(firstname=request.input('firstname')) user.where( 'id', customer.id).first().update(lastname=request.input('lastname')) user.where( 'id', customer.id).first().update(address=request.input('address')) user.where( 'id', customer.id).first().update(cell_phone=request.input('cell_phone')) user.where('id', customer.id).first().update(email=request.input('email')) user.where( 'id', customer.id).first().update(username=request.input('username')) #Checks that all information is filled out properly errors = request.validate( validate.required( ['firstname', 'lastname', 'address', 'email', 'username']), validate.email('email')) if errors: return request.back().with_errors(errors).with_input() else: request.session.flash( 'success', 'Your account has been successfully updated.') return request.redirect('account')
def update(self, view: View, request: Request, auth: Auth, validate: Validator): user = User.all() pws = User.lists('password') customer = request.user() pw = customer.password if bcrypt.checkpw(bytes(request.input('password'), 'utf-8'), bytes(pw, 'utf-8')) == False: return request.back().with_errors( {'error': ['Please enter correct old password']}) new_password = request.input('new_password') confirm_password = request.input('confirm_password') for pws in pws: if bcrypt.checkpw(bytes(request.input('new_password'), 'utf-8'), bytes(pws, 'utf-8')): return request.back().with_errors({ 'error': [ 'Password already exists. Please create a new password.' ] }) errors = request.validate( validate.required(['password', 'new_password', 'confirm_password']), validate.strong('new_password', length=8, special=1, uppercase=1, breach=False) # breach=True checks if the password has been breached before. # Requires 'pip install pwnedapi' ) if errors: return request.back().with_errors(errors).with_input() elif new_password != confirm_password: return request.back().with_errors({ 'error': ['New password and confirm new password do not match!'] }) else: user.where( 'id', customer.id).first().update(password=password(new_password)) request.session.flash( 'success', 'Your password has been successfully updated.') return request.redirect('account')
def login(self): users = User.all() self.messages({ 'username': '******', 'password': '******', }) return self.validate({ 'username': [ Required, Length(1, 35), In(users.pluck('email').map(lambda item: item.lower())) ], 'password': [Required, Length(1)] })
def register(self): users = User.all() self.messages({ 'email': 'That email already exists', 'username': '******' }) return self.validate({ 'username': [Required, Length(3, 20)], 'email': [Required, Length(1), Not(In(users.pluck('email')))], 'password': [Required] })
def show(self, view: View, request: Request): """ Show all users so player can pick one user to play with """ users = User.all() table = Table.all() if request.user(): cur_user = request.user().email return view.render( "game", { 'users': users, 'name': cur_user, 'table': table, "cuser_id": cur_user }) else: return view.render("invalid", {"message": 'Please log in'})
def cancel(sef, request: Request, auth: Auth, validate: Validator, mail: Mail): user = User.all() customer = request.user() pw = customer.password reason = request.input('radio') confirm_password = request.input('password') #checking that all required fields are entered and no errors are found. errors = request.validate( validate.required( ['radio', 'password'], messages={'radio': "Please choose a reason for cancelling."})) if errors: return request.back().with_errors(errors) elif not bcrypt.checkpw(bytes(confirm_password, 'utf-8'), bytes(pw, 'utf-8')): return request.back().with_errors( {'error': ["Are you sure that's the right password?"]}) user_id = user.where('id', customer.id).first() # User.where('id', customer.id).where_null('cancelled').update(cancelled='Yes') User.where('id', customer.id).update(cancelled="Yes") CancelledAccount.insert({ 'user_id': user_id.id, 'cancel_reason': request.input('radio'), 'suggestions': request.input('suggestion') }) request.session.flash( 'success', 'Your account has been successfully cancelled. Thank you for your business.' ) mail.send_from('*****@*****.**').subject( 'Cancellation Confirmation').to(customer.email).template( 'mail/cancel_member', { 'title': 'Kennedy Pools & Supplies' }).send() auth.logout() return request.redirect('/')
def schedule(self, view: View, request: Request, validate: Validator, mail: Mail): user = User.all() customer = request.user() name = request.input('name') address = request.input('address') schedule_date_info = request.input('date') path = request.path #checking that all required fields are entered and no errors are found. errors = request.validate( validate.required(['service_type', 'name', 'address'])) if errors: return request.back().with_errors(errors) if not schedule_date_info[0] or not schedule_date_info[1]: request.session.flash('success', "The service date and service time is required.") return request.back() schedule_id = user.where('id', customer.id).first() Schedule.insert({ 'schedule_id': schedule_id.id, 'service': request.input('service_type'), 'service_date': schedule_date_info[0], 'service_time': schedule_date_info[1], 'customer_name': request.input('name') }) #getting the schedules table data customer_schedule = Schedule.get().last() #sends email with pool appointment schedule details mail.subject('Pool Appointment Confirmation').to(customer.email).template('mail/appt_confirm', {'service_id': customer_schedule.id, 'service': customer_schedule.service, 'service_date':customer_schedule.service_date, 'service_time':customer_schedule.service_time}).send() request.session.flash('success', 'Your appointment has been successfully scheduled! A confirmation email has been sent.') return request.redirect('/')
def test_view_should_return_a_json_response_when_returning_length_aware_paginator_instance( self): users = User.all() # Page 1 (self.get('/paginate').assertHasJson( 'total', len(users)).assertHasJson('count', 10).assertHasJson( 'per_page', 10).assertHasJson('current_page', 1).assertHasJson('from', 1).assertHasJson('to', 10)) # Page 2 (self.get('/paginate', { 'page': 2 }).assertHasJson('total', len(users)).assertHasJson( 'count', 10).assertHasJson('per_page', 10).assertHasJson( 'current_page', 2).assertHasJson('from', 11).assertHasJson('to', 20)) factory(User).create() (self.get('/length_aware').assertHasJson('total', 1).assertHasJson('count', 1))
def test_returns_correct_data_type(self): self.assertIsInstance(User.all(), Collection) self.assertIsInstance(User.first(), User)
def show(self, view: View): customers = User.all() return view.render('dashboard/customers', {'customers': customers})
def paginator(self): return Paginator(User.all(), 10)