diff --git a/servers/PasswordAccountsServer/PasswordAccountsServer.py b/servers/PasswordAccountsServer/PasswordAccountsServer.py index 15242768..27bf7102 100755 --- a/servers/PasswordAccountsServer/PasswordAccountsServer.py +++ b/servers/PasswordAccountsServer/PasswordAccountsServer.py @@ -188,6 +188,17 @@ class PasswordAccountsServer( virtualServer = self.getVirtualServer(virtualServerId) return virtualServer.admin.userCanChoosePassword + def canModifyObject(self, objectId): + virtualServerId = context.getVar('applicationId') + virtualServer = self.getVirtualServer(virtualServerId) + if not virtualServer.canLoadObjectCore(objectId): + return 0 + object = virtualServer.loadObjectCore(objectId) + if object.identityId == getProxyForServerRole('identities').getUserId(): + return 1 + + return objects.ObjectsServer.canModifyObject(self, objectId) + def changePassword(self, oldPassword, newPassword): userId = getProxyForServerRole('identities').getUserId() virtualServerId = context.getVar('applicationId')