From 6e4cba7d0b91a9987a8775b26d26840fde90fc71 Mon Sep 17 00:00:00 2001 From: tekay <tom.kaesler@mni.thm.de> Date: Tue, 19 Apr 2016 14:53:14 +0200 Subject: [PATCH] add switch for getting a session to not anonymizing the session --- .../de/thm/arsnova/controller/SessionController.java | 11 +++++++++-- .../java/de/thm/arsnova/services/ISessionService.java | 2 ++ .../java/de/thm/arsnova/services/SessionService.java | 8 +++++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/thm/arsnova/controller/SessionController.java b/src/main/java/de/thm/arsnova/controller/SessionController.java index 1ee9bcdd..30a6c2cc 100644 --- a/src/main/java/de/thm/arsnova/controller/SessionController.java +++ b/src/main/java/de/thm/arsnova/controller/SessionController.java @@ -77,8 +77,15 @@ public class SessionController extends PaginationController { @DeprecatedApi @Deprecated @RequestMapping(value = "/{sessionkey}", method = RequestMethod.GET) - public Session joinSession(@ApiParam(value = "Session-Key from current session", required = true) @PathVariable final String sessionkey) { - return Session.anonymizedCopy(sessionService.getSession(sessionkey)); + public Session joinSession( + @ApiParam(value = "Session-Key from current session", required = true) @PathVariable final String sessionkey, + @ApiParam(value = "Adminflag", required = false) @RequestParam(value = "admin", defaultValue = "false") final boolean admin + ) { + if (admin) { + return sessionService.getSessionForAdmin(sessionkey); + } else { + return sessionService.getSession(sessionkey); + } } @ApiOperation(value = "deletes a session", diff --git a/src/main/java/de/thm/arsnova/services/ISessionService.java b/src/main/java/de/thm/arsnova/services/ISessionService.java index 368305dd..d984c3ae 100644 --- a/src/main/java/de/thm/arsnova/services/ISessionService.java +++ b/src/main/java/de/thm/arsnova/services/ISessionService.java @@ -34,6 +34,8 @@ import java.util.UUID; public interface ISessionService { Session getSession(String keyword); + Session getSessionForAdmin(final String keyword); + Session getSessionInternal(String keyword, User user); Session saveSession(Session session); diff --git a/src/main/java/de/thm/arsnova/services/SessionService.java b/src/main/java/de/thm/arsnova/services/SessionService.java index 674f7109..8cbb6f79 100644 --- a/src/main/java/de/thm/arsnova/services/SessionService.java +++ b/src/main/java/de/thm/arsnova/services/SessionService.java @@ -160,7 +160,13 @@ public class SessionService implements ISessionService, ApplicationEventPublishe @PreAuthorize("isAuthenticated()") public Session getSession(final String keyword) { final User user = userService.getCurrentUser(); - return this.getSessionInternal(keyword, user); + return Session.anonymizedCopy(this.getSessionInternal(keyword, user)); + } + + @PreAuthorize("isAuthenticated() and hasPermission(#sessionkey, 'session', 'owner')") + public Session getSessionForAdmin(final String keyword) { + final Session session = databaseDao.getSessionFromKeyword(keyword); + return session; } /* -- GitLab