work in progress: restrict mail recipients to users who have access to the target object; future extension: select recipients by groups
This commit is contained in:
		
							parent
							
								
									e13a79eca5
								
							
						
					
					
						commit
						54cf5c017f
					
				
					 1 changed files with 13 additions and 2 deletions
				
			
		|  | @ -1,5 +1,5 @@ | |||
| # | ||||
| #  Copyright (c) 2009 Helmut Merz helmutm@cy55.de | ||||
| #  Copyright (c) 2011 Helmut Merz helmutm@cy55.de | ||||
| # | ||||
| #  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 | ||||
|  | @ -145,7 +145,17 @@ class SendEmailForm(NodeView): | |||
|     def members(self): | ||||
|         persons = self.conceptManager['person'].getChildren([self.typePredicate]) | ||||
|         persons = [adapted(p) for p in persons] | ||||
|         return [dict(title=p.title, email=p.email) for p in persons if p.email] | ||||
|         # TODO: check if user has access to target | ||||
|         #       see zope.app.securitypolicy.zopepolicy.settingsForObject | ||||
|         return [dict(title=p.title, email=p.email, object=p) | ||||
|                     for p in persons if p.email] | ||||
| 
 | ||||
|     @Lazy | ||||
|     def membersByGroups(self): | ||||
|         groups = {} | ||||
|         pdata = self.members | ||||
|         # TODO: see security.audit.PersonWorkSpaceAssignments | ||||
|         return sorted([]) | ||||
| 
 | ||||
|     @Lazy | ||||
|     def mailBody(self): | ||||
|  | @ -169,6 +179,7 @@ class SendEmail(FormController): | |||
|         message = form.get('mailbody') or u'' | ||||
|         recipients = form.get('recipients') or [] | ||||
|         recipients += (form.get('addrRecipients') or u'').split('\n') | ||||
|         # TODO: remove duplicates | ||||
|         person = getPersonForUser(self.context, self.request) | ||||
|         sender = person and adapted(person).email or 'loops@unknown.com' | ||||
|         msg = MIMEText(message.encode('utf-8'), 'plain', 'utf-8') | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue