Diff for /basket/groups.py between versions 1.1 and 1.4

version 1.1, 2006/03/02 19:57:32 version 1.4, 2006/04/06 16:49:14
Line 14  class GroupFolder(Folder): Line 14  class GroupFolder(Folder):
           
     meta_type="GroupFolder"      meta_type="GroupFolder"
   
     def registerNewUser(self,user,password,email,forward_to=None,RESPONSE=None):      def registerNewUser(self,user,password,email='',forward_to=None,RESPONSE=None):
         """register a new user to the system, username and password, will be stored in the acl_users folder,          """register a new user to the system, username and password, will be stored in the acl_users folder,
         additional information are added here."""          additional information are added here."""
                   
         #TODO: check if user already exists in LDAP          #TODO: check if user already exists in LDAP
           #TODO: email is not registered yet, because MPIWGUserfolder is not working with CookieCrumbler
         #print [x for x in repr(self.acl_users.getUserNames())]          #print [x for x in repr(self.acl_users.getUserNames())]
         if user in repr(self.acl_users.getUserNames()):          if user in repr(self.acl_users.getUserNames()):
             return "ERROR: username already exists"              return "ERROR: username already exists"
         self.acl_users.addUser(user,password,email)          
           if user and password:
               #self.acl_users.addUser(user,password,email)
               self.aq_parent.acl_users._doAddUser(user, password, '', '')
   
         add="user=%s"%user          add="user=%s"%user
         if forward_to.find("?")>-1:          if forward_to.find("?")>-1:
Line 41  class GroupFolder(Folder): Line 45  class GroupFolder(Folder):
             return self.checkMembership(str(user), group)              return self.checkMembership(str(user), group)
         return False          return False
           
     def addUsersToGroups(self,users,groups):      def addKommaListOfUsersToGroup(self,users,group,remove=None,REQUEST=None,RESPONSE=None):
           """add users to a group, users in komma separeted list"""
           usersList=[x.lstrip().rstrip() for x in users.split(",")]
           
           self.addUsersToGroups(usersList,group,remove)
   
           if RESPONSE:
               RESPONSE.redirect(REQUEST['HTTP_REFERER'])
       
       def addUsersToGroups(self,users,groups,remove=None):
         """add users to groups          """add users to groups
         @param users: list of usernames          @param users: list of usernames
         @param groups: list of groupnames          @param groups: list of groupnames
           @param remove: default None, if remove is set the actual
            user list of the groups will be replaced by users otherwise users will be added. 
            if remove= protected then the actualuser can not be deleted.
         """          """
         
           if type(groups) is not ListType:
               groups=[groups]
           
         for user in users:          for user in users:
             self.addUserToGroups(user,groups)              self.addUserToGroups(user,groups)
                   
           if remove:
               for group in groups:
                   for user in self.getGroupsAndUsers().get(group,None):
                       if (user not in users):
                           if not ((remove=="protected") and (user==self.getActualUserName())):
                               self.removeUserFromGroups(user,group)
           
       def removeUserFromGroups(self,user,groups):
           '''
           remove a user from a group
           @param user: username
           @param groups: list of groupnames
           '''
             
           #make sure that list of groups
           print "remove",user,repr(groups)
           
           if type(groups) is not ListType:
               groups=[groups]
               
           groupObjects=self.ZopeFind(self,obj_ids=groups)
           #group doesn't exist, return with false
           if len(groupObjects)<1:
               return False
           
           #otherwise add user to group
           for groupObject in groupObjects:
               groupObject[1].removeUser(user)
                   
     def addUserToGroups(self,user,groups):      def addUserToGroups(self,user,groups):
         '''          '''
Line 113  class GroupFolder(Folder): Line 161  class GroupFolder(Folder):
         @param user:          @param user:
         @param group:          @param group:
         '''          '''
           print "checking publish for user:",user,group,self.aq_parent.getId()
           ret=False
                   
         groups=self.ZopeFind(self,obj_metatypes=['Group'],obj_ids=[group])          groups=self.ZopeFind(self,obj_metatypes=['Group'],obj_ids=[group])
         #group doesn't exist          #group doesn't exist
                   
           if group=="publish":
               #special group, member is allowed to publish basket, at the moment all members of the admin group at root level
               #member of publish
               
               return  self.users.groupFolder.checkMembership(user,'admin')
               
         if len(groups)<1:          if len(groups)<1:
             return False              ret=False
           else:
               ret=groups[0][1].isInGroup(user)
           
           if (not ret) and (self.aq_parent.getId()!='users'):
               #teste ob mitglied in super group
               return self.users.groupFolder.checkMembership(user,'admin')
         else:          else:
             print "check",groups[0][0],user,groups[0][1].aq_parent.aq_parent.getId()              return ret
             return groups[0][1].isInGroup(user)  
                   
     def returnUsers(self):      def returnUsers(self):
         """return all users of groups"""          """return all users of groups"""
Line 136  class GroupFolder(Folder): Line 197  class GroupFolder(Folder):
                   
         return users          return users
           
       def getGroupsAndUsers(self):
           """return all groups and their users as dict"""
           
           users={}
           for group in self.ZopeFind(self,obj_metatypes=['Group']):
               for user in group[1].getUsers():
                   if users.has_key(group[0]):
                       if not (user in users[group[0]]):
                           users[group[0]].append(user)
                   else:
                       users[group[0]]=[user]
           return users
                       
 def manage_addGroupFolderForm(self):  def manage_addGroupFolderForm(self):
     """form for adding a groupFolder"""      """form for adding a groupFolder"""
     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addGroupFolder.zpt')).__of__(self)      pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addGroupFolder.zpt')).__of__(self)
Line 175  class Group(SimpleItem): Line 249  class Group(SimpleItem):
   
     meta_type="Group"      meta_type="Group"
           
       
       manage_options=SimpleItem.manage_options+(
           {'label':'change group members','action':'changeUsersInGroupForm'},
           )
       
     def __init__(self,id,description):      def __init__(self,id,description):
         """init group"""          """init group"""
         self.id=id          self.id=id
Line 192  class Group(SimpleItem): Line 271  class Group(SimpleItem):
         list.append(username)          list.append(username)
         self.userList=list[0:]          self.userList=list[0:]
                   
       def removeUser(self,username):
           """
           remove an user from group
           """
           list=self.userList
           list.remove(username)
           self.userList=list[0:]
           
           
     def addGroup(self,group):      def addGroup(self,group):
         '''          '''
         add a group to the group          add a group to the group
Line 211  class Group(SimpleItem): Line 299  class Group(SimpleItem):
         """ get Userlist """          """ get Userlist """
         return self.userList          return self.userList
           
       def changeUsersInGroupForm(self):
           """html form for changing the users"""
           pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeUsersInGroup.zpt')).__of__(self)
           return pt()
       
       def changeUsersInGroup(self,userList,RESPONSE=None):
           """change group"""
           self.userList=userList.split(",")[0:]
       
           if RESPONSE is not None:
               RESPONSE.redirect('manage_main')
               
     def isInGroup(self,username):      def isInGroup(self,username):
         '''          '''
         check if username is in group          check if username is in group
Line 224  class Group(SimpleItem): Line 324  class Group(SimpleItem):
             return True              return True
                   
         #check first if user is in userList of this group          #check first if user is in userList of this group
         print self.userList, username          
         if username in self.userList:          if username in self.userList:
             return True              return True
                   

Removed from v.1.1  
changed lines
  Added in v.1.4


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>