create a demo user on startup and prevent any profile modification

This commit is contained in:
Athou
2013-04-21 13:50:10 +02:00
parent e8b1be8ccb
commit e161ff4167
3 changed files with 13 additions and 7 deletions

View File

@@ -34,7 +34,8 @@ import com.google.api.client.util.Lists;
public class StartupBean { public class StartupBean {
private static Logger log = LoggerFactory.getLogger(StartupBean.class); private static Logger log = LoggerFactory.getLogger(StartupBean.class);
public static final String ADMIN_NAME = "admin"; public static final String USERNAME_ADMIN = "admin";
public static final String USERNAME_DEMO = "demo";
@Inject @Inject
FeedDAO feedDAO; FeedDAO feedDAO;
@@ -83,8 +84,9 @@ public class StartupBean {
private void initialData() { private void initialData() {
log.info("Populating database with default values"); log.info("Populating database with default values");
applicationSettingsService.save(new ApplicationSettings()); applicationSettingsService.save(new ApplicationSettings());
userService.register(ADMIN_NAME, "admin", userService.register(USERNAME_ADMIN, "admin",
Arrays.asList(Role.ADMIN, Role.USER)); Arrays.asList(Role.ADMIN, Role.USER));
userService.register(USERNAME_DEMO, "demo", Arrays.asList(Role.USER));
} }
public long getStartupTime() { public long getStartupTime() {

View File

@@ -58,7 +58,7 @@ public class AdminREST extends AbstractResourceREST {
} }
} else { } else {
User user = userDAO.findById(id); User user = userDAO.findById(id);
if (StartupBean.ADMIN_NAME.equals(user.getName()) if (StartupBean.USERNAME_ADMIN.equals(user.getName())
&& !userModel.isEnabled()) { && !userModel.isEnabled()) {
return Response.status(Status.FORBIDDEN) return Response.status(Status.FORBIDDEN)
.entity("You cannot disable the admin user.").build(); .entity("You cannot disable the admin user.").build();
@@ -75,7 +75,7 @@ public class AdminREST extends AbstractResourceREST {
if (userModel.isAdmin() && !roles.contains(Role.ADMIN)) { if (userModel.isAdmin() && !roles.contains(Role.ADMIN)) {
userRoleDAO.save(new UserRole(user, Role.ADMIN)); userRoleDAO.save(new UserRole(user, Role.ADMIN));
} else if (!userModel.isAdmin() && roles.contains(Role.ADMIN)) { } else if (!userModel.isAdmin() && roles.contains(Role.ADMIN)) {
if (StartupBean.ADMIN_NAME.equals(user.getName())) { if (StartupBean.USERNAME_ADMIN.equals(user.getName())) {
return Response return Response
.status(Status.FORBIDDEN) .status(Status.FORBIDDEN)
.entity("You cannot remove the admin role from the admin user.") .entity("You cannot remove the admin role from the admin user.")
@@ -146,7 +146,7 @@ public class AdminREST extends AbstractResourceREST {
if (user == null) { if (user == null) {
return Response.status(Status.NOT_FOUND).build(); return Response.status(Status.NOT_FOUND).build();
} }
if (StartupBean.ADMIN_NAME.equals(user.getName())) { if (StartupBean.USERNAME_ADMIN.equals(user.getName())) {
return Response.status(Status.FORBIDDEN) return Response.status(Status.FORBIDDEN)
.entity("You cannot delete the admin user.").build(); .entity("You cannot delete the admin user.").build();
} }

View File

@@ -8,10 +8,11 @@ import javax.ws.rs.core.Response.Status;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import com.commafeed.backend.StartupBean;
import com.commafeed.backend.model.User; import com.commafeed.backend.model.User;
import com.commafeed.backend.model.UserRole; import com.commafeed.backend.model.UserRole;
import com.commafeed.backend.model.UserSettings;
import com.commafeed.backend.model.UserRole.Role; import com.commafeed.backend.model.UserRole.Role;
import com.commafeed.backend.model.UserSettings;
import com.commafeed.backend.model.UserSettings.ReadingMode; import com.commafeed.backend.model.UserSettings.ReadingMode;
import com.commafeed.backend.model.UserSettings.ReadingOrder; import com.commafeed.backend.model.UserSettings.ReadingOrder;
import com.commafeed.frontend.model.Settings; import com.commafeed.frontend.model.Settings;
@@ -64,7 +65,7 @@ public class UserREST extends AbstractResourceREST {
return Response.ok(Status.OK).build(); return Response.ok(Status.OK).build();
} }
@Path("/profile") @Path("/profile")
@GET @GET
@ApiOperation(value = "Retrieve user's profile", responseClass = "com.commafeed.frontend.model.UserModel") @ApiOperation(value = "Retrieve user's profile", responseClass = "com.commafeed.frontend.model.UserModel")
@@ -89,6 +90,9 @@ public class UserREST extends AbstractResourceREST {
public Response save( public Response save(
@ApiParam(required = true) ProfileModificationRequest request) { @ApiParam(required = true) ProfileModificationRequest request) {
User user = getUser(); User user = getUser();
if (StartupBean.USERNAME_DEMO.equals(user.getName())) {
return Response.status(Status.UNAUTHORIZED).build();
}
user.setEmail(request.getEmail()); user.setEmail(request.getEmail());
if (StringUtils.isNotBlank(request.getPassword())) { if (StringUtils.isNotBlank(request.getPassword())) {
byte[] password = encryptionService.getEncryptedPassword( byte[] password = encryptionService.getEncryptedPassword(