diff options
Diffstat (limited to 'src/org/traccar/database')
-rw-r--r-- | src/org/traccar/database/PermissionsManager.java | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/org/traccar/database/PermissionsManager.java b/src/org/traccar/database/PermissionsManager.java index 07b60ba58..203f25a3d 100644 --- a/src/org/traccar/database/PermissionsManager.java +++ b/src/org/traccar/database/PermissionsManager.java @@ -56,8 +56,8 @@ public class PermissionsManager { refreshDeviceAndGroupPermissions(); } - public User getUser(long userId) { - return (User) usersManager.getById(userId); + public User getUser(Long userId) { + return userId != null ? (User) usersManager.getById(userId) : null; } public Set<Long> getGroupPermissions(long userId) { @@ -416,10 +416,15 @@ public class PermissionsManager { return null; } - public Object lookupAttribute(long userId, String key, Object defaultValue) { + public Object lookupAttribute(Long userId, String key, Object defaultValue) { Object preference; + Object userPreference = null; Object serverPreference = server.getAttributes().get(key); - Object userPreference = getUser(userId).getAttributes().get(key); + + if (userId != null) { + userPreference = getUser(userId).getAttributes().get(key); + } + if (server.getForceSettings()) { preference = serverPreference != null ? serverPreference : userPreference; } else { |