aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar/database
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2016-08-08 10:39:07 +0300
committerGitHub <noreply@github.com>2016-08-08 10:39:07 +0300
commit1f0e1dddadd32a1f40695bf33d877d192ecd1403 (patch)
tree0718bbcd23b1c1dc8fce80fbfa41095c28b5d633 /src/org/traccar/database
parentecf3ebdd176fafc0e9bfbdb1bca8f3a1cfd6cbb0 (diff)
parente316afef8768c9c08d41cb9ae0a845a93a5fe95a (diff)
downloadtrackermap-server-1f0e1dddadd32a1f40695bf33d877d192ecd1403.tar.gz
trackermap-server-1f0e1dddadd32a1f40695bf33d877d192ecd1403.tar.bz2
trackermap-server-1f0e1dddadd32a1f40695bf33d877d192ecd1403.zip
Merge pull request #2190 from Abyss777/reports
Implement reports API calls
Diffstat (limited to 'src/org/traccar/database')
-rw-r--r--src/org/traccar/database/PermissionsManager.java16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/org/traccar/database/PermissionsManager.java b/src/org/traccar/database/PermissionsManager.java
index 92fcc3ebd..3c2cc252b 100644
--- a/src/org/traccar/database/PermissionsManager.java
+++ b/src/org/traccar/database/PermissionsManager.java
@@ -41,6 +41,7 @@ public class PermissionsManager {
private final Map<Long, Set<Long>> groupPermissions = new HashMap<>();
private final Map<Long, Set<Long>> devicePermissions = new HashMap<>();
private final Map<Long, Set<Long>> deviceUsers = new HashMap<>();
+ private final Map<Long, Set<Long>> groupDevices = new HashMap<>();
public Set<Long> getGroupPermissions(long userId) {
if (!groupPermissions.containsKey(userId)) {
@@ -63,6 +64,13 @@ public class PermissionsManager {
return deviceUsers.get(deviceId);
}
+ public Set<Long> getGroupDevices(long groupId) {
+ if (!groupDevices.containsKey(groupId)) {
+ groupDevices.put(groupId, new HashSet<Long>());
+ }
+ return groupDevices.get(groupId);
+ }
+
public PermissionsManager(DataManager dataManager) {
this.dataManager = dataManager;
refresh();
@@ -91,11 +99,17 @@ public class PermissionsManager {
userDevicePermissions.add(device.getId());
}
}
-
for (DevicePermission permission : dataManager.getDevicePermissions()) {
getDevicePermissions(permission.getUserId()).add(permission.getDeviceId());
}
+ groupDevices.clear();
+ for (Group group : Context.getDeviceManager().getAllGroups()) {
+ for (Device device : groupTree.getDevices(group.getId())) {
+ getGroupDevices(group.getId()).add(device.getId());
+ }
+ }
+
} catch (SQLException error) {
Log.warning(error);
}