diff --git a/servers/IdentitiesServer/IdentitiesServer.py b/servers/IdentitiesServer/IdentitiesServer.py index ea8fb401..3b934234 100755 --- a/servers/IdentitiesServer/IdentitiesServer.py +++ b/servers/IdentitiesServer/IdentitiesServer.py @@ -506,6 +506,12 @@ class IdentitiesServer(commonIdentities.IdentitiesCommonMixin, raise faults.MissingItem('Private Key for SSL') return admin.privateKeySSL + def getRoles(self): + virtualServerId = context.getVar('applicationId') + virtualServer = self.getVirtualServer(virtualServerId) + admin = virtualServer.admin + return admin.identitiesRoles + def getSymetricKey(self): virtualServerId = context.getVar('applicationId') virtualServer = self.getVirtualServer(virtualServerId) @@ -562,6 +568,7 @@ class IdentitiesServer(commonIdentities.IdentitiesCommonMixin, self.registerPublicMethod('getPeerNameIdentifierServiceProvider') self.registerPublicMethod('getPersonId') self.registerPublicMethod('getPrivateKeySSL') + self.registerPublicMethod('getRoles') self.registerPublicMethod('getSymetricKey') self.registerPublicMethod('getUserId') self.registerPublicMethod('getUserToken') diff --git a/shared/proxy/IdentitiesProxy.py b/shared/proxy/IdentitiesProxy.py index ac14d2f8..c1ef15d6 100644 --- a/shared/proxy/IdentitiesProxy.py +++ b/shared/proxy/IdentitiesProxy.py @@ -220,6 +220,14 @@ class IdentitiesProxy(commonIdentities.IdentitiesCommonMixin, 'getPrivateKeySSL', [serverId, getApplicationToken(), userToken]) + def getRoles(self, serverId = None): + userToken = context.getVar('userToken', default = '') + serverId = self.getServerId(serverId = serverId) + return callServer( + serverId, + 'getRoles', + [serverId, getApplicationToken(), userToken]) + def getSymetricKey(self, serverId = None): userToken = context.getVar('userToken', default = '') serverId = self.getServerId(serverId = serverId) diff --git a/shared/web/IdentitiesWeb.py b/shared/web/IdentitiesWeb.py index f24582d4..642583b2 100644 --- a/shared/web/IdentitiesWeb.py +++ b/shared/web/IdentitiesWeb.py @@ -840,7 +840,8 @@ class IdentitiesWeb(objects.ObjectsWebMixin, proxyIdentities.IdentitiesProxy): def newAccountNeededObjects(self): - peopleWeb = getWebForServerRole('people') + roles = self.getRoles() + peopleWeb = getWebForServerRole(roles[0]) if not peopleWeb.canAddObject(): return accessForbidden()