aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar/database/DeviceManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/traccar/database/DeviceManager.java')
-rw-r--r--src/org/traccar/database/DeviceManager.java20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/org/traccar/database/DeviceManager.java b/src/org/traccar/database/DeviceManager.java
index c70e67231..8e75903db 100644
--- a/src/org/traccar/database/DeviceManager.java
+++ b/src/org/traccar/database/DeviceManager.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2016 Anton Tananaev (anton@traccar.org)
+ * Copyright 2016 - 2017 Anton Tananaev (anton@traccar.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -160,6 +160,15 @@ public class DeviceManager implements IdentityManager {
return devices;
}
+ public Collection<Device> getManagedDevices(long userId) throws SQLException {
+ Collection<Device> devices = new ArrayList<>();
+ devices.addAll(getDevices(userId));
+ for (long managedUserId : Context.getPermissionsManager().getUserPermissions(userId)) {
+ devices.addAll(getDevices(managedUserId));
+ }
+ return devices;
+ }
+
public void addDevice(Device device) throws SQLException {
dataManager.addDevice(device);
@@ -289,6 +298,15 @@ public class DeviceManager implements IdentityManager {
return groups;
}
+ public Collection<Group> getManagedGroups(long userId) throws SQLException {
+ Collection<Group> groups = new ArrayList<>();
+ groups.addAll(getGroups(userId));
+ for (long managedUserId : Context.getPermissionsManager().getUserPermissions(userId)) {
+ groups.addAll(getGroups(managedUserId));
+ }
+ return groups;
+ }
+
private void checkGroupCycles(Group group) {
Set<Long> groups = new HashSet<>();
while (group != null) {