aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/traccar/model/User.java
diff options
context:
space:
mode:
authorAnton Tananaev <anton@traccar.org>2024-06-09 07:02:05 -0700
committerAnton Tananaev <anton@traccar.org>2024-06-09 07:02:05 -0700
commit2147ecb2d9fe0fb49b3f03dc650bc363e72e3fd2 (patch)
treea983700dd72bf78be4f9258c76c098670cf2634e /src/main/java/org/traccar/model/User.java
parent03b9b90b50d82dcb41a79b95c26efcbd82a73fea (diff)
downloadtrackermap-server-2147ecb2d9fe0fb49b3f03dc650bc363e72e3fd2.tar.gz
trackermap-server-2147ecb2d9fe0fb49b3f03dc650bc363e72e3fd2.tar.bz2
trackermap-server-2147ecb2d9fe0fb49b3f03dc650bc363e72e3fd2.zip
Allow some readonly updates
Diffstat (limited to 'src/main/java/org/traccar/model/User.java')
-rw-r--r--src/main/java/org/traccar/model/User.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/main/java/org/traccar/model/User.java b/src/main/java/org/traccar/model/User.java
index 9b8ee3e53..7cf8c25a6 100644
--- a/src/main/java/org/traccar/model/User.java
+++ b/src/main/java/org/traccar/model/User.java
@@ -17,11 +17,13 @@ package org.traccar.model;
import com.fasterxml.jackson.annotation.JsonIgnore;
+import org.apache.commons.lang3.builder.EqualsBuilder;
import org.traccar.storage.QueryIgnore;
import org.traccar.helper.Hashing;
import org.traccar.storage.StorageName;
import java.util.Date;
+import java.util.HashMap;
@StorageName("tc_users")
public class User extends ExtendedModel implements UserRestrictions, Disableable {
@@ -305,4 +307,17 @@ public class User extends ExtendedModel implements UserRestrictions, Disableable
return Hashing.validatePassword(password, hashedPassword, salt);
}
+ public boolean compare(User other, String... exclusions) {
+ if (!EqualsBuilder.reflectionEquals(this, other, "attributes", "hashedPassword", "salt")) {
+ return false;
+ }
+ var thisAttributes = new HashMap<>(getAttributes());
+ var otherAttributes = new HashMap<>(other.getAttributes());
+ for (String exclusion : exclusions) {
+ thisAttributes.remove(exclusion);
+ otherAttributes.remove(exclusion);
+ }
+ return thisAttributes.equals(otherAttributes);
+ }
+
}