From 51e24059dbec05970bdf84a6814d4b7327ffbd12 Mon Sep 17 00:00:00 2001 From: Athou Date: Sat, 22 Jun 2013 16:08:33 +0200 Subject: [PATCH] admin panel should force registrations (#323) --- .../backend/services/UserService.java | 36 +++++++++++-------- .../frontend/rest/resources/AdminREST.java | 2 +- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/commafeed/backend/services/UserService.java b/src/main/java/com/commafeed/backend/services/UserService.java index 7b6e86d6..b6e92348 100644 --- a/src/main/java/com/commafeed/backend/services/UserService.java +++ b/src/main/java/com/commafeed/backend/services/UserService.java @@ -67,26 +67,32 @@ public class UserService { public User register(String name, String password, String email, Collection roles, boolean forceRegistration) { - Preconditions.checkState(forceRegistration - || applicationSettingsService.get().isAllowRegistrations(), - "Registrations are closed on this CommaFeed instance"); Preconditions.checkNotNull(name); - Preconditions.checkNotNull(email); - Preconditions.checkNotNull(password); - - Preconditions.checkArgument(StringUtils.length(name) >= 3, - "Name too short (3 characters minimum)"); Preconditions.checkArgument(StringUtils.length(name) <= 32, "Name too long (32 characters maximum)"); - Preconditions.checkArgument( - forceRegistration || StringUtils.length(password) >= 6, - "Password too short (6 characters maximum)"); - Preconditions.checkArgument(StringUtils.contains(email, "@"), - "Invalid email address"); + Preconditions.checkNotNull(password); + + if (!forceRegistration) { + Preconditions.checkState(applicationSettingsService.get() + .isAllowRegistrations(), + "Registrations are closed on this CommaFeed instance"); + + Preconditions.checkNotNull(email); + Preconditions.checkArgument(StringUtils.length(name) >= 3, + "Name too short (3 characters minimum)"); + Preconditions.checkArgument( + forceRegistration || StringUtils.length(password) >= 6, + "Password too short (6 characters maximum)"); + Preconditions.checkArgument(StringUtils.contains(email, "@"), + "Invalid email address"); + } + Preconditions.checkArgument(userDAO.findByName(name) == null, "Name already taken"); - Preconditions.checkArgument(userDAO.findByEmail(email) == null, - "Email already taken"); + if (StringUtils.isNotBlank(email)) { + Preconditions.checkArgument(userDAO.findByEmail(email) == null, + "Email already taken"); + } User user = new User(); byte[] salt = encryptionService.generateSalt(); diff --git a/src/main/java/com/commafeed/frontend/rest/resources/AdminREST.java b/src/main/java/com/commafeed/frontend/rest/resources/AdminREST.java index 805cba75..7ef3576e 100644 --- a/src/main/java/com/commafeed/frontend/rest/resources/AdminREST.java +++ b/src/main/java/com/commafeed/frontend/rest/resources/AdminREST.java @@ -52,7 +52,7 @@ public class AdminREST extends AbstractResourceREST { } User user = userService.register(userModel.getName(), - userModel.getPassword(), userModel.getEmail(), roles); + userModel.getPassword(), userModel.getEmail(), roles, true); if (user == null) { return Response.status(Status.CONFLICT) .entity("User already exists.").build();