summaryrefslogtreecommitdiff
path: root/src/lq/AddAdmin.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/lq/AddAdmin.java')
-rw-r--r--src/lq/AddAdmin.java59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/lq/AddAdmin.java b/src/lq/AddAdmin.java
new file mode 100644
index 0000000..5bed450
--- /dev/null
+++ b/src/lq/AddAdmin.java
@@ -0,0 +1,59 @@
+package lq;
+
+import java.io.IOException;
+import java.text.ParseException;
+import java.util.Date;
+import java.util.List;
+import javax.jdo.PersistenceManager;
+import javax.jdo.Query;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+public class AddAdmin extends HttpServlet {
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws IOException {
+ resp.setContentType("text/html");
+ String email = req.getParameter("email");
+ if (UserUtil.isAuthenticated()) {
+ if (addUser(resp, email)) {
+ resp.getWriter().println(Strings.escape(email) + " kan nå moderere quotes.");
+ }
+
+ String logoutUrl = UserUtil.getLogoutUrl(req.getRequestURI());
+ resp.getWriter().println("<a href=\"" + logoutUrl + "\">Logg ut</a><br>");
+ }
+ else {
+ String loginUrl = UserUtil.getLoginUrl(req.getRequestURI());
+ resp.getWriter().println("<a href=\"" + loginUrl + "\">Logg inn</a><br>");
+ }
+ }
+
+ private boolean addUser(HttpServletResponse resp, String email)
+ throws IOException {
+ if (Strings.nullOrEmpty(email)) {
+ resp.getWriter().println("Feilkode µ (spesifiser email).<br>");
+ return false;
+ }
+ else {
+ PersistenceManager pm = PMF.get().getPersistenceManager();
+ try {
+ if (!UserUtil.userExists(email)) {
+ Administrator newAdmin = new Administrator(email);
+ pm.makePersistent(newAdmin);
+ return true;
+ }
+ else {
+ resp.getWriter().println("Brukeren " + Strings.escape(email) +
+ " finnes allerede<br>");
+ return false;
+ }
+ }
+ finally {
+ pm.close();
+ }
+ }
+ }
+}