diff options
author | Kjetil Orbekk <Kjetil Ørbekk orbekk@pvv.ntnu.no> | 2010-09-03 15:17:39 -0400 |
---|---|---|
committer | Kjetil Orbekk <Kjetil Ørbekk orbekk@pvv.ntnu.no> | 2010-09-03 15:17:39 -0400 |
commit | fe33b001dd0352ee789add31ec3d3932ea9846bd (patch) | |
tree | 85fc359fe30e4c5192d2897af5601fed5c2358a5 /src/lq/UserUtil.java | |
parent | ac9d7b3012496f411f7ba6c19d31c9496b44327f (diff) |
Implement user administration.
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(); + } + + } } |