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