From a263a055202c9e23b27302a3bcadb5748426ce43 Mon Sep 17 00:00:00 2001 From: Paulo Gustavo Veiga Date: Tue, 11 Sep 2012 21:09:37 -0300 Subject: [PATCH] Minor permissions modification. --- .../wisemapping/service/MindmapServiceImpl.java | 17 +++++++++++++++-- .../main/webapp/WEB-INF/wisemapping-service.xml | 1 + 2 files changed, 16 insertions(+), 2 deletions(-) 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 1179ccc7..2383c260 100755 --- a/wise-webapp/src/main/java/com/wisemapping/service/MindmapServiceImpl.java +++ b/wise-webapp/src/main/java/com/wisemapping/service/MindmapServiceImpl.java @@ -44,6 +44,8 @@ public class MindmapServiceImpl @Autowired private NotificationService notificationService; + private String adminUser; + @Override public boolean hasPermissions(@Nullable User user, int mapId, @NotNull CollaborationRole grantedRole) { final Mindmap map = mindmapManager.getMindmapById(mapId); @@ -54,7 +56,7 @@ public class MindmapServiceImpl public boolean hasPermissions(@Nullable User user, @Nullable Mindmap map, @NotNull CollaborationRole role) { boolean result = false; if (map != null) { - if (map.isPublic() && role == CollaborationRole.VIEWER) { + if ((map.isPublic() && role == CollaborationRole.VIEWER) || (isAdmin(user) && role == CollaborationRole.VIEWER)) { result = true; } else if (user != null) { final Collaboration collaboration = map.findCollaboration(user); @@ -67,6 +69,10 @@ public class MindmapServiceImpl return result; } + private boolean isAdmin(User user) { + return (user != null && user.getEmail().equals(adminUser)); + } + @Override public Mindmap getMindmapByTitle(String title, User user) { return mindmapManager.getMindmapByTitle(title, user); @@ -219,7 +225,6 @@ public class MindmapServiceImpl } - @Override public List findMindmapHistory(int mindmapId) { return mindmapManager.getHistoryFrom(mindmapId); @@ -282,4 +287,12 @@ public class MindmapServiceImpl public void setNotificationService(NotificationService notificationService) { this.notificationService = notificationService; } + + public void setAdminUser(String adminUser) { + this.adminUser = adminUser; + } + + public String getAdminUser() { + return adminUser; + } } diff --git a/wise-webapp/src/main/webapp/WEB-INF/wisemapping-service.xml b/wise-webapp/src/main/webapp/WEB-INF/wisemapping-service.xml index d6ac02cb..5c2a7594 100755 --- a/wise-webapp/src/main/webapp/WEB-INF/wisemapping-service.xml +++ b/wise-webapp/src/main/webapp/WEB-INF/wisemapping-service.xml @@ -35,6 +35,7 @@ +