diff --git a/apps/syndie/java/src/net/i2p/syndie/BlogManager.java b/apps/syndie/java/src/net/i2p/syndie/BlogManager.java
index b755245b4..cc15b6450 100644
--- a/apps/syndie/java/src/net/i2p/syndie/BlogManager.java
+++ b/apps/syndie/java/src/net/i2p/syndie/BlogManager.java
@@ -452,7 +452,7 @@ public class BlogManager {
login = DEFAULT_LOGIN;
return login;
}
- private String getDefaultPass() {
+ public String getDefaultPass() {
String pass = _context.getProperty(PROP_DEFAULT_PASS);
if ( (pass == null) || (pass.trim().length() <= 0) )
pass = DEFAULT_PASS;
diff --git a/apps/syndie/java/src/net/i2p/syndie/web/AdminServlet.java b/apps/syndie/java/src/net/i2p/syndie/web/AdminServlet.java
new file mode 100644
index 000000000..747655012
--- /dev/null
+++ b/apps/syndie/java/src/net/i2p/syndie/web/AdminServlet.java
@@ -0,0 +1,74 @@
+package net.i2p.syndie.web;
+
+import java.io.*;
+import java.util.*;
+
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.ServletException;
+
+import net.i2p.I2PAppContext;
+import net.i2p.client.naming.*;
+import net.i2p.data.*;
+import net.i2p.syndie.*;
+import net.i2p.syndie.data.*;
+import net.i2p.syndie.sml.*;
+
+/**
+ * Admin form
+ *
+ */
+public class AdminServlet extends BaseServlet {
+ protected void renderServletDetails(User user, HttpServletRequest req, PrintWriter out, ThreadIndex index,
+ int threadOffset, BlogURI visibleEntry, Archive archive) throws IOException {
+ if (BlogManager.instance().authorizeRemote(user)) {
+ displayForm(user, req, out);
+ } else {
+ out.write("
You are not authorized to configure this Syndie instance |
\n");
+ }
+ }
+
+ private void displayForm(User user, HttpServletRequest req, PrintWriter out) throws IOException {
+ out.write("\n");
+ }
+}
diff --git a/apps/syndie/java/src/net/i2p/syndie/web/BaseServlet.java b/apps/syndie/java/src/net/i2p/syndie/web/BaseServlet.java
index e102895c1..51f006a49 100644
--- a/apps/syndie/java/src/net/i2p/syndie/web/BaseServlet.java
+++ b/apps/syndie/java/src/net/i2p/syndie/web/BaseServlet.java
@@ -60,6 +60,8 @@ public abstract class BaseServlet extends HttpServlet {
req.getSession().setAttribute("user", user);
+ handleAdmin(user, req);
+
forceNewIndex = handleAddressbook(user, req) || forceNewIndex;
forceNewIndex = handleBookmarking(user, req) || forceNewIndex;
handleUpdateProfile(user, req);
@@ -346,6 +348,31 @@ public abstract class BaseServlet extends HttpServlet {
}
}
+ private void handleAdmin(User user, HttpServletRequest req) throws IOException {
+ if (BlogManager.instance().authorizeRemote(user)) {
+ String action = req.getParameter("action");
+ if ( (action != null) && ("Save config".equals(action)) ) {
+ boolean wantSingle = !empty(req, "singleuser");
+ String defaultUser = req.getParameter("defaultUser");
+ String defaultPass = req.getParameter("defaultPass");
+ String regPass = req.getParameter("regpass");
+ String remotePass = req.getParameter("remotepass");
+ String proxyHost = req.getParameter("proxyhost");
+ String proxyPort = req.getParameter("proxyport");
+
+ // default user cannot be empty, but the rest can be blank
+ if ( (!empty(defaultUser)) && (defaultPass != null) && (regPass != null) && (remotePass != null) &&
+ (proxyHost != null) && (proxyPort != null) ) {
+ int port = 4444;
+ try { port = Integer.parseInt(proxyPort); } catch (NumberFormatException nfe) {}
+ BlogManager.instance().configure(regPass, remotePass, null, null, proxyHost, port, wantSingle,
+ null, defaultUser, defaultPass);
+ }
+ }
+ }
+ }
+
+
protected void render(User user, HttpServletRequest req, PrintWriter out, ThreadIndex index) throws ServletException, IOException {
Archive archive = BlogManager.instance().getArchive();
int numThreads = 10;
@@ -375,7 +402,7 @@ public abstract class BaseServlet extends HttpServlet {
}
protected void renderBegin(User user, HttpServletRequest req, PrintWriter out, ThreadIndex index) throws IOException {
- out.write(BEGIN_HTML);
+ out.write("\n" + getTitle() + "\n" + BEGIN_HTML);
}
protected void renderNavBar(User user, HttpServletRequest req, PrintWriter out, ThreadIndex index) throws IOException {
//out.write("\n");
@@ -770,10 +797,7 @@ public abstract class BaseServlet extends HttpServlet {
}
}
- private static final String BEGIN_HTML = "\n" +
-"\n" +
-"Syndie\n" +
-" |