diff options
Diffstat (limited to 'src/lq/AddAdmin.java')
-rw-r--r-- | src/lq/AddAdmin.java | 59 |
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(); + } + } + } +} |