Download Install Tutorial Docs FAQ Tools WikiLicense Team IRC Planet Involvement Shop Book

Changeset 343

Show
Ignore:
Timestamp:
06/20/05 13:47:40
Author:
rdelon
Message:

Cleaning up a couple of filters

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/cherrypy/_cputil.py

    r338 r343  
    119119    decodingfilter, encodingfilter, gzipfilter, logdebuginfofilter, \ 
    120120    staticfilter, nsgmlsfilter, tidyfilter, \ 
    121     virtualhostfilter, xmlrpcfilter 
     121    virtualhostfilter, xmlrpcfilter, sessionauthenticatefilter 
    122122 
    123123from cherrypy.lib.filter.sessionfilter import sessionfilter 
     
    139139    decodingfilter.DecodingFilter(), 
    140140    _sessionfilter, 
     141    sessionauthenticatefilter.SessionAuthenticateFilter(), 
    141142    staticfilter.StaticFilter(), 
    142143    _nsgmlsfilter, 
  • trunk/cherrypy/docs/europython2005/index.html

    r324 r343  
    4646<h1>Introduction</h1> 
    4747<ul> 
    48     <li>Item 1</li> 
    49     <li>Item 2</li> 
     48    <li>OOP framework for doing web development</li> 
     49    <li>Runs everywhere python runs</li> 
     50    <li>Requires Python-2.3 or later</li> 
     51    <li>Version 2.1 (used in this tutorial) coming soon</li> 
     52</ul> 
     53</div> 
     54 
     55<div class="slide"> 
     56<h1>Hello, world</h1> 
     57<ul> 
     58    <li>Exposing objects</li> 
     59    <li>Built-in HTTP server</li> 
     60    <li>"development" environment: autoreload, debug information, validation</li> 
     61</ul> 
     62</div> 
     63 
     64<div class="slide"> 
     65<h1>Hello, you</h1> 
     66<ul> 
     67    <li>Passing parameters to methods</li> 
    5068</ul> 
    5169</div> 
  • trunk/cherrypy/lib/csauthenticate.py

    r229 r343  
    3131 
    3232from aspect import Aspect, STOP, CONTINUE 
     33 
     34import warnings 
     35warnings.warn("The CSAuthenticate module is deprecated. You can use the sessionauthenticate filter instead", 
     36      DeprecationWarning) 
    3337 
    3438class CSAuthenticate(Aspect): 
  • trunk/cherrypy/lib/filter/sessionauthenticatefilter.py

    r295 r343  
    2929from basefilter import BaseFilter 
    3030 
    31 def loginScreen(fromPage, login = '', errorMsg = ''): 
     31def defaultLoginScreen(fromPage, login = '', errorMsg = ''): 
    3232    return """ 
    3333    <html><body> 
     
    4242    """ % (errorMsg, login, fromPage) 
    4343 
     44def defaultCheckLoginAndPassword(login, password): 
     45    # Dummy checkLoginAndPassword function 
     46    if login != 'login' or password != 'password': 
     47        return u'Wrong login/password' 
    4448 
    4549class SessionAuthenticateFilter(BaseFilter): 
     
    4852    """ 
    4953 
    50     def __init__(self, checkLoginAndPassword, loginScreen = loginScreen, 
    51             notLoggedIn = None, loadUserByUsername = None): 
    52         global cpg, httptools 
    53         # We have to dynamically import cpg because Python can't handle 
    54         #   circular module imports :-( 
     54    def beforeMain(self): 
     55        global cpg 
    5556        from cherrypy import cpg 
    56         from cherrypy.lib import httptools 
    57         self.checkLoginAndPassword = checkLoginAndPassword 
    58         self.loginScreen = loginScreen 
    59         self.notLoggedIn = notLoggedIn 
    60         self.loadUserByUsername = loadUserByUsername 
     57        if not cpg.config.get('sessionAuthenticateFilter.on', False): 
     58            return 
     59        checkLoginAndPassword = cpg.config.get('sessionAuthenticateFilter.checkLoginAndPassword', defaultCheckLoginAndPassword) 
     60        loginScreen = cpg.config.get('sessionAuthenticateFilter.loginScreen', defaultLoginScreen) 
     61        notLoggedIn = cpg.config.get('sessionAuthenticateFilter.notLoggedIn') 
     62        loadUserByUsername = cpg.config.get('sessionAuthenticateFilter.loadUserByUsername') 
     63        sessionName = cpg.config.get('sessionAuthenticateFilter.sessionName', 'sessionMap') 
     64        sessionKey = cpg.config.get('sessionAuthenticateFilter.sessionKey', 'username') 
     65        sessionMap = getattr(cpg.sessions, sessionName) 
    6166 
    62     def beforeMain(self): 
    6367        if cpg.request.path.endswith('loginScreen'): 
    6468            return 
    6569        elif cpg.request.path.endswith('doLogout'): 
    66             cpg.request.sessionMap['username'] = None 
     70            sessionMap[sessionKey] = None 
    6771            cpg.threadData.user = None 
    6872            fromPage = cpg.request.paramMap.get('fromPage') 
     
    7478            login = cpg.request.paramMap['login'] 
    7579            password = cpg.request.paramMap['password'] 
    76             errorMsg = self.checkLoginAndPassword(login, password) 
     80            errorMsg = checkLoginAndPassword(login, password) 
    7781            if errorMsg: 
    78                 cpg.response.body = self.loginScreen(fromPage, login = login, errorMsg = errorMsg) 
     82                cpg.response.body = loginScreen(fromPage, login = login, errorMsg = errorMsg) 
    7983            else: 
    80                 cpg.request.sessionMap['username'] = login 
     84                sessionMap[sessionKey] = login 
    8185                if not fromPage: 
    8286                    fromPage = '/' 
     
    8589 
    8690        # Check if user is logged in 
    87         if (not cpg.request.sessionMap.get('username')) and self.notLoggedIn: 
    88             self.notLoggedIn() 
    89         if not cpg.request.sessionMap.get('username'): 
    90             cpg.response.body = self.loginScreen(cpg.request.browserUrl) 
     91        if (not sessionMap.get(sessionKey)) and notLoggedIn: 
     92            # Call notLoggedIn so that applications where anynymous user 
     93            #   is OK can handle it 
     94            notLoggedIn() 
     95        if not sessionMap.get(sessionKey): 
     96            cpg.response.body = loginScreen(cpg.request.browserUrl) 
    9197            return 
    9298 
    9399        # Everything is OK: user is logged in 
    94         if self.loadUserByUsername: 
    95             username = cpg.request.sessionMap['username'
    96             cpg.threadData.user = self.loadUserByUsername(username) 
     100        if loadUserByUsername: 
     101            username = sessionMap[sessionKey
     102            cpg.threadData.user = loadUserByUsername(username) 
    97103         

Hosted by WebFaction

Log in as guest/cpguest to create tickets