aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/traccar/api/security
diff options
context:
space:
mode:
authorAnton Tananaev <anton@traccar.org>2022-06-04 06:33:02 -0700
committerAnton Tananaev <anton@traccar.org>2022-06-04 06:33:02 -0700
commitec76482c15094a7e04964c67d3011a7e8e1ad6a9 (patch)
tree3ef0d23e1b9f4ba7ef02f68b08db33f3db1972ab /src/main/java/org/traccar/api/security
parent4030d3207c157a3fcee2653c18440898b6b2a2e6 (diff)
downloadtrackermap-server-ec76482c15094a7e04964c67d3011a7e8e1ad6a9.tar.gz
trackermap-server-ec76482c15094a7e04964c67d3011a7e8e1ad6a9.tar.bz2
trackermap-server-ec76482c15094a7e04964c67d3011a7e8e1ad6a9.zip
Refactor commands manager
Diffstat (limited to 'src/main/java/org/traccar/api/security')
-rw-r--r--src/main/java/org/traccar/api/security/PermissionsService.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/main/java/org/traccar/api/security/PermissionsService.java b/src/main/java/org/traccar/api/security/PermissionsService.java
index 9daef355e..b4a375109 100644
--- a/src/main/java/org/traccar/api/security/PermissionsService.java
+++ b/src/main/java/org/traccar/api/security/PermissionsService.java
@@ -25,6 +25,7 @@ import org.traccar.model.ManagedUser;
import org.traccar.model.ScheduledModel;
import org.traccar.model.Server;
import org.traccar.model.User;
+import org.traccar.model.UserRestrictions;
import org.traccar.storage.Storage;
import org.traccar.storage.StorageException;
import org.traccar.storage.query.Columns;
@@ -71,10 +72,15 @@ public class PermissionsService {
}
}
- public void checkReports(long userId) throws StorageException, SecurityException {
+ public interface CheckRestrictionCallback {
+ boolean denied(UserRestrictions userRestrictions);
+ }
+
+ public void checkRestriction(
+ long userId, CheckRestrictionCallback callback) throws StorageException, SecurityException {
if (!getUser(userId).getAdministrator()
- && (getServer().getDisableReports() || getUser(userId).getDisableReports())) {
- throw new SecurityException("Reports are disabled");
+ && (callback.denied(getServer()) || callback.denied(getUser(userId)))) {
+ throw new SecurityException("Operation restricted");
}
}