--- basket/groups.py 2006/03/02 19:57:32 1.1 +++ basket/groups.py 2006/03/19 03:26:56 1.2 @@ -14,16 +14,20 @@ class GroupFolder(Folder): 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, additional information are added here.""" #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())] if user in repr(self.acl_users.getUserNames()): 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 if forward_to.find("?")>-1: #already parameters @@ -41,6 +45,14 @@ class GroupFolder(Folder): return self.checkMembership(str(user), group) return False + def addKommaListOfUsersToGroup(self,users,group,REQUEST=None,RESPONSE=None): + """add users to a group, users in komma separeted list""" + usersList=users.split(",") + self.addUsersToGroups(usersList,group) + + if RESPONSE: + RESPONSE.redirect(REQUEST['HTTP_REFERER']) + def addUsersToGroups(self,users,groups): """add users to groups @param users: list of usernames @@ -113,16 +125,29 @@ class GroupFolder(Folder): @param user: @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]) #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: - return False + ret=False else: - print "check",groups[0][0],user,groups[0][1].aq_parent.aq_parent.getId() - return groups[0][1].isInGroup(user) + 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: + return ret + def returnUsers(self): """return all users of groups""" @@ -136,6 +161,19 @@ class GroupFolder(Folder): 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): """form for adding a groupFolder""" pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addGroupFolder.zpt')).__of__(self) @@ -192,6 +230,15 @@ class Group(SimpleItem): list.append(username) 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): ''' add a group to the group @@ -224,7 +271,7 @@ class Group(SimpleItem): return True #check first if user is in userList of this group - print self.userList, username + if username in self.userList: return True