package org.openslx.imagemaster.util; import java.sql.SQLException; import org.openslx.bwlp.thrift.iface.AuthorizationError; import org.openslx.bwlp.thrift.iface.Role; import org.openslx.bwlp.thrift.iface.TAuthorizationException; import org.openslx.bwlp.thrift.iface.TNotFoundException; import org.openslx.bwlp.thrift.iface.UserInfo; import org.openslx.imagemaster.db.mappers.DbUser; public class UserUtil { /** * Given a list of users, return the first one that isn't anonymous, which means they opted in * for global image sharing. */ public static UserInfo getFirstPublishingUser( UserInfo... user ) { if ( user == null ) return null; for ( UserInfo u : user ) { if ( Util.isEmpty( u.userId ) ) continue; try { u = DbUser.getUserInfo( u.userId ); } catch ( SQLException | TNotFoundException e ) { continue; } if ( !Util.isEmpty( u.eMail ) && ( !Util.isEmpty( u.firstName ) || !Util.isEmpty( u.lastName ) ) ) { return u; } } return null; } /** * Given a list of users, return the first one that isn't anonymous, which means they opted in * for global image sharing. If none matches, return the dummy user. */ public static UserInfo getFirstPublishingUserOrDummy( UserInfo... user ) { UserInfo ret = getFirstPublishingUser( user ); if ( ret != null ) return ret; try { return DbUser.getUserInfo( "dummy" ); } catch ( TNotFoundException | SQLException e ) { return null; } } public static void assertTutor( UserInfo userInfo ) throws TAuthorizationException { if ( userInfo == null || userInfo.role != Role.TUTOR ) { throw new TAuthorizationException( AuthorizationError.NO_PERMISSION, "Permission denied!" ); } } }