move createExtUser() to organize.member, + syncExtUsers()
This commit is contained in:
parent
9bfdbc71c2
commit
d7f42f568b
2 changed files with 28 additions and 23 deletions
|
@ -25,6 +25,7 @@ from loops.concept import Concept
|
|||
from loops.interfaces import ILoops
|
||||
from loops.organize.auth import IPersonBasedAuthenticator
|
||||
from loops.organize.interfaces import IMemberRegistrationManager
|
||||
from loops.organize.party import getPersonForUser
|
||||
from loops.organize.util import getPrincipalFolder, getGroupsFolder
|
||||
from loops.organize.util import getInternalPrincipal, getPrincipalForUserId
|
||||
from loops.type import getOptionsDict
|
||||
|
@ -68,8 +69,10 @@ class MemberRegistrationManager(object):
|
|||
if not groups:
|
||||
groups = options(self.groups_key, ())
|
||||
self.setGroupsForPrincipal(pfName, userId, groups=groups)
|
||||
return self.createPersonForPrincipal(pfName, userId, lastName, firstName,
|
||||
useExisting, **kw)
|
||||
person = self.createPersonForPrincipal(
|
||||
pfName, userId, lastName, firstName, useExisting, **kw)
|
||||
createExtUser(person)
|
||||
return person
|
||||
|
||||
def createPrincipal(self, pfName, userId, password, lastName,
|
||||
firstName=u'', groups=[], useExisting=False,
|
||||
|
@ -156,3 +159,26 @@ class MemberRegistrationManager(object):
|
|||
principal.setPassword(newPw)
|
||||
return True
|
||||
|
||||
|
||||
def createExtUser(person, principal=None, updateIfExists=False):
|
||||
import config
|
||||
params = getattr(config, 'oidc_params', None)
|
||||
if params is None:
|
||||
return
|
||||
if principal is None:
|
||||
principal = getInternalPrincipal(person.userId, person.context)
|
||||
from scopes.org import user
|
||||
u = user.User(principal.login, person.email, #principal.password,
|
||||
firstName=person.firstName or '',
|
||||
lastName=person.lastName or '')
|
||||
xu = user.ExtUser(u, principal.__parent__.prefix)
|
||||
res = xu.create(updateIfExists)
|
||||
#print('*** Person.createExtUser', principal.login, res)
|
||||
|
||||
|
||||
def syncExtUsers(context, pfolderName):
|
||||
pf = getPrincipalFolder(context, pFolderName)
|
||||
for id, prc in pf.items():
|
||||
userId = pf.prefix + id
|
||||
person = getPersonForUser(context, getPrincipalForUserId(userId, context))
|
||||
createExtUser(person, principal, True)
|
||||
|
|
|
@ -80,24 +80,6 @@ class Person(AdapterBase, BasePerson):
|
|||
_adapterAttributes = ('context', '__parent__', 'userId', 'phoneNumbers')
|
||||
_contextAttributes = list(IPerson) + list(IConcept)
|
||||
|
||||
def createExtUser(self, userId):
|
||||
import config
|
||||
params = getattr(config, 'oidc_params', None)
|
||||
if params is None:
|
||||
return
|
||||
#print('*** Person.createExtUser', userId)
|
||||
from scopes.org import user
|
||||
try:
|
||||
prc = getInternalPrincipal(userId, self.context)
|
||||
except ValueError: # may happen during testing
|
||||
#print('*** PAU not available, userId:', userId)
|
||||
return
|
||||
u = user.User(prc.login, self.email, #prc.password,
|
||||
firstName=self.firstName or '',
|
||||
lastName=self.lastName or '')
|
||||
xu = user.ExtUser(u, prc.__parent__.prefix)
|
||||
xu.create(True)
|
||||
|
||||
def getUserId(self):
|
||||
return getattr(self.context, '_userId', None)
|
||||
def setUserId(self, userId):
|
||||
|
@ -129,9 +111,6 @@ class Person(AdapterBase, BasePerson):
|
|||
self.context._userId = userId
|
||||
setter.propagateSecurity()
|
||||
allowEditingForOwner(self.context, revert=not userId) # why this?
|
||||
if not oldUserId:
|
||||
pass
|
||||
self.createExtUser(userId)
|
||||
userId = property(getUserId, setUserId)
|
||||
|
||||
def removeReferenceFromPrincipal(self, userId):
|
||||
|
|
Loading…
Add table
Reference in a new issue