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 | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/main/java/org/openslx/imagemaster/server/ApiServer.java b/src/main/java/org/openslx/imagemaster/server/ApiServer.java index aaad0db..1323ec6 100644 --- a/src/main/java/org/openslx/imagemaster/server/ApiServer.java +++ b/src/main/java/org/openslx/imagemaster/server/ApiServer.java @@ -1,10 +1,12 @@ package org.openslx.imagemaster.server; import java.nio.ByteBuffer; +import java.util.ArrayList; import java.util.List; import org.openslx.imagemaster.db.DbImage; import org.openslx.imagemaster.db.DbSatellite; +import org.openslx.imagemaster.db.DbUser; import org.openslx.imagemaster.serverconnection.ImageProcessor; import org.openslx.imagemaster.serversession.ServerAuthenticator; import org.openslx.imagemaster.serversession.ServerSession; @@ -76,7 +78,7 @@ public class ApiServer public static UserInfo getUserFromToken( String token ) throws InvalidTokenException { - final Session session = SessionManager.getSession( token ); + final Session session = SessionManager.getSessionFromToken( token ); if ( session == null ) throw new InvalidTokenException(); return new UserInfo( session.getLogin(), session.getFirstName(), @@ -164,14 +166,19 @@ public class ApiServer public static boolean publishUser( String serverSessionId, UserInfo user ) { - // TODO Auto-generated method stub + // TODO return false; } - public static List<UserInfo> findUser( String sessionId, String organizationId, String searchTerm ) + public static List<UserInfo> findUser( String sessionId, String organizationId, String searchTerm ) throws AuthorizationException { - // TODO Auto-generated method stub - return null; + // Needs to be a logged in user + if ( SessionManager.getSessionFromSessionId( sessionId ) == null ) + throw new AuthorizationException( AuthorizationError.NOT_AUTHENTICATED, "Session ID not valid" ); + // Search string needs to be at least 2 characters (FIXME: quick and dirty ignoring LIKE chars) + if ( searchTerm == null || searchTerm.length() < 2 || searchTerm.replaceAll( "[%_]", "" ).length() < 2 ) + return new ArrayList<>( 0 ); + return DbUser.findUser( organizationId, searchTerm ); } public static List<OrganizationData> getOrganizations() @@ -179,8 +186,10 @@ public class ApiServer return DbSatellite.asOrganizationDataList(); } - public static List<ImageData> getPublicImages( String sessionId, int page ) + public static List<ImageData> getPublicImages( String sessionId, int page ) throws AuthorizationException { + if ( SessionManager.getSessionFromSessionId( sessionId ) == null ) + throw new AuthorizationException( AuthorizationError.NOT_AUTHENTICATED, "Session ID not valid" ); return DbImage.asImageDataList( page * 100, ( page + 1 ) * 100 ); } } |