summaryrefslogtreecommitdiff
path: root/src/lq/UserUtil.java
diff options
context:
space:
mode:
authorKjetil Orbekk <Kjetil Ørbekk orbekk@pvv.ntnu.no>2010-09-03 15:17:39 -0400
committerKjetil Orbekk <Kjetil Ørbekk orbekk@pvv.ntnu.no>2010-09-03 15:17:39 -0400
commitfe33b001dd0352ee789add31ec3d3932ea9846bd (patch)
tree85fc359fe30e4c5192d2897af5601fed5c2358a5 /src/lq/UserUtil.java
parentac9d7b3012496f411f7ba6c19d31c9496b44327f (diff)
Implement user administration.
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();
+ }
+
+ }
}