From 839e741653c9b61e573fa1cdd0dad0641c79bcec Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Fri, 21 Jul 2017 09:59:27 +0500 Subject: Abolish permissions classes and get permissions as Map from DB --- src/org/traccar/database/SimpleObjectManager.java | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'src/org/traccar/database/SimpleObjectManager.java') diff --git a/src/org/traccar/database/SimpleObjectManager.java b/src/org/traccar/database/SimpleObjectManager.java index aae407b56..c4fc0e97a 100644 --- a/src/org/traccar/database/SimpleObjectManager.java +++ b/src/org/traccar/database/SimpleObjectManager.java @@ -26,7 +26,6 @@ import java.util.concurrent.ConcurrentHashMap; import org.traccar.Context; import org.traccar.helper.Log; -import org.traccar.model.BaseUserPermission; import org.traccar.model.BaseModel; public abstract class SimpleObjectManager { @@ -37,14 +36,14 @@ public abstract class SimpleObjectManager { private final Map> userItems = new ConcurrentHashMap<>(); private Class baseClass; - private Class permissionClass; + private String baseClassName; + private String baseClassIdName; - protected SimpleObjectManager(DataManager dataManager, - Class baseClass, - Class permissionClass) { + protected SimpleObjectManager(DataManager dataManager, Class baseClass) { this.dataManager = dataManager; this.baseClass = baseClass; - this.permissionClass = permissionClass; + baseClassName = baseClass.getSimpleName(); + baseClassIdName = baseClassName.substring(0, 1).toLowerCase() + baseClassName.substring(1) + "Id"; } protected final DataManager getDataManager() { @@ -55,6 +54,14 @@ public abstract class SimpleObjectManager { return baseClass; } + protected final String getBaseClassName() { + return baseClassName; + } + + protected final String getBaseClassIdName() { + return baseClassIdName; + } + public final BaseModel getById(long itemId) { return items.get(itemId); } @@ -104,8 +111,8 @@ public abstract class SimpleObjectManager { if (dataManager != null) { try { clearUserItems(); - for (BaseUserPermission permission : dataManager.getObjects(this.permissionClass)) { - getUserItems(permission.getUserId()).add(permission.getSlaveId()); + for (Map permission : dataManager.getPermissions(baseClassName, "Permission")) { + getUserItems(permission.get("userId")).add(permission.get(baseClassIdName)); } } catch (SQLException error) { Log.warning(error); -- cgit v1.2.3