diff --git a/src/main/java/org/codelibs/fess/app/web/admin/user/AdminUserAction.java b/src/main/java/org/codelibs/fess/app/web/admin/user/AdminUserAction.java index a94371db8..d9330c5bd 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/user/AdminUserAction.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/user/AdminUserAction.java @@ -234,6 +234,12 @@ public class AdminUserAction extends FessAdminAction { public HtmlResponse delete(final EditForm form) { verifyCrudMode(form.crudMode, CrudMode.DETAILS); validate(form, messages -> {}, () -> asDetailsHtml()); + getUserBean().ifPresent(u -> { + if (u.getFessUser() instanceof User && form.name.equals(u.getUserId())) { + throwValidationError(messages -> messages.addErrorsCouldNotDeleteLoggedInUser(GLOBAL), () -> asDetailsHtml()); + } + }); + verifyToken(() -> asDetailsHtml()); final String id = form.id; userService .getUser(id) diff --git a/src/main/java/org/codelibs/fess/mylasta/action/FessMessages.java b/src/main/java/org/codelibs/fess/mylasta/action/FessMessages.java index 2f014ad20..914bdf8d2 100644 --- a/src/main/java/org/codelibs/fess/mylasta/action/FessMessages.java +++ b/src/main/java/org/codelibs/fess/mylasta/action/FessMessages.java @@ -320,6 +320,9 @@ public class FessMessages extends FessLabels { /** The key of the message: Invalid header: {0} */ public static final String ERRORS_invalid_header_for_request_file = "{errors.invalid_header_for_request_file}"; + /** The key of the message: Could not delete logged in user. */ + public static final String ERRORS_could_not_delete_logged_in_user = "{errors.could_not_delete_logged_in_user}"; + /** The key of the message: The given query has unknown condition. */ public static final String ERRORS_invalid_query_unknown = "{errors.invalid_query_unknown}"; @@ -1869,6 +1872,20 @@ public class FessMessages extends FessLabels { return this; } + /** + * Add the created action message for the key 'errors.could_not_delete_logged_in_user' with parameters. + *
+ * message: Could not delete logged in user. + *+ * @param property The property name for the message. (NotNull) + * @return this. (NotNull) + */ + public FessMessages addErrorsCouldNotDeleteLoggedInUser(String property) { + assertPropertyNotNull(property); + add(property, new UserMessage(ERRORS_could_not_delete_logged_in_user)); + return this; + } + /** * Add the created action message for the key 'errors.invalid_query_unknown' with parameters. *
diff --git a/src/main/java/org/codelibs/fess/mylasta/action/FessUserBean.java b/src/main/java/org/codelibs/fess/mylasta/action/FessUserBean.java index 08e40d5ed..e4e67c99f 100644 --- a/src/main/java/org/codelibs/fess/mylasta/action/FessUserBean.java +++ b/src/main/java/org/codelibs/fess/mylasta/action/FessUserBean.java @@ -89,6 +89,10 @@ public class FessUserBean extends TypicalUserBean{ // #change_it also L stream -> stream.anyMatch(s1 -> stream(acceptedGroups).get(s3 -> s3.anyMatch(s2 -> s2.equals(s1))))); } + public FessUser getFessUser() { + return user; + } + public static FessUserBean empty() { return new FessUserBean(null) { private static final long serialVersionUID = 1L; diff --git a/src/main/resources/fess_message.properties b/src/main/resources/fess_message.properties index 2481b90ae..8e4d5a074 100644 --- a/src/main/resources/fess_message.properties +++ b/src/main/resources/fess_message.properties @@ -128,6 +128,7 @@ errors.unknown_version_for_upgrade=Unknown version information. errors.failed_to_upgrade_from=Failed to upgrade from {0}: {1} errors.failed_to_read_request_file=Failed to read request file: {0} errors.invalid_header_for_request_file=Invalid header: {0} +errors.could_not_delete_logged_in_user=Could not delete logged in user. errors.invalid_query_unknown=The given query has unknown condition. errors.invalid_query_parse_error=The given query is invalid. diff --git a/src/main/resources/fess_message_en.properties b/src/main/resources/fess_message_en.properties index 27a8df50d..1cf8d4829 100644 --- a/src/main/resources/fess_message_en.properties +++ b/src/main/resources/fess_message_en.properties @@ -124,6 +124,7 @@ errors.unknown_version_for_upgrade=Unknown version information. errors.failed_to_upgrade_from=Failed to upgrade from {0}. errors.failed_to_read_request_file=Failed to read request file: {0} errors.invalid_header_for_request_file=Invalid header: {0} +errors.could_not_delete_logged_in_user=Could not delete logged in user. errors.invalid_query_unknown=The given query has unknown condition. errors.invalid_query_parse_error=The given query is invalid. diff --git a/src/main/resources/fess_message_ja.properties b/src/main/resources/fess_message_ja.properties index 10842eba9..fbe72c5a5 100644 --- a/src/main/resources/fess_message_ja.properties +++ b/src/main/resources/fess_message_ja.properties @@ -131,6 +131,7 @@ errors.unknown_version_for_upgrade=\u4e0d\u660e\u306a\u30d0\u30fc\u30b8\u30e7\u3 errors.failed_to_upgrade_from={0}\u304b\u3089\u306e\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 errors.failed_to_read_request_file=\u30ea\u30af\u30a8\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\u306b\u5931\u6557\u3057\u307e\u3057\u305f: {0} errors.invalid_header_for_request_file=\u30d8\u30c3\u30c0\u30fc\u884c\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093: {0} +errors.could_not_delete_logged_in_user=\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u3044\u308b\u30e6\u30fc\u30b6\u30fc\u306f\u524a\u9664\u3067\u304d\u307e\u305b\u3093\u3002 success.update_crawler_params = \u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 success.delete_doc_from_index = \u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u304b\u3089\u6587\u66f8\u3092\u524a\u9664\u3059\u308b\u30d7\u30ed\u30bb\u30b9\u3092\u958b\u59cb\u3057\u307e\u3057\u305f\u3002