Logo Search packages:      
Sourcecode: zope-exuserfolder version File versions

usPropSource.py

#
# Extensible User Folder
# 
# User Supplied Property Source for exUserFolder
#
from Globals import HTMLFile, MessageDialog, INSTANCE_HOME,Acquisition

from OFS.Folder import Folder

from ZODB.PersistentMapping import PersistentMapping
from Products.ZSQLMethods.SQL import SQL

from Products.exUserFolder.exUserFolder import exUserFolder
from Products.exUserFolder.Plugins import PluginRegister

from Persistence import Persistent

manage_addPropSourceForm=HTMLFile('manage_addusPropSourceForm', globals())

import cPickle


def manage_addusPropSource(self, REQUEST):
      """ Add a User-supplied Prop Source """

      o = usPropSource()
      self._setObject('usPropSource', o, None, None, 0)
      o = getattr(self, 'usPropSource')

      # Allow Prop Source to setup default users...
      if hasattr(o, 'postInitialisation'):
            o.postInitialisation(REQUEST)
      self.currentPropSource=o
      return ''

manage_addusPropSourceForm=HTMLFile('manage_addusPropSourceForm', globals())
manage_editusPropSourceForm=HTMLFile('manage_editusPropSourceForm', globals())

#
# Very simple thing
#
00042 class usPropSource(Folder):
      """ Store Properties using a User Supplied Set of Methods """

      meta_type='Property Source'
      title='User Supplied Properties'
      icon ='misc_/exUserFolder/exUserFolderPlugin.gif'
      #manage_tabs=Acquisition.Acquired
      manage_editForm=manage_editusPropSourceForm
      dict=PersistentMapping()
      
      def __init__(self):
            self.id='usPropSource'

            
      def hasProperty(self, key):
            if 'usHasProperty' in self.objectIds():
                  return self.usHasProperty(key)

      def delProperty(self, key):
            if 'usDelProperty' in self.objectIds():
                  return self.usDelProperty(key)

      def delUserProperty(self, key, username):
            if 'usDelUserProperty' in self.objectIds():
                  return self.usDelUserProperty(key, username)

      def flushTempProperties(self):
            if 'usFlushTempProperties' in self.objectIds():
                  return self.usFlushTempProperties()
            
      def setProperty(self, key, value):
            if 'usSetProperty' in self.objectIds():
                  return self.usSetProperty(key, value)

      def setTempProperty(self, key, value):
            if 'usSetTempProperty' in self.objectIds():
                  return self.usSetTempProperty(key, value)
            
      def setUserProperty(self, key, username, value, temp=0):
            if 'usSetUserProperty' in self.objectIds():
                  return self.usSetUserProperty(key, username, value, temp)

      def getUserProperty(self, key, username, default=None):
            if 'usGetUserProperty' in self.objectIds():
                  return self.usGetUserProperty(key, username, default)
            
      def getProperty(self, key, default=None):
            if 'usGetProperty' in self.objectIds():
                  return self.usGetProperty(key, default)
      
      def loadProperties(self):
            if 'usLoadProperties' in self.objectIds():
                  return self.usLoadProperties()

      def loadUserProperties(self, username):
            if 'usLoadUserProperties' in self.objectIds():
                  return self.usLoadUserProperties(username)

      def listProperties(self):
            if 'usListProperties' in self.objectIds():
                  return self.usListProperties()
            
      def listUserProperties(self, username):
            if 'usListUserProperties' in self.objectIds():
                  return self.usListUserProperties(username)
            
      def createUser(self, username, REQUEST):
            if 'usCreateUser' in self.objectIds():
                  props = {}
                  for k in REQUEST.keys():
                        if k[:5]=='user_':
                              key=k[5:]
                              value=REQUEST[k]
                              props[key] = value
                  return self.usCreateUser(username, props)

      def deleteUsers(self, userids):
            if 'usDeleteUsers' in self.objectIds():
                  return self.usDeleteUsers(userids)

      def updateUser(self, username, REQUEST):
            if 'usUpdateUser' in self.objectIds():
                  props = {}
                  for k in REQUEST.keys():
                        if k[:5]=='user_':
                              key=k[5:]
                              value=REQUEST[k]
                              props[key] = value
                  return self.usUpdateUser(username, props)

      def __setstate__(self, state):
            Persistent.__setstate__(self, state)


      def postInitialisation(self, REQUEST):
            pass

usPropReg=PluginRegister('usPropSource', 'User Supplied Properties Source',
                                     usPropSource, manage_addusPropSourceForm,
                                     manage_addusPropSource,
                                     manage_editusPropSourceForm)

exUserFolder.propSources['usPropSource']=usPropReg


Generated by  Doxygen 1.6.0   Back to index