Skip to content
This repository was archived by the owner on Oct 6, 2023. It is now read-only.

Commit e4a46f7

Browse files
author
sowerstl
committed
Improve User Admin; (DOECODE-807)
1 parent 8638942 commit e4a46f7

File tree

2 files changed

+71
-3
lines changed

2 files changed

+71
-3
lines changed

src/main/java/gov/osti/entity/User.java

Lines changed: 66 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@
66
import java.util.Calendar;
77
import java.util.Date;
88
import java.util.Set;
9+
10+
import org.apache.commons.lang3.StringUtils;
11+
912
import javax.persistence.Basic;
1013
import javax.persistence.Column;
11-
1214
import javax.persistence.ElementCollection;
1315
import javax.persistence.Entity;
1416
import javax.persistence.GeneratedValue;
@@ -26,7 +28,7 @@
2628
@Entity
2729
@Table(name="users", uniqueConstraints=@UniqueConstraint(columnNames={"email","apiKey"}))
2830
@NamedQueries ({
29-
@NamedQuery (name = "User.findAllUsers", query = "SELECT u FROM User u ORDER BY u.lastName"),
31+
@NamedQuery (name = "User.findAllUsers", query = "SELECT u FROM User u ORDER BY lower(u.lastName), lower(u.firstName)"),
3032
@NamedQuery (name = "User.findUser", query = "SELECT u FROM User u WHERE u.email=lower(:email)")
3133
})
3234
public class User implements Serializable {
@@ -95,6 +97,9 @@ public User(String email, String password, String apiKey, String confirmationCod
9597
@ElementCollection
9698
private Set<String> pendingRoles = null;
9799

100+
private transient String displayName;
101+
private transient String displayNameLastnameFirst;
102+
98103
/**
99104
* Do NOT output this on JSON Object requests.
100105
* @return the Password
@@ -397,4 +402,63 @@ public boolean hasRole(String role) {
397402
public boolean hasRoles() {
398403
return (null!=roles);
399404
}
405+
406+
/**
407+
* Get a User's full display name in "First Last" format.
408+
*/
409+
public String getDisplayName() {
410+
this.displayName = getFullName(false);
411+
return this.displayName;
412+
}
413+
414+
/**
415+
* Get a User's full display name in "Last, First" format.
416+
*/
417+
public String getDisplayNameLastnameFirst() {
418+
this.displayNameLastnameFirst = getFullName(true);
419+
return this.displayNameLastnameFirst;
420+
}
421+
422+
/**
423+
* Get a User's full display name from First/Last values.
424+
*
425+
* @param lastnameFirst the boolean that controls if Last Name should be listed
426+
* first
427+
*/
428+
private String getFullName(boolean lastnameFirst) {
429+
String fullName = "";
430+
431+
boolean hasFirstName = StringUtils.isNotBlank(getFirstName());
432+
boolean hasLastName = StringUtils.isNotBlank(getLastName());
433+
434+
String part1 = "";
435+
String part2 = "";
436+
437+
if (lastnameFirst) {
438+
if (hasLastName)
439+
part1 = getLastName().trim();
440+
if (hasFirstName)
441+
part2 = getFirstName().trim();
442+
} else {
443+
if (hasLastName)
444+
part2 = getLastName().trim();
445+
if (hasFirstName)
446+
part1 = getFirstName().trim();
447+
}
448+
449+
boolean hasPart1 = StringUtils.isNotBlank(part1);
450+
boolean hasPart2 = StringUtils.isNotBlank(part2);
451+
452+
fullName += part1;
453+
454+
if (lastnameFirst && hasPart1 && hasPart2)
455+
fullName += ",";
456+
457+
if (hasPart1 && hasPart2)
458+
fullName += " ";
459+
460+
fullName += part2;
461+
462+
return fullName;
463+
}
400464
}

src/main/java/gov/osti/services/UserServices.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,8 @@ public Response login(String object) {
325325
.put("email", user.getEmail())
326326
.put("first_name", user.getFirstName())
327327
.put("last_name", user.getLastName())
328+
.put("display_name", user.getDisplayName())
329+
.put("display_name_lastname_first", user.getDisplayNameLastnameFirst())
328330
.set("roles", mapper.valueToTree(user.getRoles())))
329331
.set("pending_roles", mapper.valueToTree(user.getPendingRoles()))
330332
.toString())
@@ -934,7 +936,9 @@ public Response editUser(String object) {
934936
.createObjectNode()
935937
.put("email", user.getEmail())
936938
.put("first_name", user.getFirstName())
937-
.put("last_name", user.getLastName()).toString())
939+
.put("last_name", user.getLastName())
940+
.put("display_name", user.getDisplayName())
941+
.put("display_name_lastname_first", user.getDisplayNameLastnameFirst()).toString())
938942
.build();
939943
} catch ( Exception e ) {
940944
if ( em.getTransaction().isActive())

0 commit comments

Comments
 (0)