diff options
Diffstat (limited to 'src/org/traccar/database')
-rw-r--r-- | src/org/traccar/database/ExtendedObjectManager.java | 3 | ||||
-rw-r--r-- | src/org/traccar/database/PermissionsManager.java | 29 |
2 files changed, 16 insertions, 16 deletions
diff --git a/src/org/traccar/database/ExtendedObjectManager.java b/src/org/traccar/database/ExtendedObjectManager.java index 8380b9da2..483c3a09e 100644 --- a/src/org/traccar/database/ExtendedObjectManager.java +++ b/src/org/traccar/database/ExtendedObjectManager.java @@ -35,8 +35,7 @@ public abstract class ExtendedObjectManager extends SimpleObjectManager { private final Map<Long, Set<Long>> deviceItemsWithGroups = new ConcurrentHashMap<>(); private final Map<Long, Set<Long>> groupItems = new ConcurrentHashMap<>(); - protected ExtendedObjectManager(DataManager dataManager, - Class<? extends BaseModel> baseClass) { + protected ExtendedObjectManager(DataManager dataManager, Class<? extends BaseModel> baseClass) { super(dataManager, baseClass); } diff --git a/src/org/traccar/database/PermissionsManager.java b/src/org/traccar/database/PermissionsManager.java index 4008134ec..8aa0dc9d7 100644 --- a/src/org/traccar/database/PermissionsManager.java +++ b/src/org/traccar/database/PermissionsManager.java @@ -24,6 +24,7 @@ import org.traccar.model.Driver; import org.traccar.model.Geofence; import org.traccar.model.Group; import org.traccar.model.ManagedUser; +import org.traccar.model.Permission; import org.traccar.model.Server; import org.traccar.model.User; @@ -348,34 +349,34 @@ public class PermissionsManager { Context.getAttributesManager().refreshExtendedPermissions(); } - public void refreshPermissions(Map<String, Long> entity) { - if (entity.containsKey(DataManager.makeNameId(User.class))) { - if (entity.containsKey(DataManager.makeNameId(Device.class)) - || entity.containsKey(DataManager.makeNameId(Group.class))) { + public void refreshPermissions(Permission permission) { + if (permission.getOwnerClass().equals(User.class)) { + if (permission.getPropertyClass().equals(Device.class) + || permission.getPropertyClass().equals(Group.class)) { refreshPermissions(); refreshAllExtendedPermissions(); - } else if (entity.containsKey(DataManager.makeNameId(ManagedUser.class))) { + } else if (permission.getPropertyClass().equals(ManagedUser.class)) { refreshUserPermissions(); - } else if (entity.containsKey(DataManager.makeNameId(Geofence.class))) { + } else if (permission.getPropertyClass().equals(Geofence.class)) { if (Context.getGeofenceManager() != null) { Context.getGeofenceManager().refreshUserItems(); } - } else if (entity.containsKey(DataManager.makeNameId(Driver.class))) { + } else if (permission.getPropertyClass().equals(Driver.class)) { Context.getDriversManager().refreshUserItems(); - } else if (entity.containsKey(DataManager.makeNameId(Attribute.class))) { + } else if (permission.getPropertyClass().equals(Attribute.class)) { Context.getAttributesManager().refreshUserItems(); - } else if (entity.containsKey(DataManager.makeNameId(Calendar.class))) { + } else if (permission.getPropertyClass().equals(Calendar.class)) { Context.getCalendarManager().refreshUserItems(); } - } else if (entity.containsKey(DataManager.makeNameId(Device.class)) - || entity.containsKey(DataManager.makeNameId(Group.class))) { - if (entity.containsKey(DataManager.makeNameId(Geofence.class))) { + } else if (permission.getOwnerClass().equals(Device.class) + || permission.getOwnerClass().equals(Group.class)) { + if (permission.getPropertyClass().equals(Geofence.class)) { if (Context.getGeofenceManager() != null) { Context.getGeofenceManager().refreshExtendedPermissions(); } - } else if (entity.containsKey(DataManager.makeNameId(Driver.class))) { + } else if (permission.getPropertyClass().equals(Driver.class)) { Context.getDriversManager().refreshExtendedPermissions(); - } else if (entity.containsKey(DataManager.makeNameId(Attribute.class))) { + } else if (permission.getPropertyClass().equals(Attribute.class)) { Context.getAttributesManager().refreshExtendedPermissions(); } } |