Déplacement pour eggification.
[Plinn.git] / MemberDataTool.py
diff --git a/MemberDataTool.py b/MemberDataTool.py
deleted file mode 100755 (executable)
index c83ff49..0000000
+++ /dev/null
@@ -1,267 +0,0 @@
-# -*- coding: utf-8 -*-
-#######################################################################################
-#   Plinn - http://plinn.org                                                          #
-#   Copyright (C) 2005-2007  Benoît PIN <benoit.pin@ensmp.fr>                         #
-#                                                                                     #
-#   This program is free software; you can redistribute it and/or                     #
-#   modify it under the terms of the GNU General Public License                       #
-#   as published by the Free Software Foundation; either version 2                    #
-#   of the License, or (at your option) any later version.                            #
-#                                                                                     #
-#   This program is distributed in the hope that it will be useful,                   #
-#   but WITHOUT ANY WARRANTY; without even the implied warranty of                    #
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                     #
-#   GNU General Public License for more details.                                      #
-#                                                                                     #
-#   You should have received a copy of the GNU General Public License                 #
-#   along with this program; if not, write to the Free Software                       #
-#   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.   #
-#######################################################################################
-""" Workflow aware MemberData to provide reviewed member registration.
-
-
-
-"""
-from AccessControl.interfaces import IUser
-from Products.CMFCore.interfaces import IMemberDataTool
-from Globals import InitializeClass
-from Acquisition import aq_inner, aq_parent, aq_base
-from AccessControl import ClassSecurityInfo
-from OFS.SimpleItem import SimpleItem
-from Products.CMFCore.MemberDataTool import MemberDataTool as BaseTool
-from Products.CMFCore.MemberDataTool import MemberData as BaseData
-from Products.CMFCore.MemberDataTool import MemberAdapter as BaseMemberAdapter
-from zope.component import adapts
-from zope.component import getUtility
-from zope.interface import implements
-from Products.CMFCore.interfaces import IMember
-from Products.CMFCore.interfaces import IRegistrationTool
-# from Products.CMFCore.MemberDataTool import CleanupTemp
-#from Products.CMFCore.utils import getToolByName
-from Products.CMFCore.CMFCatalogAware import CMFCatalogAware
-from Products.CMFCore.DynamicType import DynamicType
-from Products.CMFCore.exceptions import BadRequest
-from utils import formatFullName
-from permissions import SetMemberProperties, SetMemberPassword
-
-
-class MemberDataTool (BaseTool):
-       """ This tool wraps user objects, making them act as Member objects.
-       """
-
-       meta_type = 'Plinn Member Data Tool'
-##              __implements__ = (IMemberDataTool, ActionProviderBase.__implements__)
-       
-       security = ClassSecurityInfo()
-
-       def __init__(self):
-               BaseTool.__init__(self)
-               # Create the default properties.
-               self._setProperty('name', '', 'string')
-               self._setProperty('given_name', '', 'string')
-               self._setProperty('wysiwyg_editor', 'FCK', 'string')
-               self._setProperty('photo_width', 800, 'int')
-       
-       def wrapUser(self, u) :
-           wu = super(MemberDataTool, self).wrapUser(u)
-           return wu.__of__(self).__of__(u)
-    
-
-       def __bobo_traverse__(self, REQUEST, name):
-               if hasattr(self,name):
-                       return getattr(self,name)
-               else:
-                       if self._members.has_key(name) :
-                               return self.wrapUser(self.acl_users.getUser(name))
-
-InitializeClass(MemberDataTool)
-
-
-class MemberAdapter(BaseMemberAdapter, SimpleItem, DynamicType, CMFCatalogAware):
-
-       """Member data adapter.
-       """
-
-       adapts(IUser, IMemberDataTool)
-       implements(IMember)
-       
-       portal_type = 'Member Data'
-
-       security = ClassSecurityInfo()
-       
-       def __init__(self, user, tool):
-               super(MemberAdapter, self).__init__(user, tool)
-               self.id = self.getId()
-
-       security.declarePublic('getMemberFullName')
-       def getMemberFullName(self, nameBefore=1) :
-               """ Return the best full name representation """
-               memberName = self.getProperty('name', default='')
-               memberGivenName = self.getProperty('given_name', default='')
-               memberId = self.getId()
-               return formatFullName(memberName, memberGivenName, memberId, nameBefore=nameBefore)
-
-       def getMemberSortableFormat(self) :
-               """ Return a specific format of full name for alphabetical sorting """
-               return self.getMemberFullName(nameBefore = 1).lower()
-       
-       # security overload
-       security.declareProtected(SetMemberProperties, 'setMemberProperties')
-       def setMemberProperties(self, mapping):
-               super(MemberAdapter, self).setMemberProperties(mapping)
-               self.reindexObject()
-
-       security.declareProtected(SetMemberPassword, 'setMemberPassword')
-       def setMemberPassword(self, password, domains=None) :
-               """ set member password """
-
-               registration = getUtility(IRegistrationTool)
-               failMessage = registration.testPasswordValidity(password)
-               if failMessage is not None :
-                       raise BadRequest(failMessage)
-
-               self.setSecurityProfile(password=password, domains=domains)
-
-       security.declarePrivate('setSecurityProfile')
-       def setSecurityProfile(self, password=None, roles=None, domains=None):
-               """Set the user's basic security profile"""
-               u = self.getUser()
-               # This is really hackish.  The Zope User API needs methods
-               # for performing these functions.
-               if password is not None:
-                       u.setPassword(password)
-               if roles is not None:
-                       u.setRoles(roles)
-               if domains is not None:
-                       u.setDomains(domains)
-
-       security.declarePrivate('manage_beforeDelete')
-       def manage_beforeDelete(self) :
-               """ uncatalog object """
-               self.unindexObject()
-    
-       def _setPortalTypeName(self, pt) :
-               """ Static Dynamic Type ;-) """
-               pass
-
-       # user object interface
-       # overloads to make methods not publishable
-
-       def getUserName(self):
-               return super(MemberAdapter, self).getUserName()
-
-       def getId(self):
-               return super(MemberAdapter, self).getId()
-
-       def getRoles(self):
-               return self._user.aq_inner.getRoles()
-               # return super(MemberAdapter, self).getRoles()
-
-       def getRolesInContext(self, object):
-               return super(MemberAdapter, self).getRolesInContext(object)
-
-       def getDomains(self):
-               return super(MemberAdapter, self).getDomains()
-
-       def has_role(self, roles, object=None):
-               return super(MemberAdapter, self).has_role(roles, object=None)
-
-InitializeClass(MemberAdapter)
-
-
-class MemberData (BaseData, DynamicType, CMFCatalogAware):
-
-##              __implements__ = IMemberData
-
-       portal_type = 'Member Data'
-
-       security = ClassSecurityInfo()
-# migré
-#      security.declareProtected(SetMemberPassword, 'setMemberPassword')
-#      def setMemberPassword(self, password, domains=None) :
-#              """ set member password """
-#
-#              registration = getToolByName(self, 'portal_registration', None)
-#              if registration:
-#                      failMessage = registration.testPasswordValidity(password)
-#                      if failMessage is not None:
-#                              raise 'Bad Request', failMessage
-#                              
-#              user_folder = self.acl_users
-#              self.setSecurityProfile(password=password, domains=domains)
-#              if user_folder.meta_type == 'Group User Folder' :
-#                      self.changePassword(password)
-       
-
-#migré        
-       #XXX restore the previous implementation for GRUF 2 I'll remove that later...
-#      security.declarePrivate('setSecurityProfile')
-#      def setSecurityProfile(self, password=None, roles=None, domains=None):
-#              """Set the user's basic security profile"""
-#              u = self.getUser()
-#              # This is really hackish.  The Zope User API needs methods
-#              # for performing these functions.
-#              if password is not None:
-#                      u.__ = password
-#              if roles is not None:
-#                      u.roles = roles
-#              if domains is not None:
-#                      u.domains = domains
-
-# migré
-#      def getMemberFullName(self, nameBefore=1) :
-#              """ Return the best full name representation """
-#              memberName = self.getProperty('name', default='')
-#              memberGivenName = self.getProperty('given_name', default='')
-#              memberId = self.getProperty('id', default='')
-#              return formatFullName(memberName, memberGivenName, memberId, nameBefore=nameBefore)
-
-# migré
-#      def getMemberSortableFormat(self) :
-#              """ Return a specific format of full name for alphabetical sorting """
-#              return self.getMemberFullName(nameBefore = 1).lower()
-
-
-# migré
-#      ## overload default security declaration
-#      security.declareProtected(SetMemberProperties, 'setMemberProperties')
-#      def setMemberProperties(self, mapping):
-#              BaseData.setMemberProperties(self, mapping)
-#              self.reindexObject()
-
-# migré
-#      security.declarePrivate('manage_beforeDelete')
-#      def manage_beforeDelete(self) :
-#              """ uncatalog object """
-#              self.unindexObject()
-
-# migré
-#      def _setPortalTypeName(self, pt) :
-#              """ Static Dynamic Type ;-) """
-#              pass
-
-# migré
-#      # user object interface
-#      # overloads to make methods not publishable
-#      
-#      def getUserName(self):
-#              return BaseData.getUserName(self)
-#
-#      def getId(self):
-#              return BaseData.getId(self)
-#
-#      def getRoles(self):
-#              return BaseData.getRoles(self)
-#
-#      def getRolesInContext(self, object):
-#              return BaseData.getRolesInContext(self, object)
-#
-#      def getDomains(self):
-#              return BaseData.getDomains(self)
-#
-#      def has_role(self, roles, object=None):
-#              return BaseData.has_role(self, roles, object=None)
-
-
-
-InitializeClass(MemberData)