From ac9d7b3012496f411f7ba6c19d31c9496b44327f Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Fri, 3 Sep 2010 14:20:40 -0400 Subject: Add approve functionality. --- html/approve.jsp | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/lq/QuoteUtils.java | 50 +++++++++++++++++++++++++++++++ src/lq/UserUtil.java | 33 ++++++++++++++++++++ 3 files changed, 164 insertions(+) create mode 100644 html/approve.jsp create mode 100644 src/lq/UserUtil.java diff --git a/html/approve.jsp b/html/approve.jsp new file mode 100644 index 0000000..b0455dc --- /dev/null +++ b/html/approve.jsp @@ -0,0 +1,81 @@ +<%@ page contentType="text/html; charset=UTF-8" + import="java.util.List" +%> + + + +Quote approval + + + + +<% +if (lq.UserUtil.isAuthenticated()) { + out.println("Logget inn som: " + lq.UserUtil.getAuthenticatedEmail() + "
"); + + if (!lq.Strings.nullOrEmpty(request.getParameter("id"))) { + String action = request.getParameter("action"); + if (action != null && (action.equals("approve") || action.equals("reject"))) { + try { + Long id = Long.parseLong(request.getParameter("id")); + if (action.equals("approve")) { + lq.QuoteUtils.approveQuote(id); + out.println("Godkjente quote #" + id); + } + else { + lq.QuoteUtils.rejectQuote(id); + out.println("Avviste quote #" + id); + } + } + catch (NumberFormatException e) { + out.println("lmao for en gimp hax
"); + } + } + else { + out.println("Feilkode π/3"); + } + out.println("

"); + } + + List pendingQuotes = lq.QuoteUtils.getQuotesPendingApproval(); + + for (lq.Quote quote : pendingQuotes) { + String nick = lq.Strings.escape(quote.getAuthor()); + String timestamp = lq.DateUtil.timestampFormat.format(quote.getTimestamp()); + String date = lq.DateUtil.dateFormat.format(quote.getQuoteDate()); + String content = lq.Strings.escape(quote.getContent()); + + out.println("

");
+        out.println("Fra " + quote.getIp() + ", " + timestamp);
+        out.println("Nick: " + nick);
+        out.println("Date: " + date);
+        out.println();
+        out.println(content);
+        out.println("
"); + out.println("avvis"); + out.println(", "); + out.println("godkjenn"); + out.println("
"); + } + + String logoutUrl = lq.UserUtil.getLogoutUrl(request.getRequestURI()); + out.println("Logg ut"); +} +else { + String loginUrl = lq.UserUtil.getLoginUrl(request.getRequestURI()); + out.println("Logg inn"); +} +%> + + diff --git a/src/lq/QuoteUtils.java b/src/lq/QuoteUtils.java index aaa14b9..ab5cdd1 100644 --- a/src/lq/QuoteUtils.java +++ b/src/lq/QuoteUtils.java @@ -21,6 +21,20 @@ public class QuoteUtils { } } + public static List getQuotesPendingApproval() { + PersistenceManager pm = PMF.get().getPersistenceManager(); + try { + Query quoteQuery = pm.newQuery(Quote.class); + quoteQuery.setFilter("approved == null"); + List quotes = (List) quoteQuery.execute(); + pm.retrieveAll(quotes); + return quotes; + } + finally { + pm.close(); + } + } + public static List getQuotesOrderedByIdDesc() { List quotes = getQuotes(); Collections.sort(quotes, @@ -53,4 +67,40 @@ public class QuoteUtils { }); return quotes; } + + public static void approveQuote(Long id) { + PersistenceManager pm = PMF.get().getPersistenceManager(); + try { + Query quoteQuery = pm.newQuery(Quote.class); + quoteQuery.setFilter("id == idParam"); + quoteQuery.declareParameters("Long idParam"); + List quotes = (List) quoteQuery.execute(id); + + for (Quote quote : quotes) { + quote.setApproved(true); + pm.makePersistent(quote); + } + } + finally { + pm.close(); + } + } + + public static void rejectQuote(Long id) { + PersistenceManager pm = PMF.get().getPersistenceManager(); + try { + Query quoteQuery = pm.newQuery(Quote.class); + quoteQuery.setFilter("id == idParam"); + quoteQuery.declareParameters("Long idParam"); + List quotes = (List) quoteQuery.execute(id); + + for (Quote quote : quotes) { + quote.setApproved(false); + pm.makePersistent(quote); + } + } + finally { + pm.close(); + } + } } diff --git a/src/lq/UserUtil.java b/src/lq/UserUtil.java new file mode 100644 index 0000000..4fd9452 --- /dev/null +++ b/src/lq/UserUtil.java @@ -0,0 +1,33 @@ +package lq; + +import javax.servlet.http.HttpServletRequest; +import com.google.appengine.api.users.User; +import com.google.appengine.api.users.UserService; +import com.google.appengine.api.users.UserServiceFactory; + +public class UserUtil { + public static final String getAuthenticatedEmail() { + UserService userService = UserServiceFactory.getUserService(); + User user = userService.getCurrentUser(); + if (user == null) { + return null; + } + else { + return user.getEmail(); + } + } + + public static final boolean isAuthenticated() { + return getAuthenticatedEmail() != null; + } + + public static final String getLoginUrl(String requestUrl) { + UserService userService = UserServiceFactory.getUserService(); + return userService.createLoginURL(requestUrl); + } + + public static final String getLogoutUrl(String requestUrl) { + UserService userService = UserServiceFactory.getUserService(); + return userService.createLogoutURL(requestUrl); + } +} -- cgit v1.2.3