From 596aeeebc4de514201e8ed02f5823cc88dab8a4c Mon Sep 17 00:00:00 2001 From: Paulo Gustavo Veiga Date: Wed, 14 Nov 2012 20:33:42 -0300 Subject: [PATCH] Keep fixing user issues. --- .../src/main/java/com/wisemapping/model/Collaborator.java | 2 +- .../src/main/java/com/wisemapping/model/Mindmap.java | 2 +- .../main/java/com/wisemapping/rest/MindmapController.java | 5 +++-- .../src/main/java/com/wisemapping/rest/model/RestUser.java | 2 +- .../com/wisemapping/security/aop/BaseSecurityAdvice.java | 2 +- .../main/java/com/wisemapping/service/LockManagerImpl.java | 2 +- .../java/com/wisemapping/service/MindmapServiceImpl.java | 6 +++--- 7 files changed, 11 insertions(+), 10 deletions(-) diff --git a/wise-webapp/src/main/java/com/wisemapping/model/Collaborator.java b/wise-webapp/src/main/java/com/wisemapping/model/Collaborator.java index 67a03e81..03b723eb 100755 --- a/wise-webapp/src/main/java/com/wisemapping/model/Collaborator.java +++ b/wise-webapp/src/main/java/com/wisemapping/model/Collaborator.java @@ -97,7 +97,7 @@ public class Collaborator implements Serializable { } - public boolean equalCollab(@Nullable Collaborator that) { + public boolean identityEquality(@Nullable Collaborator that) { if (this == that) return true; if (that == null) return false; diff --git a/wise-webapp/src/main/java/com/wisemapping/model/Mindmap.java b/wise-webapp/src/main/java/com/wisemapping/model/Mindmap.java index 9882b220..686698e9 100644 --- a/wise-webapp/src/main/java/com/wisemapping/model/Mindmap.java +++ b/wise-webapp/src/main/java/com/wisemapping/model/Mindmap.java @@ -112,7 +112,7 @@ public class Mindmap { public Collaboration findCollaboration(@NotNull Collaborator collaborator) { Collaboration result = null; for (Collaboration collaboration : collaborations) { - if (collaboration.getCollaborator().equalCollab(collaborator)) { + if (collaboration.getCollaborator().identityEquality(collaborator)) { result = collaboration; break; } diff --git a/wise-webapp/src/main/java/com/wisemapping/rest/MindmapController.java b/wise-webapp/src/main/java/com/wisemapping/rest/MindmapController.java index 91b22aa0..03d02d35 100644 --- a/wise-webapp/src/main/java/com/wisemapping/rest/MindmapController.java +++ b/wise-webapp/src/main/java/com/wisemapping/rest/MindmapController.java @@ -183,12 +183,13 @@ public class MindmapController extends BaseController { } final LockInfo lockInfo = lockManager.getLockInfo(mindmap); - if (lockInfo.getUser().equalCollab(user)) { + if (lockInfo.getUser().identityEquality(user)) { final boolean outdated = mindmap.getLastModificationTime().getTimeInMillis() > timestamp; if (lockInfo.getSession() == session) { // Timestamp might not be returned to the client. This try to cover this case, ignoring the client timestamp check. final User lastEditor = mindmap.getLastEditor(); - if (outdated && (lockInfo.getPreviousTimestamp() != timestamp || lastEditor == null || !lastEditor.equals(user))) { + // lockInfo.getPreviousTimestamp() == timestamp : In case the timestap is not returned. Give a second chance. + if (outdated && (lockInfo.getPreviousTimestamp() != timestamp || lastEditor == null || !lastEditor.identityEquality(user))) { throw new SessionExpiredException(lastEditor); } } else if (outdated) { diff --git a/wise-webapp/src/main/java/com/wisemapping/rest/model/RestUser.java b/wise-webapp/src/main/java/com/wisemapping/rest/model/RestUser.java index bb520699..310fecf0 100644 --- a/wise-webapp/src/main/java/com/wisemapping/rest/model/RestUser.java +++ b/wise-webapp/src/main/java/com/wisemapping/rest/model/RestUser.java @@ -124,7 +124,7 @@ public class RestUser { } RestUser restUser = (RestUser) o; - return this.getDelegated().equalCollab(restUser.getDelegated()); + return this.getDelegated().identityEquality(restUser.getDelegated()); } @Override diff --git a/wise-webapp/src/main/java/com/wisemapping/security/aop/BaseSecurityAdvice.java b/wise-webapp/src/main/java/com/wisemapping/security/aop/BaseSecurityAdvice.java index 20e6b1bc..0e7881c2 100755 --- a/wise-webapp/src/main/java/com/wisemapping/security/aop/BaseSecurityAdvice.java +++ b/wise-webapp/src/main/java/com/wisemapping/security/aop/BaseSecurityAdvice.java @@ -41,7 +41,7 @@ public abstract class BaseSecurityAdvice { isAllowed = isAllowed(user, ((Integer) argument)); } else if (argument instanceof Collaborator) { // Read operation find on the user are allowed ... - isAllowed = user.equalCollab((Collaborator) argument); + isAllowed = user.identityEquality((Collaborator) argument); } else { throw new IllegalArgumentException("Argument " + argument); } diff --git a/wise-webapp/src/main/java/com/wisemapping/service/LockManagerImpl.java b/wise-webapp/src/main/java/com/wisemapping/service/LockManagerImpl.java index a721ff8d..21730dc9 100644 --- a/wise-webapp/src/main/java/com/wisemapping/service/LockManagerImpl.java +++ b/wise-webapp/src/main/java/com/wisemapping/service/LockManagerImpl.java @@ -101,7 +101,7 @@ class LockManagerImpl implements LockManager { public boolean isLockedBy(@NotNull Mindmap mindmap, @NotNull User collaborator) { boolean result = false; final LockInfo lockInfo = this.getLockInfo(mindmap); - if (lockInfo != null && lockInfo.getUser().equalCollab(collaborator)) { + if (lockInfo != null && lockInfo.getUser().identityEquality(collaborator)) { result = true; } return result; diff --git a/wise-webapp/src/main/java/com/wisemapping/service/MindmapServiceImpl.java b/wise-webapp/src/main/java/com/wisemapping/service/MindmapServiceImpl.java index 68478eb0..d8e53a40 100755 --- a/wise-webapp/src/main/java/com/wisemapping/service/MindmapServiceImpl.java +++ b/wise-webapp/src/main/java/com/wisemapping/service/MindmapServiceImpl.java @@ -115,7 +115,7 @@ public class MindmapServiceImpl final Set collaborations = mindMap.getCollaborations(); final User creator = mindMap.getCreator(); - if (creator.equalCollab(collaboration.getCollaborator())) { + if (creator.identityEquality(collaboration.getCollaborator())) { throw new CollaborationException("User is the creator and must have ownership permissions.Creator Email:" + mindMap.getCreator().getEmail() + ",Collaborator:" + collaboration.getCollaborator().getEmail()); } @@ -126,7 +126,7 @@ public class MindmapServiceImpl @Override public void removeMindmap(@NotNull Mindmap mindmap, @NotNull User user) throws WiseMappingException { - if (mindmap.getCreator().equalCollab(user)) { + if (mindmap.getCreator().identityEquality(user)) { mindmapManager.removeMindmap(mindmap); } else { final Collaboration collaboration = mindmap.findCollaboration(user); @@ -265,7 +265,7 @@ public class MindmapServiceImpl @Override public void updateCollaboration(@NotNull Collaborator collaborator, @NotNull Collaboration collaboration) throws WiseMappingException { - if (collaborator.equalCollab(collaboration.getCollaborator())) { + if (collaborator.identityEquality(collaboration.getCollaborator())) { throw new WiseMappingException("No enough permissions for this operation."); } mindmapManager.updateCollaboration(collaboration);