From 3bd52330022d72fac1d96c468740def0aa23a29f Mon Sep 17 00:00:00 2001 From: Edmundo Alvarez Date: Thu, 21 May 2015 20:38:58 +0200 Subject: [PATCH] Redirect when a user cannot be loaded --- app/controllers/UsersController.java | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/app/controllers/UsersController.java b/app/controllers/UsersController.java index 780772bb1..30c8fb5a6 100644 --- a/app/controllers/UsersController.java +++ b/app/controllers/UsersController.java @@ -118,7 +118,12 @@ public Result editUserForm(String username) { BreadcrumbList bc = breadcrumbs(); bc.addCrumb("Edit " + username, routes.UsersController.editUserForm(username)); - User user = userService.load(username); + final User user = userService.load(username); + if (user == null) { + flash("error", "User '" + username + "' not found."); + return redirect(routes.UsersController.index()); + } + final Form form = changeUserForm.fill(new ChangeUserRequestForm(user)); boolean requiresOldPassword = checkRequireOldPassword(username); try { @@ -199,7 +204,12 @@ public Result saveChanges(String username) { } final Form requestForm = Form.form(ChangeUserRequestForm.class).bindFromRequest(); + final User user = userService.load(username); + if (user == null) { + flash("error", "User '" + username + "' not found."); + return redirect(routes.UsersController.index()); + } if (requestForm.hasErrors()) { final BreadcrumbList bc = new BreadcrumbList(); @@ -299,6 +309,11 @@ public Result changePassword(String username) { final ChangePasswordRequest request = requestForm.get(); final User user = userService.load(username); + if (user == null) { + flash("error", "User '" + username + "' not found."); + return redirect(routes.UsersController.index()); + } + if (checkRequireOldPassword(username) && request.old_password == null) { requestForm.reject("Old password is required."); @@ -324,7 +339,12 @@ public Result resetPermissions(String username) { if (field != null && field.equalsIgnoreCase("admin")) { isAdmin = true; } + final User user = userService.load(username); + if (user == null) { + flash("error", "User '" + username + "' not found."); + return redirect(routes.UsersController.index()); + } if (!Permissions.isPermitted(USERS_PERMISSIONSEDIT) || user.isReadonly()) { flash("error", "Unable to change user role");