X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FCreateSonePage.java;fp=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FCreateSonePage.java;h=0000000000000000000000000000000000000000;hp=2484e3af3e4f2d405f7b0493c123ce5f7d171a5f;hb=d327ccf1eeca1bd9544c523e98a6d1dc551c0015;hpb=cfa969d6aa8dc49b2d6487c1ccaaeb3058e86ba9 diff --git a/src/main/java/net/pterodactylus/sone/web/CreateSonePage.java b/src/main/java/net/pterodactylus/sone/web/CreateSonePage.java deleted file mode 100644 index 2484e3a..0000000 --- a/src/main/java/net/pterodactylus/sone/web/CreateSonePage.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Sone - CreateSonePage.java - Copyright © 2010–2016 David Roden - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package net.pterodactylus.sone.web; - -import static java.util.logging.Logger.getLogger; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import java.util.Set; -import java.util.logging.Level; -import java.util.logging.Logger; - -import net.pterodactylus.sone.core.Core; -import net.pterodactylus.sone.data.Sone; -import net.pterodactylus.sone.freenet.wot.OwnIdentity; -import net.pterodactylus.sone.web.page.FreenetRequest; -import net.pterodactylus.util.template.Template; -import net.pterodactylus.util.template.TemplateContext; -import net.pterodactylus.util.web.Method; -import freenet.clients.http.ToadletContext; - -/** - * The “create Sone” page lets the user create a new Sone. - * - * @author David ‘Bombe’ Roden - */ -public class CreateSonePage extends SoneTemplatePage { - - /** The logger. */ - private static final Logger logger = getLogger(CreateSonePage.class.getName()); - - /** - * Creates a new “create Sone” page. - * - * @param template - * The template to render - * @param webInterface - * The Sone web interface - */ - public CreateSonePage(Template template, WebInterface webInterface) { - super("createSone.html", template, "Page.CreateSone.Title", webInterface, false); - } - - // - // STATIC ACCESSORS - // - - /** - * Returns a sorted list of all own identities that do not have the “Sone” - * context. - * - * @param core - * The core - * @return The list of own identities without the “Sone” context - */ - public static List getOwnIdentitiesWithoutSone(Core core) { - List identitiesWithoutSone = new ArrayList(); - Set allOwnIdentity = core.getIdentityManager().getAllOwnIdentities(); - for (OwnIdentity ownIdentity : allOwnIdentity) { - if (!ownIdentity.hasContext("Sone")) { - identitiesWithoutSone.add(ownIdentity); - } - } - Collections.sort(identitiesWithoutSone, new Comparator() { - - @Override - public int compare(OwnIdentity leftIdentity, OwnIdentity rightIdentity) { - return (leftIdentity.getNickname() + "@" + leftIdentity.getId()).compareToIgnoreCase(rightIdentity.getNickname() + "@" + rightIdentity.getId()); - } - }); - return identitiesWithoutSone; - } - - // - // TEMPLATEPAGE METHODS - // - - /** - * {@inheritDoc} - */ - @Override - protected void handleRequest(FreenetRequest request, TemplateContext templateContext) throws RedirectException { - List localSones = new ArrayList(webInterface.getCore().getLocalSones()); - Collections.sort(localSones, Sone.NICE_NAME_COMPARATOR); - templateContext.set("sones", localSones); - List ownIdentitiesWithoutSone = getOwnIdentitiesWithoutSone(webInterface.getCore()); - templateContext.set("identitiesWithoutSone", ownIdentitiesWithoutSone); - if (request.getMethod() == Method.POST) { - String id = request.getHttpRequest().getPartAsStringFailsafe("identity", 44); - OwnIdentity selectedIdentity = null; - for (OwnIdentity ownIdentity : ownIdentitiesWithoutSone) { - if (ownIdentity.getId().equals(id)) { - selectedIdentity = ownIdentity; - break; - } - } - if (selectedIdentity == null) { - templateContext.set("errorNoIdentity", true); - return; - } - /* create Sone. */ - Sone sone = webInterface.getCore().createSone(selectedIdentity); - if (sone == null) { - logger.log(Level.SEVERE, String.format("Could not create Sone for OwnIdentity: %s", selectedIdentity)); - /* TODO - go somewhere else */ - } - - /* log in the new Sone. */ - setCurrentSone(request.getToadletContext(), sone); - throw new RedirectException("index.html"); - } - } - - /** - * {@inheritDoc} - */ - @Override - public boolean isEnabled(ToadletContext toadletContext) { - if (webInterface.getCore().getPreferences().isRequireFullAccess() && !toadletContext.isAllowedFullAccess()) { - return false; - } - return (getCurrentSoneWithoutCreatingSession(toadletContext) == null) || (webInterface.getCore().getLocalSones().size() == 1); - } - -}