diff --git a/src/main/java/org/codelibs/fess/app/web/admin/scheduler/AdminSchedulerAction.java b/src/main/java/org/codelibs/fess/app/web/admin/scheduler/AdminSchedulerAction.java index dd87713ee..14da5c37f 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/scheduler/AdminSchedulerAction.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/scheduler/AdminSchedulerAction.java @@ -267,7 +267,7 @@ public class AdminSchedulerAction extends FessAdminAction { validate(form, messages -> {}, () -> asDetailsHtml(id)); verifyToken(() -> asDetailsHtml(id)); scheduledJobService.getScheduledJob(id).ifPresent(entity -> { - if(!entity.isEnabled()||entity.isRunning()){ + if (!entity.isEnabled() || entity.isRunning()) { throwValidationError(messages -> { messages.addErrorsFailedToStartJob(GLOBAL, entity.getName()); }, () -> asDetailsHtml(id)); diff --git a/src/main/java/org/codelibs/fess/app/web/base/FessSearchAction.java b/src/main/java/org/codelibs/fess/app/web/base/FessSearchAction.java index c36f3d181..fe6dc3cf5 100644 --- a/src/main/java/org/codelibs/fess/app/web/base/FessSearchAction.java +++ b/src/main/java/org/codelibs/fess/app/web/base/FessSearchAction.java @@ -124,6 +124,7 @@ public abstract class FessSearchAction extends FessBaseAction { runtime.registerData("langItems", systemHelper.getLanguageItems(locale)); final String username = systemHelper.getUsername(); runtime.registerData("username", username); + runtime.registerData("editableUser", fessLoginAssist.getSavedUserBean().map(user -> user.isEditable()).orElse(false)); runtime.registerData("adminUser", fessConfig.isAdminUser(username)); runtime.registerData("pageLoginLink", fessConfig.isLoginLinkEnabled()); diff --git a/src/main/java/org/codelibs/fess/app/web/base/login/OpenIdConnectCredential.java b/src/main/java/org/codelibs/fess/app/web/base/login/OpenIdConnectCredential.java index fc161338f..9dbbb9931 100644 --- a/src/main/java/org/codelibs/fess/app/web/base/login/OpenIdConnectCredential.java +++ b/src/main/java/org/codelibs/fess/app/web/base/login/OpenIdConnectCredential.java @@ -95,5 +95,10 @@ public class OpenIdConnectCredential implements LoginCredential { return permissions; } + @Override + public boolean isEditable() { + return false; + } + } } diff --git a/src/main/java/org/codelibs/fess/entity/FessUser.java b/src/main/java/org/codelibs/fess/entity/FessUser.java index 8cc77b6f2..3ebf5aee2 100644 --- a/src/main/java/org/codelibs/fess/entity/FessUser.java +++ b/src/main/java/org/codelibs/fess/entity/FessUser.java @@ -26,4 +26,6 @@ public interface FessUser extends Serializable { String[] getGroupNames(); String[] getPermissions(); + + boolean isEditable(); } diff --git a/src/main/java/org/codelibs/fess/es/user/exentity/User.java b/src/main/java/org/codelibs/fess/es/user/exentity/User.java index f92f7721b..48d475da8 100644 --- a/src/main/java/org/codelibs/fess/es/user/exentity/User.java +++ b/src/main/java/org/codelibs/fess/es/user/exentity/User.java @@ -91,4 +91,9 @@ public class User extends BsUser implements FessUser { return list.toArray(new String[list.size()]); } + @Override + public boolean isEditable() { + return true; + } + } diff --git a/src/main/java/org/codelibs/fess/ldap/LdapUser.java b/src/main/java/org/codelibs/fess/ldap/LdapUser.java index cba91cdc0..bd1260208 100644 --- a/src/main/java/org/codelibs/fess/ldap/LdapUser.java +++ b/src/main/java/org/codelibs/fess/ldap/LdapUser.java @@ -82,4 +82,9 @@ public class LdapUser implements FessUser { return env; } + @Override + public boolean isEditable() { + return ComponentUtil.getFessConfig().isLdapAdminEnabled(name); + } + } 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 18f90ec5f..08e40d5ed 100644 --- a/src/main/java/org/codelibs/fess/mylasta/action/FessUserBean.java +++ b/src/main/java/org/codelibs/fess/mylasta/action/FessUserBean.java @@ -67,6 +67,10 @@ public class FessUserBean extends TypicalUserBean { // #change_it also L return user.getGroupNames(); } + public boolean isEditable() { + return user.isEditable(); + } + public boolean hasRole(final String role) { return stream(user.getRoleNames()).get(stream -> stream.anyMatch(s -> s.equals(role))); } @@ -103,6 +107,11 @@ public class FessUserBean extends TypicalUserBean { // #change_it also L public String[] getRoles() { return StringUtil.EMPTY_STRINGS; } + + @Override + public boolean isEditable() { + return false; + } }; } } diff --git a/src/main/webapp/WEB-INF/view/error/header.jsp b/src/main/webapp/WEB-INF/view/error/header.jsp index 01674e32e..786076cf3 100755 --- a/src/main/webapp/WEB-INF/view/error/header.jsp +++ b/src/main/webapp/WEB-INF/view/error/header.jsp @@ -38,9 +38,11 @@ ${username}