Let core be an album provider
[Sone.git] / src / main / java / net / pterodactylus / sone / web / CreateAlbumPage.java
index e0f0725..338056a 100644 (file)
@@ -27,6 +27,8 @@ import net.pterodactylus.util.template.Template;
 import net.pterodactylus.util.template.TemplateContext;
 import net.pterodactylus.util.web.Method;
 
+import com.google.common.base.Optional;
+
 /**
  * Page that lets the user create a new album.
  *
@@ -65,11 +67,16 @@ public class CreateAlbumPage extends SoneTemplatePage {
                        String description = request.getHttpRequest().getPartAsStringFailsafe("description", 256).trim();
                        Sone currentSone = getCurrentSone(request.getToadletContext());
                        String parentId = request.getHttpRequest().getPartAsStringFailsafe("parent", IdBuilder.ID_STRING_LENGTH);
-                       Album parent = webInterface.getCore().getAlbum(parentId);
+                       Optional<Album> parent;
                        if (parentId.equals("")) {
-                               parent = currentSone.getRootAlbum();
+                               parent = Optional.of(currentSone.getRootAlbum());
+                       } else {
+                               parent = webInterface.getCore().getAlbum(parentId);
+                               if (!parent.isPresent()) {
+                                       throw new RedirectException("noPermission.html");
+                               }
                        }
-                       Album album = webInterface.getCore().createAlbum(currentSone, parent);
+                       Album album = webInterface.getCore().createAlbum(currentSone, parent.get());
                        try {
                                album.modify().setTitle(name).setDescription(TextFilter.filter(request.getHttpRequest().getHeader("host"), description)).update();
                        } catch (AlbumTitleMustNotBeEmpty atmnbe) {