il devrait (c'est pas testé) être maintenant possible d'avoir des
identités/fiches personnes/comptes privés et que l'envoi du mot de passe par email fonctionne qd même
This commit is contained in:
parent
b23719bb5a
commit
ea2ac8aa85
|
@ -434,6 +434,18 @@ class IdentitiesServer(commonIdentities.IdentitiesCommonMixin,
|
||||||
return identityIdentification.localNameIdentifier
|
return identityIdentification.localNameIdentifier
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def getObjectEmail(self, objectId):
|
||||||
|
virtualServerId = context.getVar('applicationId')
|
||||||
|
virtualServer = self.getVirtualServer(virtualServerId)
|
||||||
|
object = virtualServer.loadObjectCore(objectId)
|
||||||
|
if not object.personId:
|
||||||
|
return ''
|
||||||
|
|
||||||
|
from glasnost.proxy.tools import getProxy
|
||||||
|
personProxy = getProxy(object.personId)
|
||||||
|
return personProxy.getObjectEmail(object.personId)
|
||||||
|
|
||||||
|
|
||||||
def getObjectLabelAndLanguageXmlRpc(self, objectId):
|
def getObjectLabelAndLanguageXmlRpc(self, objectId):
|
||||||
virtualServerId = context.getVar('applicationId')
|
virtualServerId = context.getVar('applicationId')
|
||||||
virtualServer = self.getVirtualServer(virtualServerId)
|
virtualServer = self.getVirtualServer(virtualServerId)
|
||||||
|
@ -535,6 +547,7 @@ class IdentitiesServer(commonIdentities.IdentitiesCommonMixin,
|
||||||
self.registerPublicMethod('getElectionVoteToken')
|
self.registerPublicMethod('getElectionVoteToken')
|
||||||
self.registerPublicMethod('getLocalNameIdentifierIdentityProvider')
|
self.registerPublicMethod('getLocalNameIdentifierIdentityProvider')
|
||||||
self.registerPublicMethod('getLocalNameIdentifierServiceProvider')
|
self.registerPublicMethod('getLocalNameIdentifierServiceProvider')
|
||||||
|
self.registerPublicMethod('getObjectEmail')
|
||||||
self.registerPublicMethod('getPeerNameIdentifierIdentityProvider')
|
self.registerPublicMethod('getPeerNameIdentifierIdentityProvider')
|
||||||
self.registerPublicMethod('getPeerNameIdentifierServiceProvider')
|
self.registerPublicMethod('getPeerNameIdentifierServiceProvider')
|
||||||
self.registerPublicMethod('getPersonId')
|
self.registerPublicMethod('getPersonId')
|
||||||
|
|
|
@ -159,6 +159,24 @@ class NCardsServer(NCardsCommonMixin, ObjectsServer):
|
||||||
return applicationName
|
return applicationName
|
||||||
raise 'aie'
|
raise 'aie'
|
||||||
|
|
||||||
|
|
||||||
|
def getObjectEmail(self, objectId):
|
||||||
|
clientToken = context.getVar('clientToken')
|
||||||
|
clientId = getApplicationId(clientToken)
|
||||||
|
clientRole = commonTools.extractRole(clientId)
|
||||||
|
if clientRole != 'identities':
|
||||||
|
raise faults.ApplicationAccessDenied(clientId)
|
||||||
|
|
||||||
|
virtualServerId = context.getVar('applicationId')
|
||||||
|
virtualServer = self.getVirtualServer(virtualServerId)
|
||||||
|
object = virtualServer.loadObjectCore(objectId)
|
||||||
|
emailAddress = object.getEmail()
|
||||||
|
if not emailAddress:
|
||||||
|
return '' # or raise something ?
|
||||||
|
|
||||||
|
return emailAddress
|
||||||
|
|
||||||
|
|
||||||
def loadVirtualServer(self, virtualServer):
|
def loadVirtualServer(self, virtualServer):
|
||||||
# ObjectsServer.loadVirtualServer; modified to user ncard.objectName
|
# ObjectsServer.loadVirtualServer; modified to user ncard.objectName
|
||||||
# instead of self.applicationName
|
# instead of self.applicationName
|
||||||
|
@ -273,6 +291,7 @@ class NCardsServer(NCardsCommonMixin, ObjectsServer):
|
||||||
|
|
||||||
def registerPublicMethods(self):
|
def registerPublicMethods(self):
|
||||||
ObjectsServer.registerPublicMethods(self)
|
ObjectsServer.registerPublicMethods(self)
|
||||||
|
self.registerPublicMethod('getObjectEmail')
|
||||||
self.registerPublicMethod('getObjectIdByRole')
|
self.registerPublicMethod('getObjectIdByRole')
|
||||||
|
|
||||||
def pushContext(self, virtualServerId, clientToken, userToken):
|
def pushContext(self, virtualServerId, clientToken, userToken):
|
||||||
|
|
|
@ -254,22 +254,22 @@ class PasswordAccountsServer(
|
||||||
if not identity.personId:
|
if not identity.personId:
|
||||||
print 'no personId for this identity'
|
print 'no personId for this identity'
|
||||||
return
|
return
|
||||||
person = getObject(identity.personId)
|
|
||||||
|
|
||||||
emailAddress = person.getEmail()
|
emailAddress = identitiesProxy.getObjectEmail(object.identityId)
|
||||||
if not emailAddress:
|
if not emailAddress:
|
||||||
raise faults.BadEmailAddress('')
|
raise faults.BadEmailAddress('')
|
||||||
|
|
||||||
|
personProxy = getProxyForServerRole(
|
||||||
|
commonTools.extractRole(identity.personId))
|
||||||
|
personName, personLanguage = personProxy.getObjectLabelAndLanguage(
|
||||||
|
identity.personId)
|
||||||
|
|
||||||
toAddress = [emailAddress]
|
toAddress = [emailAddress]
|
||||||
password = object.password
|
password = object.password
|
||||||
|
|
||||||
language = object.getLanguage()
|
|
||||||
if not language:
|
|
||||||
language = 'en'
|
|
||||||
|
|
||||||
messageFileName = commonTools.getConfig(
|
messageFileName = commonTools.getConfig(
|
||||||
commonTools.extractDispatcherId(object.id),
|
commonTools.extractDispatcherId(object.id),
|
||||||
'WelcomeEmail-%s' % language)
|
'WelcomeEmail-%s' % personLanguage)
|
||||||
messageSubject = commonTools.getConfig(
|
messageSubject = commonTools.getConfig(
|
||||||
commonTools.extractDispatcherId(object.id),
|
commonTools.extractDispatcherId(object.id),
|
||||||
'WelcomeEmailSubject',
|
'WelcomeEmailSubject',
|
||||||
|
@ -294,7 +294,7 @@ The Glasnost administrator - %(fromAddress)s
|
||||||
virtualServerId)
|
virtualServerId)
|
||||||
fromAddresses = self.getAdminEmailAddresses(stopAsap = 1)
|
fromAddresses = self.getAdminEmailAddresses(stopAsap = 1)
|
||||||
message = message % {
|
message = message % {
|
||||||
'user': person.getLabel(),
|
'user': personName,
|
||||||
'fromAddress': fromAddresses[0],
|
'fromAddress': fromAddresses[0],
|
||||||
'hostName': hostName,
|
'hostName': hostName,
|
||||||
'login': object.login,
|
'login': object.login,
|
||||||
|
|
|
@ -283,6 +283,24 @@ class PeopleServer(PeopleCommonMixin, ObjectsServer):
|
||||||
if object.containsText(text):
|
if object.containsText(text):
|
||||||
foundIds.append(objectId)
|
foundIds.append(objectId)
|
||||||
return foundIds
|
return foundIds
|
||||||
|
|
||||||
|
|
||||||
|
def getObjectEmail(self, objectId):
|
||||||
|
clientToken = context.getVar('clientToken')
|
||||||
|
clientId = getApplicationId(clientToken)
|
||||||
|
clientRole = commonTools.extractRole(clientId)
|
||||||
|
if clientRole != 'identities':
|
||||||
|
raise faults.ApplicationAccessDenied(clientId)
|
||||||
|
|
||||||
|
virtualServerId = context.getVar('applicationId')
|
||||||
|
virtualServer = self.getVirtualServer(virtualServerId)
|
||||||
|
object = virtualServer.loadObjectCore(objectId)
|
||||||
|
emailAddress = object.getEmail()
|
||||||
|
if not emailAddress:
|
||||||
|
return '' # or raise something ?
|
||||||
|
|
||||||
|
return emailAddress
|
||||||
|
|
||||||
|
|
||||||
def getObjectStringFromDigestXmlRpc(self, objectId, path, digest):
|
def getObjectStringFromDigestXmlRpc(self, objectId, path, digest):
|
||||||
"""Retrieve a string in the specified object from its MD5 digest.
|
"""Retrieve a string in the specified object from its MD5 digest.
|
||||||
|
@ -413,6 +431,7 @@ class PeopleServer(PeopleCommonMixin, ObjectsServer):
|
||||||
|
|
||||||
ObjectsServer.registerPublicMethods(self)
|
ObjectsServer.registerPublicMethods(self)
|
||||||
self.registerPublicMethod('findObjectIds', self.findObjectIdsXmlRpc)
|
self.registerPublicMethod('findObjectIds', self.findObjectIdsXmlRpc)
|
||||||
|
self.registerPublicMethod('getObjectEmail')
|
||||||
|
|
||||||
def repairVirtualServer(self, virtualServer, version):
|
def repairVirtualServer(self, virtualServer, version):
|
||||||
"""Handle a descendant compatibily with older server datas.
|
"""Handle a descendant compatibily with older server datas.
|
||||||
|
|
|
@ -165,6 +165,7 @@ class NCardNCardCommon(ObjectCommon):
|
||||||
def getEmail(self):
|
def getEmail(self):
|
||||||
if hasattr(self, 'email'):
|
if hasattr(self, 'email'):
|
||||||
return getattr(self, 'email')
|
return getattr(self, 'email')
|
||||||
|
# TODO: look up an attr with kind 'Email'
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def getLabel(self):
|
def getLabel(self):
|
||||||
|
|
|
@ -176,6 +176,14 @@ class IdentitiesProxy(commonIdentities.IdentitiesCommonMixin,
|
||||||
'getLocalNameIdentifierServiceProvider',
|
'getLocalNameIdentifierServiceProvider',
|
||||||
[serverId, getApplicationToken(), userToken, peerHostName])
|
[serverId, getApplicationToken(), userToken, peerHostName])
|
||||||
|
|
||||||
|
def getObjectEmail(self, objectId):
|
||||||
|
userToken = context.getVar('userToken', default = '')
|
||||||
|
return callServer(
|
||||||
|
commonTools.extractServerId(objectId),
|
||||||
|
'getObjectEmail',
|
||||||
|
[commonTools.extractServerId(objectId), getApplicationToken(),
|
||||||
|
userToken, objectId])
|
||||||
|
|
||||||
def getPeerNameIdentifierIdentityProvider(
|
def getPeerNameIdentifierIdentityProvider(
|
||||||
self, peerHostName, serverId = None):
|
self, peerHostName, serverId = None):
|
||||||
userToken = context.getVar('userToken', default = '')
|
userToken = context.getVar('userToken', default = '')
|
||||||
|
|
|
@ -64,6 +64,15 @@ class NCard(ObjectProxyMixin, NCardCommon):
|
||||||
register(NCard)
|
register(NCard)
|
||||||
|
|
||||||
|
|
||||||
|
class NCardsObjectsProxy(ObjectsProxy):
|
||||||
|
def getObjectEmail(self, objectId):
|
||||||
|
userToken = context.getVar('userToken', default = '')
|
||||||
|
return callServer(
|
||||||
|
commonTools.extractServerId(objectId),
|
||||||
|
'getObjectEmail',
|
||||||
|
[commonTools.extractServerId(objectId), getApplicationToken(),
|
||||||
|
userToken, objectId])
|
||||||
|
|
||||||
class NCardsProxy(NCardsCommonMixin, ObjectsProxy):
|
class NCardsProxy(NCardsCommonMixin, ObjectsProxy):
|
||||||
def getObjectIdByRole(self, role, serverId = None):
|
def getObjectIdByRole(self, role, serverId = None):
|
||||||
userToken = context.getVar('userToken', default = '')
|
userToken = context.getVar('userToken', default = '')
|
||||||
|
@ -95,7 +104,7 @@ def getProxyClass(ncard):
|
||||||
|
|
||||||
objectsClass = new.classobj(
|
objectsClass = new.classobj(
|
||||||
commonMixinClass.__name__,
|
commonMixinClass.__name__,
|
||||||
(commonMixinClass, ObjectsProxy),
|
(commonMixinClass, NCardsObjectsProxy),
|
||||||
{'adminClass': objectAdminClass,
|
{'adminClass': objectAdminClass,
|
||||||
'objectClass': objectClass})
|
'objectClass': objectClass})
|
||||||
|
|
||||||
|
|
|
@ -93,3 +93,12 @@ class PeopleProxy(PeopleCommonMixin, ObjectsProxy):
|
||||||
'findObjectIds',
|
'findObjectIds',
|
||||||
[serverId, getApplicationToken(), userToken, utf8(text)])
|
[serverId, getApplicationToken(), userToken, utf8(text)])
|
||||||
|
|
||||||
|
|
||||||
|
def getObjectEmail(self, objectId):
|
||||||
|
userToken = context.getVar('userToken', default = '')
|
||||||
|
return callServer(
|
||||||
|
commonTools.extractServerId(objectId),
|
||||||
|
'getObjectEmail',
|
||||||
|
[commonTools.extractServerId(objectId), getApplicationToken(),
|
||||||
|
userToken, objectId])
|
||||||
|
|
||||||
|
|
Reference in New Issue