summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/server/ApiServer.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/server/ApiServer.java')
-rw-r--r--src/main/java/org/openslx/imagemaster/server/ApiServer.java14
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