CCM NG/ccm-core: Removed constraints for allowed characters in the name of a party

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4734 8810af33-2d31-482b-a856-94f89814c4df
pull/2/head
jensp 2017-05-14 17:45:45 +00:00
parent d713e0ef9b
commit 4692bd49f1
4 changed files with 40 additions and 8 deletions

View File

@ -92,7 +92,7 @@ public class Party implements Serializable {
*/
@Column(name = "NAME", length = 256, nullable = false)
@NotNull
@Pattern(regexp = "[a-zA-Z0-9\\-_]*")
// @Pattern(regexp = "[a-zA-Z0-9\\-_\\.]*")
private String name;
/**

View File

@ -74,14 +74,23 @@ import static org.libreccm.core.CoreConstants.DB_SCHEMA;
+ "ORDER BY u.name, "
+ " u.familyName, "
+ " u.givenName, "
+ " u.primaryEmailAddress.address"),
+ " u.primaryEmailAddress.address")
,
@NamedQuery(name = "User.countByName",
query = "SELECT COUNT(u) FROM User u WHERE u.name = :name")
,
@NamedQuery(name = "User.findByEmailAddress",
query = "SELECT u FROM User u WHERE "
+ "u.primaryEmailAddress.address = :emailAddress "
+ "ORDER BY u.name, "
+ " u.familyName, "
+ " u.givenName, "
+ " u.primaryEmailAddress.address"),
+ " u.primaryEmailAddress.address")
,
@NamedQuery(name = "User.countByPrimaryEmailAddress",
query = "SELECT COUNT(u) FROM User u "
+ "WHERE u.primaryEmailAddress.address = :emailAddress")
,
@NamedQuery(
name = "User.filterByNameAndEmail",
query = "SELECT u FROM User u WHERE "
@ -92,7 +101,8 @@ import static org.libreccm.core.CoreConstants.DB_SCHEMA;
+ "ORDER BY u.name,"
+ "u.familyName, "
+ "u.givenName, "
+ "u.primaryEmailAddress.address"),
+ "u.primaryEmailAddress.address")
,
@NamedQuery(
name = "User.findAllOrderedByUsername",
query = "SELECT u FROM User u ORDER BY u.name, "
@ -105,7 +115,8 @@ import static org.libreccm.core.CoreConstants.DB_SCHEMA;
name = "User.withGroupAndRoleMemberships",
attributeNodes = {
@NamedAttributeNode(
value = "groupMemberships"),
value = "groupMemberships")
,
@NamedAttributeNode(
value = "roleMemberships",
subgraph = "role")},
@ -115,7 +126,8 @@ import static org.libreccm.core.CoreConstants.DB_SCHEMA;
attributeNodes = {
@NamedAttributeNode(value = "role",
subgraph = "permissions")
}),
})
,
@NamedSubgraph(
name = "permissions",
attributeNodes = {

View File

@ -87,7 +87,7 @@ public class UserManager {
@Transactional(Transactional.TxType.REQUIRED)
public User createUser(final String givenName,
final String familyName,
@Pattern(regexp = "[a-zA-Z0-9\\-_]*")
// @Pattern(regexp = "[a-zA-Z0-9\\-_]*")
final String name,
final String emailAddress,
final String password) {

View File

@ -85,7 +85,7 @@ public class UserRepository extends AbstractEntityRepository<Long, User> {
.getEntityGraph(entityGraphName);
return findByName(name, entityGraph);
}
public Optional<User> findByName(final String name,
final EntityGraph<User> entityGraph) {
final TypedQuery<User> query = getEntityManager().createNamedQuery(
@ -96,6 +96,16 @@ public class UserRepository extends AbstractEntityRepository<Long, User> {
return getSingleResult(query);
}
public boolean isNameInUse(final String name) {
final TypedQuery<Long> query = getEntityManager()
.createNamedQuery("User.countByName", Long.class);
query.setParameter("name", name);
final Long result = query.getSingleResult();
return result > 0;
}
/**
* Finds user by the primary email address.
*
@ -131,6 +141,16 @@ public class UserRepository extends AbstractEntityRepository<Long, User> {
return getSingleResult(query);
}
public boolean isEmailAddressInUse(final String emailAddress) {
final TypedQuery<Long> query = getEntityManager()
.createNamedQuery("User.countByPrimaryEmailAddress", Long.class);
query.setParameter("emailAddress", emailAddress);
final Long result = query.getSingleResult();
return result > 0;
}
public List<User> filtered(final String term) {
final TypedQuery<User> query = getEntityManager().createNamedQuery(