def test_staff(self): staffer1 = C3sStaff( login=u'staffer1', password=u'stafferspassword' ) staffer1.group = ['staff'] staffer2 = C3sStaff( login=u'staffer2', password=u'staffer2spassword', ) staffer2.group = ['staff2'] self.session.add(staffer1) self.session.add(staffer2) self.session.flush() _staffer2_id = staffer2.id _staffer1_id = staffer1.id self.assertTrue(staffer2.password is not '') #print('by id: %s' % C3sStaff.get_by_id(_staffer1_id)) #print('by id: %s' % C3sStaff.get_by_id(_cashier1_id)) #print('by login: %s' % C3sStaff.get_by_login(u'staffer1')) #print('by login: %s' % C3sStaff.get_by_login(u'cashier1')) self.assertEqual( C3sStaff.get_by_id(_staffer1_id), C3sStaff.get_by_login(u'staffer1') ) self.assertEqual( C3sStaff.get_by_id(_staffer2_id), C3sStaff.get_by_login(u'staffer2') ) '''test get_all''' res = C3sStaff.get_all() self.assertEqual(len(res), 2) '''test delete_by_id''' C3sStaff.delete_by_id(1) res = C3sStaff.get_all() self.assertEqual(len(res), 1) '''test check_user_or_None''' res1 = C3sStaff.check_user_or_None(u'staffer2') res2 = C3sStaff.check_user_or_None(u'staffer1') #print res1 #print res2 self.assertTrue(res1 is not None) self.assertTrue(res2 is None) '''test check_password''' #print(C3sStaff.check_password(cashier1, 'cashierspassword')) C3sStaff.check_password(u'staffer2', u'staffer2spassword')
def accountants_login(request): """ This view lets accountants log in (using a login form). If a person is already logged in, she is forwarded to the dashboard. """ logged_in = authenticated_userid(request) LOG.info("login by %s", logged_in) if logged_in is not None: return get_dashboard_redirect(request) form = deform.Form( AccountantLogin(), buttons=[ deform.Button('submit', _(u'Submit')), deform.Button('reset', _(u'Reset')) ], ) # if the form has been used and SUBMITTED, check contents if 'submit' in request.POST: controls = request.POST.items() try: appstruct = form.validate(controls) except ValidationFailure, e_validation_failure: request.session.flash( _(u"Please note: There were errors, " "please check the form below."), 'message_above_form', allow_duplicate=False) return{'form': e_validation_failure.render()} # get user and check pw... login = appstruct['login'] password = appstruct['password'] try: checked = C3sStaff.check_password(login, password) except AttributeError: # pragma: no cover checked = False if checked: LOG.info("password check for %s: good!", login) headers = remember(request, login) LOG.info("logging in %s", login) return HTTPFound( request.route_url( 'dashboard'), headers=headers) else: LOG.info("password check: failed for %s.", login)
def accountants_login(request): """ This view lets accountants log in (using a login form). If a person is already logged in, she is forwarded to the dashboard. """ logged_in = authenticated_userid(request) LOG.info("login by %s", logged_in) if logged_in is not None: return get_dashboard_redirect(request) form = deform.Form( AccountantLogin(), buttons=[ deform.Button('submit', _(u'Submit')), deform.Button('reset', _(u'Reset')) ], ) # if the form has been used and SUBMITTED, check contents if 'submit' in request.POST: controls = request.POST.items() try: appstruct = form.validate(controls) except ValidationFailure, e_validation_failure: request.session.flash(_(u"Please note: There were errors, " "please check the form below."), 'message_above_form', allow_duplicate=False) return {'form': e_validation_failure.render()} # get user and check pw... login = appstruct['login'] password = appstruct['password'] try: checked = C3sStaff.check_password(login, password) except AttributeError: # pragma: no cover checked = False if checked: LOG.info("password check for %s: good!", login) headers = remember(request, login) LOG.info("logging in %s", login) return HTTPFound(request.route_url('dashboard'), headers=headers) else: LOG.info("password check: failed for %s.", login)
def accountants_login(request): """ This view lets accountants log in """ logged_in = authenticated_userid(request) #print("authenticated_userid: " + str(logged_in)) log.info("login by %s" % logged_in) if logged_in is not None: # if user is already authenticated return HTTPFound( # redirect her to the dashboard request.route_url('dashboard')) class AccountantLogin(colander.MappingSchema): """ colander schema for login form """ login = colander.SchemaNode( colander.String(), title=_(u"login"), oid="login", ) password = colander.SchemaNode( colander.String(), validator=colander.Length(min=5, max=100), widget=deform.widget.PasswordWidget(size=20), title=_(u"password"), oid="lastname", ) schema = AccountantLogin() form = deform.Form( schema, buttons=[ deform.Button('submit', _(u'Submit')), deform.Button('reset', _(u'Reset')) ], #use_ajax=True, #renderer=zpt_renderer ) # if the form has been used and SUBMITTED, check contents if 'submit' in request.POST: #print("the form was submitted") controls = request.POST.items() try: appstruct = form.validate(controls) #if DEBUG: # pragma: no cover # print("the appstruct from the form: %s \n") % appstruct # for thing in appstruct: # print("the thing: %s") % thing # print("type: %s") % type(thing) except ValidationFailure, e: #print("the appstruct from the form: %s \n") % appstruct #for thing in appstruct: # print("the thing: %s") % thing # print("type: %s") % type(thing) print(e) #message.append( request.session.flash( _(u"Please note: There were errors, " "please check the form below."), 'message_above_form', allow_duplicate=False) return{'form': e.render()} # get user and check pw... #print(request.POST) #import pprint #pprint.pprint(appstruct) login = appstruct['login'] password = appstruct['password'] #print(login, password) try: checked = C3sStaff.check_password(login, password) except AttributeError: # pragma: no cover checked = False if checked: log.info("password check for %s: good!" % login) headers = remember(request, login) log.info("logging in %s" % logged_in) return HTTPFound( # redirect to accountants dashboard location=route_url( # after successful login 'dashboard', request=request), headers=headers) else: log.info("password check: failed.")
def accountants_login(request): """ This view lets accountants log in """ logged_in = authenticated_userid(request) #print("authenticated_userid: " + str(logged_in)) log.info("login by %s" % logged_in) if logged_in is not None: # if user is already authenticated return HTTPFound( # redirect her to the dashboard request.route_url( 'dashboard', number=0, )) class AccountantLogin(colander.MappingSchema): """ colander schema for login form """ login = colander.SchemaNode( colander.String(), title=_(u"login"), oid="login", ) password = colander.SchemaNode( colander.String(), validator=colander.Length(min=5, max=100), widget=deform.widget.PasswordWidget(size=20), title=_(u"password"), oid="password", ) schema = AccountantLogin() form = deform.Form( schema, buttons=[ deform.Button('submit', _(u'Submit')), deform.Button('reset', _(u'Reset')) ], #use_ajax=True, #renderer=zpt_renderer ) # if the form has been used and SUBMITTED, check contents if 'submit' in request.POST: #print("the form was submitted") controls = request.POST.items() try: appstruct = form.validate(controls) except ValidationFailure, e: print(e) request.session.flash(_(u"Please note: There were errors, " "please check the form below."), 'message_above_form', allow_duplicate=False) return {'form': e.render()} # get user and check pw... login = appstruct['login'] password = appstruct['password'] try: checked = C3sStaff.check_password(login, password) except AttributeError: # pragma: no cover checked = False if checked: log.info("password check for %s: good!" % login) headers = remember(request, login) log.info("logging in %s" % login) return HTTPFound( # redirect to accountants dashboard location=route_url( # after successful login 'dashboard', number=0, request=request), headers=headers) else: log.info("password check: failed.")
def accountants_login(request): """ This view lets accountants log in """ logged_in = authenticated_userid(request) # print("authenticated_userid: " + str(logged_in)) log.info("login by %s" % logged_in) if logged_in is not None: # if user is already authenticated return HTTPFound(request.route_url("dashboard", number=0)) # redirect her to the dashboard class AccountantLogin(colander.MappingSchema): """ colander schema for login form """ login = colander.SchemaNode(colander.String(), title=_(u"login"), oid="login") password = colander.SchemaNode( colander.String(), validator=colander.Length(min=5, max=100), widget=deform.widget.PasswordWidget(size=20), title=_(u"password"), oid="password", ) schema = AccountantLogin() form = deform.Form( schema, buttons=[deform.Button("submit", _(u"Submit")), deform.Button("reset", _(u"Reset"))], # use_ajax=True, # renderer=zpt_renderer ) # if the form has been used and SUBMITTED, check contents if "submit" in request.POST: # print("the form was submitted") controls = request.POST.items() try: appstruct = form.validate(controls) except ValidationFailure, e: print(e) request.session.flash( _(u"Please note: There were errors, " "please check the form below."), "message_above_form", allow_duplicate=False, ) return {"form": e.render()} # get user and check pw... login = appstruct["login"] password = appstruct["password"] try: checked = C3sStaff.check_password(login, password) except AttributeError: # pragma: no cover checked = False if checked: log.info("password check for %s: good!" % login) headers = remember(request, login) log.info("logging in %s" % login) return HTTPFound( # redirect to accountants dashboard location=route_url("dashboard", number=0, request=request), headers=headers # after successful login ) else: log.info("password check: failed.")