示例#1
0
    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
示例#2
0
    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
示例#3
0
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!"
示例#4
0
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!"
示例#5
0
文件: kind.py 项目: AZRMAK/AZRMAK
 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 
示例#6
0
    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)
示例#7
0
 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)
示例#8
0
文件: form.py 项目: nascheme/quixote
 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)
示例#9
0
 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)
示例#10
0
 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)
示例#11
0
    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)
示例#12
0
文件: altdemo.py 项目: zhou0/quixote
 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)
示例#13
0
 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)
示例#14
0
 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) + '/')
示例#16
0
文件: altdemo.py 项目: zhou0/quixote
 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)
示例#17
0
 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)
示例#19
0
文件: kind.py 项目: AZRMAK/AZRMAK
 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')
示例#20
0
    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')
示例#21
0
    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,
        )
示例#22
0
文件: auth.py 项目: jsgf/imagestore2
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
示例#23
0
 def _q_index(self):
     session = get_session()
     return message(session)
示例#24
0
 def render(self):
     self.value = get_session().create_form_token()
     return HiddenWidget.render(self)
示例#25
0
 def logout(self):
     get_session().set_user(None)
     return "You are now logged out."
示例#26
0
    def increment(self):
        session = get_session()

        session.n += 1

        return message(session)
示例#27
0
文件: altdemo.py 项目: zhou0/quixote
 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) + '/')
示例#29
0
 def commit_changes(self, session):
     print 'commit changes', get_session()
     connection.commit()
示例#30
0
def logout(self):
    get_session().set_user(None)
    return "Now you are logged out."
示例#31
0
文件: user.py 项目: 000fan000/code
def set_user(user_id):
    session = get_session()
    session.set_user(user_id)
示例#32
0
 def _q_access(self):
     session = get_session()
     if not session.user:
         raise AccessError("you must have a username")
示例#33
0
    def incrementfail(self):
        session = get_session()

        session.n += 1

        raise Exception(message(session))
示例#34
0
    def increment(self):
        session = get_session()

        session.n += 1

        return message(session)
示例#35
0
    def incrementfail(self):
        session = get_session()

        session.n += 1

        raise Exception(message(session))
示例#36
0
 def forget_changes(self, session):
     print 'abort changes', get_session()
     connection.abort()
示例#37
0
 def _q_access(self):
     session = get_session()
     if not session.user:
         raise AccessError("you must have a username")
示例#38
0
文件: user.py 项目: jackfrued/code-1
def set_user(user_id):
    session = get_session()
    session.set_user(user_id)
示例#39
0
文件: altdemo.py 项目: zhou0/quixote
 def commit_changes(self, session):
     print('commit changes', get_session())
     connection.commit()
示例#40
0
def logout(self):
    get_session().set_user(None)
    return "Now you are logged out."
示例#41
0
 def logout(self):
     get_session().set_user(None)
     return "You are now logged out."
示例#42
0
 def _q_index(self):
     session = get_session()
     return message(session)
示例#43
0
 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())
示例#44
0
文件: SitePage.py 项目: philn/alinea
 def getSessionID(self):
     return get_session().id
示例#45
0
 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())
示例#46
0
 def _q_access(self):
     session = get_session()
     if not session.user:
         raise AccessError
示例#47
0
 def render(self):
     self.value = get_session().create_form_token()
     return HiddenWidget.render(self)
 def incrementfail(self):
     session = get_session()
     session.increment()
     raise Exception("oops!")