version 1.3, 2006/04/03 18:19:45
|
version 1.5, 2006/04/12 19:37:34
|
Line 9 from types import *
|
Line 9 from types import *
|
|
|
from AccessControl import SecurityManagement |
from AccessControl import SecurityManagement |
|
|
|
import smtplib |
|
|
|
def sendForm(self,fromaddr,subject,content,nextPage="index_html",RESPONSE=None): |
|
"""sendform""" |
|
fromaddr=fromaddr.strip("\r\n\t") # sicherstellen dass keine zusaetzlichen headerzeilen eingefuegt werden |
|
subject=subject.strip("\r\n\t") # sicherstellen dass keine zusaetzlichen headerzeilen eingefuegt werden |
|
toaddrs=self.toAddrs |
|
|
|
subject="%s %s"%(self.subjectAdd,subject) |
|
|
|
msg = ("From: %s\r\nSubject: %s\r\nTo: %s\r\n\r\n" |
|
% (fromaddr, subject, ", ".join(toaddrs))) |
|
server = smtplib.SMTP("mail.mpiwg-berlin.mpg.de") |
|
#server.set_debuglevel(1) |
|
msg=msg+content |
|
server.sendmail(fromaddr, toaddrs, msg) |
|
server.quit() |
|
|
|
if RESPONSE: |
|
RESPONSE.redirect(nextPage) |
class GroupFolder(Folder): |
class GroupFolder(Folder): |
"""Folder which contains groups""" |
"""Folder which contains groups""" |
|
|
Line 21 class GroupFolder(Folder):
|
Line 41 class GroupFolder(Folder):
|
#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 |
#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 not (len(user.split("@")) ==2): |
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddUserErrorInvalidEmail.zpt')).__of__(self) |
|
return pt(user=user) |
|
|
|
|
if user in repr(self.acl_users.getUserNames()): |
if user in repr(self.acl_users.getUserNames()): |
return "ERROR: username already exists" |
|
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddUserErrorAlreadyExists.zpt')).__of__(self) |
|
return pt(user=user) |
|
|
if user and password: |
if user and password: |
#self.acl_users.addUser(user,password,email) |
#self.acl_users.addUser(user,password,email) |
Line 45 class GroupFolder(Folder):
|
Line 73 class GroupFolder(Folder):
|
return self.checkMembership(str(user), group) |
return self.checkMembership(str(user), group) |
return False |
return False |
|
|
def addKommaListOfUsersToGroup(self,users,group,REQUEST=None,RESPONSE=None): |
def addKommaListOfUsersToGroup(self,users,group,remove=None,REQUEST=None,RESPONSE=None): |
"""add users to a group, users in komma separeted list""" |
"""add users to a group, users in komma separeted list""" |
usersList=users.split(",") |
usersList=[x.lstrip().rstrip() for x in users.split(",")] |
self.addUsersToGroups(usersList,group) |
|
|
self.addUsersToGroups(usersList,group,remove) |
|
|
if RESPONSE: |
if RESPONSE: |
RESPONSE.redirect(REQUEST['HTTP_REFERER']) |
RESPONSE.redirect(REQUEST['HTTP_REFERER']) |
|
|
def addUsersToGroups(self,users,groups): |
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): |
''' |
''' |