Changeset 246

Show
Ignore:
Timestamp:
08/18/07 19:03:33 (1 year ago)
Author:
johnbywater
Message:

Various minor changes.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/setup.py

    r217 r246  
    3434""", 
    3535    classifiers = [ 
    36         'Development Status :: 3 - Alpha', 
     36        'Development Status :: 4 - Beta', 
    3737        'Environment :: Console', 
    3838        'Environment :: Web Environment', 
  • trunk/src/dm/__init__.py

    r240 r246  
    1 __version__ = '0.2
     1__version__ = '0.3dev
  • trunk/src/dm/accesscontrol.py

    r130 r246  
    8686    def logAccessAttempt(self, person, actionName, protectedObject): 
    8787        if self.debug: 
    88             if self.person: 
    89                 personName = self.person.name 
     88            if person: 
     89                personName = person.name 
    9090            else: 
    9191                personName = 'None' 
     
    125125 
    126126    def assertAccessAuthorised(self): 
    127         raise AccessNotAuthorised("Access not authorised, by default.") 
     127        msg = "Access not authorised on any role and denied by default." 
     128        raise AccessNotAuthorised(msg) 
    128129 
    129130    def isRoleAuthorised(self, role): 
    130131        if self.isPermissionGranted(role.grants): 
    131132            if self.debug: 
    132                 msg = "Access authorised by '%s' role." % role.name 
    133                 self.logger.debug(msg) 
    134             return True 
    135         else: 
    136             if self.debug: 
    137                 msg = "Access not authorised by '%s' role." % role.name 
     133                msg = "Access authorised by '%s' associated role." % ( 
     134                    role.name 
     135                ) 
     136                self.logger.debug(msg) 
     137            return True 
     138        else: 
     139            if self.debug: 
     140                msg = "Access not authorised by '%s' associated role." % ( 
     141                    role.name 
     142                ) 
    138143                self.logger.debug(msg) 
    139144            return False 
     
    223228        if self.isPermissionGranted(self.person.grants): 
    224229            if self.debug: 
    225                 msg = "Access personally authorised to person." 
    226                 self.logger.debug(msg) 
    227             return True 
    228         else: 
    229             if self.debug: 
    230                 msg = "Access not personally authorised to person." 
     230                msg = "Access authorised by personal role." 
     231                self.logger.debug(msg) 
     232            return True 
     233        else: 
     234            if self.debug: 
     235                msg = "Access not authorised by personal role." 
    231236                self.logger.debug(msg) 
    232237            return False 
     
    235240        if self.isPermissionGranted(self.getVisitor().grants): 
    236241            if self.debug: 
    237                 msg = "Access personally authorised to visitor." 
    238                 self.logger.debug(msg) 
    239             return True 
    240         else: 
    241             if self.debug: 
    242                 msg = "Access not personally authorised to visitor." 
     242                msg = "Access authorised by visitor personal role." 
     243                self.logger.debug(msg) 
     244            return True 
     245        else: 
     246            if self.debug: 
     247                msg = "Access not authorised by visitor personal role." 
    243248                self.logger.debug(msg) 
    244249            return False 
  • trunk/src/dm/db.py

    r181 r246  
    4949logger = RequiredFeature('Logger') 
    5050 
    51 dbdebug = False 
     51moddebug = False 
    5252 
    5353class ConnectionFacade(object): 
     
    105105            "Retreive record of domain object." 
    106106            record = None 
    107             if dbdebug and debug: 
     107            if moddebug and debug: 
    108108                logger.debug('Finding %s record in database.' % (className)) 
    109109            if self.isSelectById(kwds) and len(kwds) == 1: 
     
    187187            else: 
    188188                records = self.getRecordClass(className).select() 
    189             if dbdebug and debug: 
     189            if moddebug and debug: 
    190190                logger.debug('Listed %s records from database.' % (className)) 
    191191            return records 
     
    194194            "Create new recorded domain object." 
    195195            newRecord = self.createRecord(className, *args, **kwds) 
    196             if dbdebug and debug: 
     196            if moddebug and debug: 
    197197                message = "Created new db record. %s" % newRecord 
    198198                logger.debug(message) 
     
    671671                    self.loadDomainObject(loadedList) 
    672672                else: 
    673                     if dbdebug and debug: 
     673                    if moddebug and debug: 
    674674                        message = "Avoided circular loading of %s #%s." % ( 
    675675                            self.getClassName(), self.id 
     
    677677                        logger.debug(message) 
    678678            else:  
    679                 if dbdebug and debug: 
     679                if moddebug and debug: 
    680680                    message = "Reusing %s #%s values." % ( 
    681681                        self.getClassName(), self.id 
     
    687687        "Reinstantiates pre-recorded domain object." 
    688688        domainClass = self.getDomainClass() 
    689         if dbdebug and debug: 
     689        if moddebug and debug: 
    690690            message = "Reinstantiating %s from record." % self.getClassName() 
    691691            logger.debug(message) 
     
    710710    def loadMapperAttributesFromRecord(self): 
    711711        "Maps record values to mapper attributes." 
    712         if dbdebug and debug: 
     712        if moddebug and debug: 
    713713            message = "Reloading mapper attributes from record." 
    714714            logger.debug(message) 
     
    716716 
    717717    def loadDomainObjectFromMapperAttributes(self, loadedList): 
    718         if dbdebug and debug: 
     718        if moddebug and debug: 
    719719            message = "Loading %s from mapper attributes..." % ( 
    720720                self.getClassName() 
     
    725725            dbName = metaAttr.dbName 
    726726            domName = metaAttr.domName 
    727             if dbdebug and debug: 
     727            if moddebug and debug: 
    728728                message = "Loading %s %s attribute." % ( 
    729729                    self.getClassName(), domName, 
     
    754754                mappedValue = getattr(self, dbName) 
    755755            setattr(self.domainObject, domName, mappedValue) 
    756         if debug: 
     756        if moddebug and debug: 
    757757            message = "Loaded %s from record #%s" % ( 
    758758                self.getClassName(), self.id, 
     
    781781                    isChanged = True 
    782782        if isChanged: 
    783             if dbdebug and debug: 
     783            if moddebug and debug: 
    784784                message = "Updating RDBMS with %s mapper value." % ( 
    785785                    self.meta.domName 
  • trunk/src/dm/dom/base.py

    r222 r246  
    66 
    77debug = RequiredFeature('Debug') 
    8 domdebug = False 
     8moddebug = False 
    99 
    1010class DomainBase(object): 
     
    7373        if self.isCached: 
    7474            if key in self.cache: 
    75                 if domdebug and debug: 
     75                if moddebug and debug: 
    7676                    message = "Cache hit for key: '%s'" % key 
    7777                    self.log.debug(message) 
    7878                return self.readCache(key) 
    7979            else: 
    80                 if domdebug and debug: 
     80                if moddebug and debug: 
    8181                    message = "Cache miss for key: '%s'" % key 
    8282                    self.log.debug(message) 
    83         if domdebug and debug: 
     83        if moddebug and debug: 
    8484            message = "Retrieving from %s record for key: '%s'" % (self, key) 
    8585            if message == 'WeekEarmarkTemplate': 
     
    572572        return dictValues 
    573573 
    574     def asRequestParams(self): 
     574    def asRequestParams(self, attrNames=None): 
    575575        requestParams = MultiValueDict() 
    576576        for attr in self.meta.attributes: 
    577577            attrName = attr.name 
     578            if (attrNames != None) and (attrName not in attrNames): 
     579                continue 
    578580            attrValueRepr = attr.createValueRepr(self) 
    579581            if attr.isList(): 
     
    763765        if not('startsWithAttributeName' in kwds and kwds['startsWithAttributeName']): 
    764766            kwds['startsWithAttributeName'] = self.startsWithAttributeName 
    765         if domdebug and debug: 
     767        if moddebug and debug: 
    766768            className = self.registerClass.__name__ 
    767769            message = "Creating '%s' register with kwds: %s" % (className, kwds) 
  • trunk/src/dm/dom/meta.py

    r230 r246  
    1212from dm.dictionarywords import DB_MIGRATION_IN_PROGRESS 
    1313import os 
     14 
     15moddebug = True 
    1416 
    1517class NotDefined(object): 
     
    201203 
    202204    def makeValueFromMultiValueDict(self, multiValueDict): 
    203         return multiValueDict.get(self.name, '') 
     205        attrValue = multiValueDict.get(self.name, '') 
     206        if moddebug and self.debug: 
     207            msg = "Made %s value: %s" % (self.name, attrValue) 
     208            self.logger.debug(msg) 
     209        return attrValue 
    204210 
    205211 
     
    240246        passwordText = multiValueDict[self.name] 
    241247        if self.dictionary[DB_MIGRATION_IN_PROGRESS]: 
    242             return passwordText 
     248            attrValue = passwordText 
    243249        elif passwordText: 
    244             return self.makeDigest(passwordText) 
    245         else: 
    246             return '' 
     250            attrValue = self.makeDigest(passwordText) 
     251        else: 
     252            attrValue = '' 
     253        if moddebug and self.debug: 
     254            msg = "Made %s value: %s" % (self.name, attrValue) 
     255            self.logger.debug(msg) 
     256        return attrValue 
    247257 
    248258    def makeDigest(self, clearText): 
     
    265275    def makeValueFromMultiValueDict(self, multiValueDict): 
    266276        dateTimeString = multiValueDict[self.name] 
    267         return self.convertor.fromHTML(dateTimeString) 
     277        attrValue = self.convertor.fromHTML(dateTimeString) 
     278        if moddebug and self.debug: 
     279            msg = "Made %s value: %s" % (self.name, attrValue) 
     280            self.logger.debug(msg) 
     281        return attrValue 
    268282 
    269283    def createValueRepr(self, domainObject): 
     
    292306        boolVal = multiValueDict[self.name] or False 
    293307        if boolVal.__class__ == False.__class__: 
    294             return boolVal 
     308            attrValue = boolVal 
    295309        elif boolVal.__class__ == ''.__class__: 
    296             return boolVal.lower() in self.trueStrings 
    297         else: 
    298             return False 
     310            attrValue = boolVal.lower() in self.trueStrings 
     311        else: 
     312            attrValue = False 
     313        if moddebug and self.debug: 
     314            msg = "Made %s value: %s" % (self.name, attrValue) 
     315            self.logger.debug(msg) 
     316        return attrValue 
    299317 
    300318    def createValueRepr(self, domainObject): 
     
    309327 
    310328    def makeValueFromMultiValueDict(self, multiValueDict): 
    311         return int(multiValueDict[self.name]) 
     329        attrValueKey = multiValueDict[self.name] 
     330        if attrValueKey: 
     331            return int(attrValueKey) 
     332        else: 
     333            if hasattr(self, 'default'): 
     334                attrValueKey = self.default 
     335            else: 
     336                return None 
    312337 
    313338 
  • trunk/src/dm/view/base.py

    r233 r246  
    3737        authCookieDomain = '.' + dictionary[DOMAIN_NAME] 
    3838 
    39     def __init__(self, request=None, **kwds): 
     39    def __init__(self, request=None, masterView=None, **kwds): 
    4040        self.request = request 
     41        self.masterView = masterView 
    4142        self.response = None 
     43        self.path = None 
    4244        self.session = None 
    4345        # todo: clarify meaning of redirect and redirectPath 
     
    4547        self.redirectPath = '' 
    4648        self.returnPath = '' 
     49        self.initFromMaster() 
    4750        # todo: clean up all this guff 
    4851        self._canReadSystem = None 
     
    6871        self._canDeleteService = None 
    6972 
     73    def initFromMaster(self): 
     74        if self.masterView != None: 
     75            self.path = self.masterView.path 
     76            self.session = self.masterView.session 
     77 
    7078    def getMethodName(self): 
    7179        if self.request.POST: 
     
    342350 
    343351    def getResponse(self): 
    344         return HttpResponse('Sorry, the getResponse() method is not implemented on class %s' % self.__class__) 
     352        msg = 'The getResponse() method is not implemented on class %s' % ( 
     353            self.__class__ 
     354        ) 
     355        return HttpResponse(msg) 
    345356 
    346357 
    347358class SessionView(ControlledAccessView): 
    348359 
    349     #templateLoader = TemplateLoader() 
    350360    templatePath = None 
    351361    majorNavigation = [] 
     
    356366    def __init__(self, **kwds): 
    357367        super(SessionView, self).__init__(**kwds) 
    358         self.template     = None 
    359         self.context      = None 
     368        self.template = None 
     369        self.context = None 
    360370        self.sessionCookieString = '' 
    361371        self.person = None 
     
    383393 
    384394    def setPathFromRequest(self): 
     395        if self.path != None: return 
    385396        uriPrefix = self.dictionary[URI_PREFIX] 
    386397        requestPath = self.request.path  
     
    392403    def readRequestSession(self): 
    393404        "Determines session from a cookie in request." 
     405        if self.session != None: 
     406            return 
    394407        cookieName = self.authSessionCookieName 
    395408        cookieString = self.request.COOKIES.get(cookieName, '') 
    396409        if not cookieString: 
    397410            if self.debug: 
    398                 self.logger.debug('No authentication session cookie in request.') 
     411                msg = 'No authentication session cookie in request.' 
     412                self.logger.debug(msg) 
    399413            return 
    400414        if cookieString == self.noAuthSessionCookieString: 
    401415            if self.debug: 
    402                 self.logger.debug('Unauthenticated session cookie in request.') 
     416                msg = 'Unauthenticated session cookie in request.' 
     417                self.logger.debug(msg) 
    403418            return 
    404419        if self.debug: 
    405             self.logger.debug('Session cookie in request...') 
     420            msg = 'Session cookie in request... (%s)' % ( 
     421                self.__class__.__name__ 
     422            ) 
     423            self.logger.debug(msg) 
    406424        self.setSessionFromCookieString(cookieString) 
    407425        if self.session: 
    408426            self.session.updateLastVisited() 
    409427            if moddebug and self.debug: 
    410                 self.logger.debug('Session re-established: %s' % self.session) 
     428                msg = 'Session re-established: %s' % self.session 
     429                self.logger.debug(msg) 
    411430        else: 
    412431            if moddebug and self.debug: 
    413                 self.logger.debug('No session for cookieString: %s' % cookieString) 
     432                msg = 'No session for cookieString: %s' % cookieString 
     433                self.logger.debug(msg) 
    414434         
    415435    def getRequestParam(self, paramName, default=None): 
     
    429449            #    self.requestParams.update(self.request.FILES) 
    430450            if moddebug and self.debug: 
    431                 self.logger.debug("Request params: %s" % self.requestParams) 
     451                msg = "Request params: %s" % self.requestParams 
     452                self.logger.debug(msg) 
    432453        return self.requestParams 
    433454 
    434455    def getZeroRequestParams(self): 
    435456        return {} 
     457        #return MultiValueDict() 
    436458 
    437459    def getResponse(self): 
     
    790812    def getInitialParams(self): 
    791813        return {} 
     814        #return MultiValueDict() 
    792815 
    793816    def isSubmissionRequest(self): 
  • trunk/src/dm/view/basetest.py

    r208 r246  
    8181        self.viewSession = None 
    8282        self.initViewSession() 
    83         self.GET = {} 
    84         self.POST = {} 
    85         self.COOKIES = {} 
     83        self.GET = MultiValueDict() 
     84        self.POST = MultiValueDict() 
     85        self.COOKIES = MultiValueDict() 
     86        #self.GET = {} 
     87        #self.POST = {} 
     88        #self.COOKIES = {} 
    8689        self.initCookies() 
    8790        self.initPost() 
     
    116119    def buildRequest(self): 
    117120        request = HttpRequest() 
    118         request.GET.update(self.GET) 
    119         request.POST.update(self.POST) 
    120         request.COOKIES.update(self.COOKIES) 
     121        #request.GET.update(self.GET) 
     122        #request.POST.update(self.POST) 
     123        #request.COOKIES.update(self.COOKIES) 
     124        request.GET = self.GET 
     125        request.POST = self.POST 
     126        request.COOKIES = self.COOKIES 
    121127        request.path = self.requestPath 
    122128        return request 
  • trunk/src/dm/view/manipulator.py

    r222 r246  
    154154                    field_name=metaAttr.name, 
    155155                    is_required=isFieldRequired, 
     156                    cols=30, 
     157                    rows=8, 
    156158                ) 
    157159            elif metaAttr.typeName == 'Password':