diff options
Diffstat (limited to 'src/lq/UserUtil.java')
-rw-r--r-- | src/lq/UserUtil.java | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/src/lq/UserUtil.java b/src/lq/UserUtil.java index 4fd9452..48bf2b5 100644 --- a/src/lq/UserUtil.java +++ b/src/lq/UserUtil.java @@ -1,9 +1,12 @@ 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; +import java.util.List; +import javax.jdo.PersistenceManager; +import javax.jdo.Query; +import javax.servlet.http.HttpServletRequest; public class UserUtil { public static final String getAuthenticatedEmail() { @@ -13,7 +16,12 @@ public class UserUtil { return null; } else { - return user.getEmail(); + if (hasZeroUsers() || userExists(user.getEmail())) { + return user.getEmail(); + } + else { + return null; + } } } @@ -30,4 +38,31 @@ public class UserUtil { UserService userService = UserServiceFactory.getUserService(); return userService.createLogoutURL(requestUrl); } + + private static final boolean hasZeroUsers() { + PersistenceManager pm = PMF.get().getPersistenceManager(); + try { + Query query = pm.newQuery(Administrator.class); + List<?> results = (List<?>) query.execute(); + return results.isEmpty(); + } + finally { + pm.close(); + } + } + + public static final boolean userExists(String email) { + PersistenceManager pm = PMF.get().getPersistenceManager(); + try { + Query query = pm.newQuery(Administrator.class); + query.setFilter("email == emailParam"); + query.declareParameters("String emailParam"); + List<?> results = (List<?>) query.execute(email); + return !results.isEmpty(); + } + finally { + pm.close(); + } + + } } |