fix: split MemberRegistration to enable only Pricipal creationi
This commit is contained in:
		
							parent
							
								
									f8abff58d6
								
							
						
					
					
						commit
						40a5134648
					
				
					 1 changed files with 16 additions and 4 deletions
				
			
		|  | @ -71,7 +71,13 @@ class MemberRegistrationManager(object): | |||
|         options = IOptions(personType) | ||||
|         pfName = options(self.principalfolder_key, | ||||
|                          (self.default_principalfolder,))[0] | ||||
|         # step 1: create an internal principal in the loops principal folder: | ||||
|         self.createPrincipal(pfName, userId, password, lastName, firstName) | ||||
|         groups = options(self.groups_key, ()) | ||||
|         self.setGroupsForPrincipal(pfName, userId,  groups=groups) | ||||
|         self.createPersonForPrincipal(self, pfName, userId, lastName, firstName=firstName, useExisting=useExisting, **kw) | ||||
| 
 | ||||
|     def createPrincipal(self, pfName, userId, password, lastName, | ||||
|                               firstName=u'', groups=[], useExisting=False, **kw): | ||||
|         pFolder = getPrincipalFolder(self.context, pfName) | ||||
|         if IPersonBasedAuthenticator.providedBy(pFolder): | ||||
|              pFolder.setPassword(userId, password) | ||||
|  | @ -86,8 +92,9 @@ class MemberRegistrationManager(object): | |||
|                     return dict(fieldName='loginName', error='duplicate_loginname') | ||||
|                 else: | ||||
|                     pFolder[userId] = principal | ||||
|         # step 2 (optional): assign to group(s) | ||||
|         groups = options(self.groups_key, ()) | ||||
| 
 | ||||
|     def setGroupsForPrincipal(self, pfName, userId, groups=[]): | ||||
|         pFolder = getPrincipalFolder(self.context, pfName) | ||||
|         for groupInfo in groups: | ||||
|             names = groupInfo.split(':') | ||||
|             if len(names) == 1: | ||||
|  | @ -101,7 +108,12 @@ class MemberRegistrationManager(object): | |||
|                     members = list(group.principals) | ||||
|                     members.append(pFolder.prefix + userId) | ||||
|                     group.principals = members | ||||
|         # step 3: create a corresponding person concept: | ||||
| 
 | ||||
|     def createPersonForPrincipal(self, pfName, userId, lastName, firstName=u'', useExisting=False, **kw): | ||||
|         concepts = self.context.getConceptManager() | ||||
|         personType = adapted(concepts[self.person_typeName]) | ||||
|         pFolder = getPrincipalFolder(self.context, pfName) | ||||
|         title = firstName and ' '.join((firstName, lastName)) or lastName | ||||
|         name = baseId = 'person.' + userId | ||||
|         if useExisting and name in concepts: | ||||
|             person = concepts[name] | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 hplattner
						hplattner