diff --git a/wise-webapp/src/main/java/com/wisemapping/rest/AdminController.java b/wise-webapp/src/main/java/com/wisemapping/rest/AdminController.java index 3370dc8e..b37115c9 100644 --- a/wise-webapp/src/main/java/com/wisemapping/rest/AdminController.java +++ b/wise-webapp/src/main/java/com/wisemapping/rest/AdminController.java @@ -135,8 +135,7 @@ public class AdminController extends BaseController { for (int i = 0; i < muid; i++) { System.out.println("Looking for user:" + i); - User user = user = userService.getUserBy(i); - + final User user = userService.getUserBy(i); if (user != null) { // Do not process admin accounts ... if (user.getEmail().contains("wisemapping")) { 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 0e7881c2..a44a91ad 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 @@ -24,6 +24,7 @@ import com.wisemapping.model.User; import com.wisemapping.exceptions.AccessDeniedSecurityException; import com.wisemapping.security.Utils; import com.wisemapping.service.MindmapService; +import com.wisemapping.service.MindmapServiceImpl; import org.aopalliance.intercept.MethodInvocation; import org.jetbrains.annotations.Nullable; @@ -41,7 +42,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.identityEquality((Collaborator) argument); + isAllowed = user.identityEquality((Collaborator) argument) || ((MindmapServiceImpl) mindmapService).isAdmin(user); } else { throw new IllegalArgumentException("Argument " + argument); } 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 f5a38521..dae1beaa 100755 --- a/wise-webapp/src/main/java/com/wisemapping/service/MindmapServiceImpl.java +++ b/wise-webapp/src/main/java/com/wisemapping/service/MindmapServiceImpl.java @@ -78,7 +78,7 @@ public class MindmapServiceImpl return result; } - private boolean isAdmin(User user) { + public boolean isAdmin(@Nullable User user) { return user != null && user.getEmail() != null && user.getEmail().equals(adminUser); } diff --git a/wise-webapp/src/main/java/com/wisemapping/service/UserServiceImpl.java b/wise-webapp/src/main/java/com/wisemapping/service/UserServiceImpl.java index 19b09651..01bb97cd 100755 --- a/wise-webapp/src/main/java/com/wisemapping/service/UserServiceImpl.java +++ b/wise-webapp/src/main/java/com/wisemapping/service/UserServiceImpl.java @@ -24,6 +24,7 @@ import com.wisemapping.mail.NotificationService; import com.wisemapping.model.*; import org.apache.velocity.app.VelocityEngine; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.springframework.context.MessageSource; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.ui.velocity.VelocityEngineUtils; @@ -181,6 +182,7 @@ public class UserServiceImpl } @Override + @Nullable public User getUserBy(long id) { return userManager.getUserBy(id); }