aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/traccar
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/traccar')
-rw-r--r--src/main/java/org/traccar/api/resource/DeviceResource.java3
-rw-r--r--src/main/java/org/traccar/config/Keys.java7
2 files changed, 10 insertions, 0 deletions
diff --git a/src/main/java/org/traccar/api/resource/DeviceResource.java b/src/main/java/org/traccar/api/resource/DeviceResource.java
index 00a3fc5b9..c3ced9b84 100644
--- a/src/main/java/org/traccar/api/resource/DeviceResource.java
+++ b/src/main/java/org/traccar/api/resource/DeviceResource.java
@@ -204,6 +204,9 @@ public class DeviceResource extends BaseObjectResource<Device> {
@FormParam("expiration") Date expiration) throws StorageException, GeneralSecurityException, IOException {
User user = permissionsService.getUser(getUserId());
+ if (permissionsService.getServer().getBoolean(Keys.DEVICE_SHARE_DISABLE.getKey())) {
+ throw new SecurityException("Sharing is disabled");
+ }
if (user.getTemporary()) {
throw new SecurityException("Temporary user");
}
diff --git a/src/main/java/org/traccar/config/Keys.java b/src/main/java/org/traccar/config/Keys.java
index e79264908..02e684875 100644
--- a/src/main/java/org/traccar/config/Keys.java
+++ b/src/main/java/org/traccar/config/Keys.java
@@ -341,6 +341,13 @@ public final class Keys {
0.0);
/**
+ * Disable device sharing on the server.
+ */
+ public static final ConfigKey<Boolean> DEVICE_SHARE_DISABLE = new BooleanConfigKey(
+ "disableShare",
+ List.of(KeyType.SERVER));
+
+ /**
* Speed limit threshold multiplier. For example, if the speed limit is 100, but we only want to generate an event
* if the speed is higher than 105, this parameter can be set to 1.05. Default multiplier is 1.0.
*/