fix #606 display profile menu on editable user

This commit is contained in:
Shinsuke Sugaya 2016-08-18 18:08:40 +09:00
parent 33ac8d1f0f
commit 4632317847
10 changed files with 43 additions and 10 deletions

View file

@ -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));

View file

@ -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());

View file

@ -95,5 +95,10 @@ public class OpenIdConnectCredential implements LoginCredential {
return permissions;
}
@Override
public boolean isEditable() {
return false;
}
}
}

View file

@ -26,4 +26,6 @@ public interface FessUser extends Serializable {
String[] getGroupNames();
String[] getPermissions();
boolean isEditable();
}

View file

@ -91,4 +91,9 @@ public class User extends BsUser implements FessUser {
return list.toArray(new String[list.size()]);
}
@Override
public boolean isEditable() {
return true;
}
}

View file

@ -82,4 +82,9 @@ public class LdapUser implements FessUser {
return env;
}
@Override
public boolean isEditable() {
return ComponentUtil.getFessConfig().isLdapAdminEnabled(name);
}
}

View file

@ -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;
}
};
}
}

View file

@ -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" />

View file

@ -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" />

View file

@ -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" />