Skip to content
Snippets Groups Projects
Commit dc8e8924 authored by Daniel Vogel's avatar Daniel Vogel
Browse files

Filesize check for pp logos

parent b8a33faa
No related merge requests found
......@@ -109,7 +109,7 @@ public class QuestionService implements IQuestionService, ApplicationEventPublis
question.setImage(base64ImageString);
}
// base64 adds offset to filesize, formular taken from: http://en.wikipedia.org/wiki/Base64#MIME
// base64 adds offset to filesize, formula taken from: http://en.wikipedia.org/wiki/Base64#MIME
final int fileSize = (int) ((question.getImage().length()-814)/1.37);
if (fileSize > uploadFileSizeByte) {
LOGGER.error("Could not save file. File is too large with " + fileSize + " Byte.");
......
......@@ -28,9 +28,13 @@ import java.util.Map;
import java.util.UUID;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import de.thm.arsnova.ImageUtils;
import de.thm.arsnova.connector.client.ConnectorClient;
import de.thm.arsnova.connector.model.Course;
......@@ -94,6 +98,11 @@ public class SessionService implements ISessionService {
@Autowired(required = false)
private ConnectorClient connectorClient;
@Value("${pp.logofilesize_b}")
private int uploadFileSizeByte;
public static final Logger LOGGER = LoggerFactory.getLogger(SessionService.class);
public void setDatabaseDao(final IDatabaseDao newDatabaseDao) {
databaseDao = newDatabaseDao;
......@@ -193,14 +202,22 @@ public class SessionService implements ISessionService {
throw new ForbiddenException();
}
}
if (session.getPpLogo() != null && session.getPpLogo().startsWith("http")) {
final String base64ImageString = ImageUtils.encodeImageToString(session.getPpLogo());
if (base64ImageString == null) {
if (session.getPpLogo() != null) {
if (session.getPpLogo().startsWith("http")) {
final String base64ImageString = ImageUtils.encodeImageToString(session.getPpLogo());
if (base64ImageString == null) {
throw new BadRequestException();
}
session.setPpLogo(base64ImageString);
}
// base64 adds offset to filesize, formula taken from: http://en.wikipedia.org/wiki/Base64#MIME
final int fileSize = (int) ((session.getPpLogo().length()-814)/1.37);
if (fileSize > uploadFileSizeByte) {
LOGGER.error("Could not save file. File is too large with " + fileSize + " Byte.");
throw new BadRequestException();
}
session.setPpLogo(base64ImageString);
}
return databaseDao.saveSession(userService.getCurrentUser(), session);
}
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment