def login(self, User=User): """Subclassess are free to override the login form. This is an example of how to do it: class MyWebDirectory(WebDirectory): @public def login(self, User=MyUserClass): return super(MyWebDirectory, self).login(MyUserClass) """ form = un_pw_form() if not form.is_submitted(): return htmltext("<h1>Login form</h1>") + form.render() un, pw = form["username"], form["password"] if un not in self.registered_users: return """\ You are not a registered user. Please <a href='register'>register</a> first.""" elif pw != self.registered_users[un]: return "Wrong password. Please <a href='login'>retry</a>." "" user = User(un, pw) get_session().set_user(user) msg = "Now you are logged in as %r. " % user.username if self.resume is not None: msg += htmltext( "You can <a href=%r>resume</a> from where you left." % self.resume) return msg
def login(self, User=User): """Subclassess are free to override the login form. This is an example of how to do it: class MyWebDirectory(WebDirectory): @public def login(self, User=MyUserClass): return super(MyWebDirectory, self).login(MyUserClass) """ form = un_pw_form() if not form.is_submitted(): return htmltext("<h1>Login form</h1>") + form.render() un, pw = form["username"], form["password"] if un not in self.registered_users: return """\ You are not a registered user. Please <a href='register'>register</a> first.""" elif pw != self.registered_users[un]: return "Wrong password. Please <a href='login'>retry</a>.""" user = User(un, pw) get_session().set_user(user) msg = "Now you are logged in as %r. " % user.username if self.resume is not None: msg += htmltext( "You can <a href=%r>resume</a> from where you left." % self.resume) return msg
def login(self): user = get_user() if user is None: form = user_passwd_form() if form.is_submitted(): if valid_user(self.cx.cursor(), form["un"], form["pw"]): get_session().set_user(form["un"]) # this is the point! return "You are logged in." else: return "You are not registered or your password is invalid!" else: return htmltext("<h1>Login Form</h1>") + form.render() else: return "You are already logged in!"
def _q_index(self): cookie = get_cookie('user') if cookie == 'Peter': this_session = get_session() this_session.set_user('Peter') if not get_user(): body = Template.Kind_Body % (Template.Kind_Top,"Not Login!","") html = Template.HTML % ("Not login!",body) return html get_response().set_cookie('user','Peter',path='/',expires="Thu 01-Jan-2020 00:00:00 GMT") sql = """SELECT * FROM kind""" count,res = execute_sql_in_4bbs(sql,"SHOW") list = "" for e in res: list += "<div>" list += "Kind_id:<span>" + str(e[0]) + "</span><span>----</span>" list += "Kind_name:<span>" + str(e[1]) + "</span><span>----</span>" list += "Kind_count:<span>" + str(e[2]) + "</span><span>----</span>" list += "Kind_shortname:<span>" + str(e[3]) + "</span><span>----</span>" list += '<a href="/kind/delete?kind_id=' + str(e[0]) + '">Delete</a><span>----</span>' list += '<a href="/kind/edit?kind_id=' + str(e[0]) + '">Edit</a>' list += "</div>" body = Template.Kind_Body %(Template.Kind_Top,list,"") html = Template.HTML % ("Kind Index",body) return html
def login(self): request = get_request() username_widget = widget.StringWidget(name='username', value='') submit_widget = widget.SubmitWidget(name='submit', value='submit me') submit_widget2 = widget.SubmitWidget(name='nosubmit2', value="don't submit") if request.form: assert not submit_widget2.parse(request) username = username_widget.parse(request) if username: session = get_session() session.set_user(username) return redirect('./') image_submit = '''<input type=image name='submit you' src=DNE.gif>''' return "<form method=POST>Log in: %s<p>%s<p>%s<p>%s</form>" % \ (username_widget.render(), submit_widget2.render(), submit_widget.render(), image_submit)
def _q_index(self): content = htmltext('') if not get_user(): content += htmltext('<p>%s</p>' % href('login', 'login')) else: content += htmltext( '<p>Hello, %s.</p>') % get_user() content += htmltext('<p>%s</p>' % href('logout', 'logout')) sessions = get_session_manager().items() if sessions: sessions.sort() content += htmltext('<table><tr>' '<th></th>' '<th>Session</th>' '<th>User</th>' '<th>Number of Requests</th>' '</tr>') this_session = get_session() for index, (id, session) in enumerate(sessions): if session is this_session: formatted_id = htmltext( '<span style="font-weight:bold">%s</span>' % id) else: formatted_id = id content += htmltext( '<tr><td>%s</td><td>%s</td><td>%s</td><td>%d</td>' % ( index, formatted_id, session.user or htmltext("<em>None</em>"), session.num_requests)) content += htmltext('</table>') return format_page("Quixote Session Management Demo", content)
def _parse(self, request): token = request.form.get(self.name) session = get_session() if not session.has_form_token(token): self.error = "invalid" # this error does not get displayed else: session.remove_form_token(token)
def _parse(self, request): token = request.form.get(self.name) session = get_session() if not session.has_form_token(token): self.error = 'invalid' else: session.remove_form_token(token)
def _q_index(self): content = htmltext('') if not get_user(): content += htmltext('<p>%s</p>' % href('login', 'login')) else: content += htmltext('<p>Hello, %s.</p>') % get_user() content += htmltext('<p>%s</p>' % href('logout', 'logout')) sessions = sorted([(s.id, s) for s in get_session_manager()]) if sessions: content += htmltext('<table><tr>' '<th></th>' '<th>Session</th>' '<th>User</th>' '<th>Number of Requests</th>' '</tr>') this_session = get_session() for index, (id, session) in enumerate(sessions): if session is this_session: formatted_id = htmltext( '<span style="font-weight:bold">%s</span>' % id) else: formatted_id = id content += htmltext( '<tr><td>%s</td><td>%s</td><td>%s</td><td>%d</td>' % (index, formatted_id, session.user or htmltext("<em>None</em>"), session.num_requests)) content += htmltext('</table>') return format_page("Quixote Session Management Demo", content)
def finish_successful_request(self): """Called near the end of each successful request. Not called if there were any errors processing the request. """ session = get_session() if session is not None: self.maintain_session(session) self.commit_changes(session)
def keep(self): """ Set the session to persist. """ session = get_session() session.keep = True # redirect to index page. return redirect(get_path(1) + '/')
def login(self): content = htmltext('') if get_field("name"): session = get_session() session.set_user(get_field("name")) # This is the important part. content += htmltext( '<p>Welcome, %s! Thank you for logging in.</p>') % get_user() content += href("..", "go back") else: content += htmltext('<p>Please enter your name here:</p>\n' '<form method="POST" action="login">' '<input name="name" />' '<input type="submit" />' '</form>') return format_page("Quixote Session Demo: Login", content)
def login(self): content = htmltext('') if get_field("name"): session = get_session() session.set_user(get_field("name")) # This is the important part. content += htmltext( '<p>Welcome, %s! Thank you for logging in.</p>') % get_user() content += href("..", "go back") else: content += htmltext( '<p>Please enter your name here:</p>\n' '<form method="POST" action="login">' '<input name="name" />' '<input type="submit" />' '</form>') return format_page("Quixote Session Demo: Login", content)
def _q_index(self): # a session object exists for each connection: get it. session = get_session() # return page. return """\ Hello, world! <p> Your session ID is %s. <p> Counter is at %d. <p> <a href="./">revisit page</a> <p> <a href="keep">assign session</a> <p> <a href="increment">increment</a> | <a href="incrementfail">increment+error</a> <p> <a href="logout">log out</a> | <a href="logoutfail">logout+error</a> """ % (session.id, session.counter)
def login(self): if get_field('action') != 'login': form = """ <form action="login" method="POST" accept-charset="utf-8"> <input type="hidden" name="action" value="login"> <div><input type="text" name="name" value=""><span>Name</span></div> <div><input type="text" name="password" value=""><span>Password</span></div> <p><input type="submit" value="登陆"></p> </form> """ body = Template.Kind_Body % (Template.Kind_Top,form,"") html = Template.HTML % ("Login",body) return html else: name = get_field('name') password = get_field('password') if name == 'Peter' and password == '112358132134art': this_session = get_session() this_session.set_user('Peter') return redirect('/kind')
def index(self): # if not self.sessionManager.has_session_cookie(): # session = self.sessionManager.new_session(self.sessionManager._make_session_id()) # self.sessionManager.maintain_session(session) # self.sessionManager.set_session_cookie(session.id) # print "creating session" # else: # session = self.sessionManager.get_session() # print "has session already" session = quixote.get_session() # self.sessionManager.get_session() # session = self.sessionManager.get_session() # self.sessionManager.maintain_session(session) # session = self.sessionManager.get_session() if session is not None: print session.id return html.render('index.html')
def login(self): request = get_request() username_widget = widget.StringWidget(name="username", value="") submit_widget = widget.SubmitWidget(name="submit", value="submit me") submit_widget2 = widget.SubmitWidget(name="nosubmit2", value="don't submit") if request.form: assert not submit_widget2.parse(request) username = username_widget.parse(request) if username: session = get_session() session.set_user(username) return redirect("./") image_submit = """<input type=image name='submit you' src=DNE.gif>""" return "<form method=POST>Log in: %s<p>%s<p>%s<p>%s</form>" % ( username_widget.render(), submit_widget2.render(), submit_widget.render(), image_submit, )
def _do_authenticate(auth_hdr, method): user = None response = quixote.get_response() session = quixote.get_session() try: if auth_hdr is None: return None scheme,dict = parse_auth_header(auth_hdr) if scheme not in _schemes_allowed: return None method = dict.get('method', method) dict['method'] = method try: if _schemes[scheme](dict, method): username = dict.get('username') user = db.User.byUsername(username) except (KeyError, SQLObjectNotFound): pass # If we got an auth string but login failed, then delay a bit # to prevent being pounded with bad requests. if user is None: time.sleep(2) finally: if user is None: response.expire_cookie(_auth_cookie, path=imagestore.path()) else: response.set_cookie(_auth_cookie, _format_auth('digest', dict), path=imagestore.path()) return user
def _q_index(self): session = get_session() return message(session)
def render(self): self.value = get_session().create_form_token() return HiddenWidget.render(self)
def logout(self): get_session().set_user(None) return "You are now logged out."
def increment(self): session = get_session() session.n += 1 return message(session)
def forget_changes(self, session): print('abort changes', get_session()) connection.abort()
def increment(self): session = get_session() session.increment() return redirect(get_path(1) + '/')
def commit_changes(self, session): print 'commit changes', get_session() connection.commit()
def logout(self): get_session().set_user(None) return "Now you are logged out."
def set_user(user_id): session = get_session() session.set_user(user_id)
def _q_access(self): session = get_session() if not session.user: raise AccessError("you must have a username")
def incrementfail(self): session = get_session() session.n += 1 raise Exception(message(session))
def forget_changes(self, session): print 'abort changes', get_session() connection.abort()
def commit_changes(self, session): print('commit changes', get_session()) connection.commit()
def finish_failed_request(self): """Called near the end of a failed request (i.e. a exception that was not a PublisherError was raised. """ self.abort_changes(get_session())
def getSessionID(self): return get_session().id
def _q_access(self): session = get_session() if not session.user: raise AccessError
def incrementfail(self): session = get_session() session.increment() raise Exception("oops!")