summaryrefslogtreecommitdiff
path: root/src/lq/UserUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/lq/UserUtil.java')
-rw-r--r--src/lq/UserUtil.java39
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();
+ }
+
+ }
}