fix #606 display profile menu on editable user
This commit is contained in:
parent
33ac8d1f0f
commit
4632317847
10 changed files with 43 additions and 10 deletions
|
@ -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));
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -95,5 +95,10 @@ public class OpenIdConnectCredential implements LoginCredential {
|
|||
return permissions;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEditable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,4 +26,6 @@ public interface FessUser extends Serializable {
|
|||
String[] getGroupNames();
|
||||
|
||||
String[] getPermissions();
|
||||
|
||||
boolean isEditable();
|
||||
}
|
||||
|
|
|
@ -91,4 +91,9 @@ public class User extends BsUser implements FessUser {
|
|||
return list.toArray(new String[list.size()]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEditable() {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -82,4 +82,9 @@ public class LdapUser implements FessUser {
|
|||
return env;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEditable() {
|
||||
return ComponentUtil.getFessConfig().isLdapAdminEnabled(name);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -67,6 +67,10 @@ public class FessUserBean extends TypicalUserBean<String> { // #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<String> { // #change_it also L
|
|||
public String[] getRoles() {
|
||||
return StringUtil.EMPTY_STRINGS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEditable() {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,9 +38,11 @@
|
|||
<span>${username}</span>
|
||||
</a>
|
||||
<div class="dropdown-menu" aria-labelledby="userMenu">
|
||||
<la:link href="/profile" styleClass="dropdown-item">
|
||||
<la:message key="labels.profile" />
|
||||
</la:link>
|
||||
<c:if test="${editableUser == true}">
|
||||
<la:link href="/profile" styleClass="dropdown-item">
|
||||
<la:message key="labels.profile" />
|
||||
</la:link>
|
||||
</c:if>
|
||||
<c:if test="${adminUser == true}">
|
||||
<la:link href="/admin" styleClass="dropdown-item">
|
||||
<la:message key="labels.administration" />
|
||||
|
|
|
@ -38,9 +38,11 @@ ${fe:facetForm()}${fe:geoForm()}
|
|||
<span>${username}</span>
|
||||
</a>
|
||||
<div class="dropdown-menu" aria-labelledby="userMenu">
|
||||
<la:link href="/profile" styleClass="dropdown-item">
|
||||
<la:message key="labels.profile" />
|
||||
</la:link>
|
||||
<c:if test="${editableUser == true}">
|
||||
<la:link href="/profile" styleClass="dropdown-item">
|
||||
<la:message key="labels.profile" />
|
||||
</la:link>
|
||||
</c:if>
|
||||
<c:if test="${adminUser == true}">
|
||||
<la:link href="/admin" styleClass="dropdown-item">
|
||||
<la:message key="labels.administration" />
|
||||
|
|
|
@ -30,9 +30,11 @@
|
|||
aria-expanded="false"> <i class="fa fa-user"></i>${username}
|
||||
</a>
|
||||
<div class="dropdown-menu" aria-labelledby="userMenu">
|
||||
<la:link href="/profile" styleClass="dropdown-item">
|
||||
<la:message key="labels.profile" />
|
||||
</la:link>
|
||||
<c:if test="${editableUser == true}">
|
||||
<la:link href="/profile" styleClass="dropdown-item">
|
||||
<la:message key="labels.profile" />
|
||||
</la:link>
|
||||
</c:if>
|
||||
<c:if test="${adminUser == true}">
|
||||
<la:link href="/admin" styleClass="dropdown-item">
|
||||
<la:message key="labels.administration" />
|
||||
|
|
Loading…
Add table
Reference in a new issue