[New] Added UserHistory to UserRep
This commit is contained in:
parent
fd7362b2c1
commit
2e3a1f1487
|
@ -111,6 +111,6 @@ public class PrivilegeElementFromJsonVisitor {
|
|||
}
|
||||
}
|
||||
|
||||
return new UserRep(userId, username, firstname, lastname, userState, roles, locale, properties);
|
||||
return new UserRep(userId, username, firstname, lastname, userState, roles, locale, properties, null);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,8 @@ import li.strolch.privilege.model.PrivilegeElementVisitor;
|
|||
import li.strolch.privilege.model.PrivilegeRep;
|
||||
import li.strolch.privilege.model.RoleRep;
|
||||
import li.strolch.privilege.model.UserRep;
|
||||
import li.strolch.privilege.model.internal.UserHistory;
|
||||
import li.strolch.utils.iso8601.ISO8601;
|
||||
|
||||
public class PrivilegeElementToJsonVisitor implements PrivilegeElementVisitor<JsonObject> {
|
||||
|
||||
|
@ -36,6 +38,13 @@ public class PrivilegeElementToJsonVisitor implements PrivilegeElementVisitor<Js
|
|||
propsArr.add(propObj);
|
||||
}
|
||||
|
||||
JsonObject historyJ = new JsonObject();
|
||||
jsonObject.add("history", historyJ);
|
||||
UserHistory history = userRep.getHistory();
|
||||
historyJ.addProperty("firstLogin", ISO8601.toString(history.getFirstLogin()));
|
||||
historyJ.addProperty("lastLogin", ISO8601.toString(history.getLastLogin()));
|
||||
historyJ.addProperty("lastPasswordChange", ISO8601.toString(history.getLastPasswordChange()));
|
||||
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
|
|
|
@ -934,7 +934,7 @@ public class DefaultPrivilegeHandler implements PrivilegeHandler {
|
|||
|
||||
// validate no user is using this role
|
||||
Set<String> roles = new HashSet<>(Collections.singletonList(roleName));
|
||||
UserRep selector = new UserRep(null, null, null, null, null, roles, null, null);
|
||||
UserRep selector = new UserRep(null, null, null, null, null, roles, null, null, null);
|
||||
List<UserRep> usersWithRole = queryUsers(certificate, selector);
|
||||
if (!usersWithRole.isEmpty()) {
|
||||
String usersS = usersWithRole.stream().map(UserRep::getUsername).collect(Collectors.joining(", "));
|
||||
|
|
|
@ -25,6 +25,7 @@ import li.strolch.privilege.base.PrivilegeConstants;
|
|||
import li.strolch.privilege.base.PrivilegeException;
|
||||
import li.strolch.privilege.model.internal.Role;
|
||||
import li.strolch.privilege.model.internal.User;
|
||||
import li.strolch.privilege.model.internal.UserHistory;
|
||||
import li.strolch.utils.helper.StringHelper;
|
||||
|
||||
/**
|
||||
|
@ -45,6 +46,8 @@ public class UserRep implements Serializable {
|
|||
private Set<String> roles;
|
||||
private Map<String, String> properties;
|
||||
|
||||
private UserHistory history;
|
||||
|
||||
/**
|
||||
* Default constructor
|
||||
*
|
||||
|
@ -66,7 +69,7 @@ public class UserRep implements Serializable {
|
|||
* a {@link Map} containing string value pairs of properties for this user
|
||||
*/
|
||||
public UserRep(String userId, String username, String firstname, String lastname, UserState userState,
|
||||
Set<String> roles, Locale locale, Map<String, String> propertyMap) {
|
||||
Set<String> roles, Locale locale, Map<String, String> propertyMap, UserHistory history) {
|
||||
this.userId = userId;
|
||||
this.username = username;
|
||||
this.firstname = firstname;
|
||||
|
@ -79,6 +82,8 @@ public class UserRep implements Serializable {
|
|||
this.properties = new HashMap<>(propertyMap);
|
||||
this.properties.remove("");
|
||||
}
|
||||
|
||||
this.history = history;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -239,6 +244,17 @@ public class UserRep implements Serializable {
|
|||
this.locale = locale;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the {@link UserHistory}
|
||||
*
|
||||
* @return the user history
|
||||
*/
|
||||
public UserHistory getHistory() {
|
||||
if (this.history == null)
|
||||
return new UserHistory();
|
||||
return this.history;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the property with the given key
|
||||
*
|
||||
|
@ -375,7 +391,7 @@ public class UserRep implements Serializable {
|
|||
Map<String, String> propertyMap = this.properties == null ? null : new HashMap<>(this.properties);
|
||||
|
||||
return new UserRep(this.userId, this.username, this.firstname, this.lastname, this.userState, roles,
|
||||
this.locale, propertyMap);
|
||||
this.locale, propertyMap, this.history.getClone());
|
||||
}
|
||||
|
||||
public <T> T accept(PrivilegeElementVisitor<T> visitor) {
|
||||
|
|
|
@ -341,7 +341,7 @@ public final class User {
|
|||
*/
|
||||
public UserRep asUserRep() {
|
||||
return new UserRep(this.userId, this.username, this.firstname, this.lastname, this.userState,
|
||||
new HashSet<>(this.roles), this.locale, new HashMap<>(this.propertyMap));
|
||||
new HashSet<>(this.roles), this.locale, new HashMap<>(this.propertyMap), this.history.getClone());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -252,7 +252,7 @@ public class PrivilegeTest extends AbstractPrivilegeTest {
|
|||
assertNotEquals("Admin", user.getLastname());
|
||||
|
||||
// let's add a new user bob
|
||||
UserRep userRep = new UserRep(null, ADMIN, "The", "Admin", null, null, null, null);
|
||||
UserRep userRep = new UserRep(null, ADMIN, "The", "Admin", null, null, null, null, null);
|
||||
this.privilegeHandler.updateUser(certificate, userRep);
|
||||
|
||||
user = this.privilegeHandler.getUser(certificate, ADMIN);
|
||||
|
@ -273,7 +273,7 @@ public class PrivilegeTest extends AbstractPrivilegeTest {
|
|||
Certificate certificate = this.ctx.getCertificate();
|
||||
|
||||
// let's add a new user bob
|
||||
UserRep userRep = new UserRep(null, BOB, null, null, null, null, null, null);
|
||||
UserRep userRep = new UserRep(null, BOB, null, null, null, null, null, null, null);
|
||||
this.privilegeHandler.updateUser(certificate, userRep);
|
||||
} finally {
|
||||
logout();
|
||||
|
@ -291,7 +291,7 @@ public class PrivilegeTest extends AbstractPrivilegeTest {
|
|||
Certificate certificate = this.ctx.getCertificate();
|
||||
|
||||
// let's add a new user bob
|
||||
UserRep userRep = new UserRep(null, ADMIN, null, null, null, null, null, null);
|
||||
UserRep userRep = new UserRep(null, ADMIN, null, null, null, null, null, null, null);
|
||||
this.privilegeHandler.updateUser(certificate, userRep);
|
||||
} finally {
|
||||
logout();
|
||||
|
@ -308,7 +308,7 @@ public class PrivilegeTest extends AbstractPrivilegeTest {
|
|||
|
||||
Certificate certificate = this.ctx.getCertificate();
|
||||
|
||||
UserRep selectorRep = new UserRep(null, ADMIN, null, null, null, null, null, null);
|
||||
UserRep selectorRep = new UserRep(null, ADMIN, null, null, null, null, null, null, null);
|
||||
List<UserRep> users = this.privilegeHandler.queryUsers(certificate, selectorRep);
|
||||
assertEquals(1, users.size());
|
||||
assertEquals(ADMIN, users.get(0).getUsername());
|
||||
|
@ -326,7 +326,7 @@ public class PrivilegeTest extends AbstractPrivilegeTest {
|
|||
Certificate certificate = this.ctx.getCertificate();
|
||||
|
||||
UserRep selectorRep = new UserRep(null, null, null, null, null,
|
||||
new HashSet<>(Collections.singletonList("PrivilegeAdmin")), null, null);
|
||||
new HashSet<>(Collections.singletonList("PrivilegeAdmin")), null, null, null);
|
||||
List<UserRep> users = this.privilegeHandler.queryUsers(certificate, selectorRep);
|
||||
assertEquals(2, users.size());
|
||||
assertEquals(ADMIN, users.get(0).getUsername());
|
||||
|
@ -344,7 +344,7 @@ public class PrivilegeTest extends AbstractPrivilegeTest {
|
|||
Certificate certificate = this.ctx.getCertificate();
|
||||
|
||||
UserRep selectorRep = new UserRep(null, null, null, null, null,
|
||||
new HashSet<>(Collections.singletonList(ROLE_TEMP)), null, null);
|
||||
new HashSet<>(Collections.singletonList(ROLE_TEMP)), null, null, null);
|
||||
List<UserRep> users = this.privilegeHandler.queryUsers(certificate, selectorRep);
|
||||
assertEquals(0, users.size());
|
||||
|
||||
|
@ -656,7 +656,7 @@ public class PrivilegeTest extends AbstractPrivilegeTest {
|
|||
// let's add a new user ted
|
||||
HashSet<String> roles = new HashSet<>();
|
||||
roles.add(ROLE_USER);
|
||||
userRep = new UserRep(null, TED, "Ted", "Newman", UserState.ENABLED, roles, null, new HashMap<>());
|
||||
userRep = new UserRep(null, TED, "Ted", "Newman", UserState.ENABLED, roles, null, new HashMap<>(), null);
|
||||
Certificate certificate = this.ctx.getCertificate();
|
||||
this.privilegeHandler.addUser(certificate, userRep, null);
|
||||
logger.info("Added user " + TED);
|
||||
|
@ -689,7 +689,7 @@ public class PrivilegeTest extends AbstractPrivilegeTest {
|
|||
login(BOB, ArraysHelper.copyOf(PASS_BOB));
|
||||
// let's add a new user Ted
|
||||
userRep = new UserRep("1", TED, "Ted", "And then Some", UserState.NEW, new HashSet<>(), null,
|
||||
new HashMap<>());
|
||||
new HashMap<>(), null);
|
||||
certificate = this.ctx.getCertificate();
|
||||
this.privilegeHandler.addUser(certificate, userRep, null);
|
||||
fail("User bob may not add a user as bob does not have admin rights!");
|
||||
|
@ -769,7 +769,7 @@ public class PrivilegeTest extends AbstractPrivilegeTest {
|
|||
|
||||
// let's add a new user bob
|
||||
UserRep userRep = new UserRep(null, BOB, "Bob", "Newman", UserState.NEW,
|
||||
new HashSet<>(Collections.singletonList(ROLE_MY)), null, new HashMap<>());
|
||||
new HashSet<>(Collections.singletonList(ROLE_MY)), null, new HashMap<>(), null);
|
||||
Certificate certificate = this.ctx.getCertificate();
|
||||
this.privilegeHandler.addUser(certificate, userRep, null);
|
||||
logger.info("Added user " + BOB);
|
||||
|
|
Loading…
Reference in New Issue