Skip to content

Commit

Permalink
optionally disable menus
Browse files Browse the repository at this point in the history
  • Loading branch information
cleydyr committed May 26, 2024
1 parent 953a982 commit 6addd3a
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 6 deletions.
15 changes: 15 additions & 0 deletions src/main/java/biblivre/core/properties/MenuPropertiesService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package biblivre.core.properties;

import java.util.Collection;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Service;

@Service
@ConfigurationProperties(prefix = "biblivre.menus")
@Getter
@Setter
public class MenuPropertiesService {
private Collection<String> disabled;
}
15 changes: 9 additions & 6 deletions src/main/java/biblivre/login/MenuProviderImpl.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
package biblivre.login;

import biblivre.core.properties.MenuPropertiesService;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.*;
import java.util.function.Predicate;
import org.json.JSONArray;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource;
import org.springframework.stereotype.Component;
Expand All @@ -23,6 +21,8 @@ public class MenuProviderImpl implements MenuProvider {

private Map<Integer, JSONObject> prioritizedMenus;

@Autowired private MenuPropertiesService menuPropertiesService;

@Override
public Map<String, List<String>> getAllowedModules(Predicate<String> filter) {
if (prioritizedMenus == null) {
Expand All @@ -43,7 +43,10 @@ public Map<String, List<String>> getAllowedModules(Predicate<String> filter) {
obj -> {
String item = obj.toString();

if (filter.test(item)) {
if (filter.test(item)
&& !menuPropertiesService
.getDisabled()
.contains(item)) {
allowedModules
.computeIfAbsent(name, __ -> new ArrayList<>())
.add(item);
Expand Down
7 changes: 7 additions & 0 deletions src/main/java/biblivre/menu/Handler.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
import biblivre.core.ExtendedRequest;
import biblivre.core.ExtendedResponse;
import biblivre.core.SchemaThreadLocal;
import biblivre.core.properties.MenuPropertiesService;
import biblivre.core.schemas.SchemaBO;
import biblivre.core.translations.LanguageBO;
import biblivre.core.translations.LanguageDTO;
Expand All @@ -61,6 +62,8 @@ public class Handler extends AbstractHandler {
private LanguageBO languageBO;
private SchemaBO schemaBO;

@Autowired private MenuPropertiesService menuPropertiesService;

public void i18n(ExtendedRequest request, ExtendedResponse response) {
if (request.getBoolean("from_translations")) {
setJspURL("/WEB-INF/jsp/administration/translations.jsp");
Expand Down Expand Up @@ -299,6 +302,10 @@ public void administrationReports(ExtendedRequest request, ExtendedResponse resp
}

public void administrationCustomReports(ExtendedRequest request, ExtendedResponse response) {
if (menuPropertiesService.getDisabled().contains("administration_custom_reports")) {
throw new IllegalArgumentException("Custom reports are not enabled.");
}

setJspURL("/WEB-INF/jsp/administration/custom_reports.jsp");
}

Expand Down

0 comments on commit 6addd3a

Please sign in to comment.