diff options
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/server/ApiServer.java')
-rw-r--r-- | src/main/java/org/openslx/imagemaster/server/ApiServer.java | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/main/java/org/openslx/imagemaster/server/ApiServer.java b/src/main/java/org/openslx/imagemaster/server/ApiServer.java index 1323ec6..ada6a21 100644 --- a/src/main/java/org/openslx/imagemaster/server/ApiServer.java +++ b/src/main/java/org/openslx/imagemaster/server/ApiServer.java @@ -164,10 +164,18 @@ public class ApiServer return ( ServerSessionManager.getSession( serverSessionId ) != null ); } - public static boolean publishUser( String serverSessionId, UserInfo user ) + public static boolean publishUser( String serverSessionId, UserInfo user ) throws AuthorizationException { - // TODO - return false; + // Check session. + if (SessionManager.getSessionFromSessionId( serverSessionId ) == null) { + throw new AuthorizationException( AuthorizationError.NOT_AUTHENTICATED, "Session ID not valid" ); + } + if (DbUser.forLogin( user.userId ) == null) { + // User not known by server. Insert into server database. + return DbUser.insertOrUpdate( user ); + } + // Else user is already known by server. Do nothing. + return true; } public static List<UserInfo> findUser( String sessionId, String organizationId, String searchTerm ) throws AuthorizationException |