in hugegraph-tools/src/main/java/org/apache/hugegraph/manager/AuthBackupRestoreManager.java [258:300]
public List<String> checkConflict() {
List<User> users = retry(client.authManager()::listUsers,
"querying users of authority");
Map<String, User> userMap = Maps.newHashMap();
for (User user : users) {
userMap.put(user.name(), user);
}
List<String> userJsons = readRestoreData(HugeType.USER);
List<String> conflicts = Lists.newArrayList();
for (String user : userJsons) {
int conflict = NO_CONFLICT;
User restoreUser = JsonUtil.fromJson(user, User.class);
if (!userMap.containsKey(restoreUser.name())) {
this.prepareUserForRestore(restoreUser);
continue;
}
User existUser = userMap.get(restoreUser.name());
if (!StringUtils.equals(existUser.phone(),
restoreUser.phone())) {
conflict++;
}
if (!StringUtils.equals(existUser.email(),
restoreUser.email())) {
conflict++;
}
if (!StringUtils.equals(existUser.avatar(),
restoreUser.avatar())) {
conflict++;
}
if (conflict > NO_CONFLICT) {
E.checkState(strategy.isStopStrategy() ||
strategy.isIgnoreStrategy(),
"Restore users strategy is not found");
if (strategy.isStopStrategy()) {
conflicts.add(restoreUser.toString());
}
} else {
idsMap.put(restoreUser.id().toString(),
existUser.id().toString());
}
}
return conflicts;
}