diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2016-08-08 10:39:07 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-08 10:39:07 +0300 |
commit | 1f0e1dddadd32a1f40695bf33d877d192ecd1403 (patch) | |
tree | 0718bbcd23b1c1dc8fce80fbfa41095c28b5d633 /src/org/traccar/database/PermissionsManager.java | |
parent | ecf3ebdd176fafc0e9bfbdb1bca8f3a1cfd6cbb0 (diff) | |
parent | e316afef8768c9c08d41cb9ae0a845a93a5fe95a (diff) | |
download | trackermap-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/PermissionsManager.java')
-rw-r--r-- | src/org/traccar/database/PermissionsManager.java | 16 |
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); } |