Skip to content

Commit d430249

Browse files
committed
unused (unneeded?) framework for checking existing email addresses - currently done after trying to save new user
1 parent fa183c8 commit d430249

File tree

2 files changed

+33
-2
lines changed

2 files changed

+33
-2
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
2+
package life.qbic.userdb.helpers;
3+
4+
import java.util.Set;
5+
import java.util.stream.Collectors;
6+
import com.vaadin.data.Validator;
7+
8+
public class EmailFreeValidator implements Validator {
9+
10+
Set<String> emailAddresses;
11+
12+
public EmailFreeValidator(Set<String> emailAddresses) {
13+
this.emailAddresses =
14+
emailAddresses.stream().map(String::toLowerCase).collect(Collectors.toSet());
15+
}
16+
17+
@Override
18+
public void validate(Object value) throws InvalidValueException {
19+
String val = (String) value;
20+
if (emailAddresses.contains(val.toLowerCase())) {
21+
throw new InvalidValueException("A person with this e-mail address already exists.");
22+
}
23+
}
24+
}

src/main/java/life/qbic/userdb/views/PersonInput.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import java.util.List;
1919
import java.util.Map;
20+
import java.util.Set;
2021
import com.vaadin.data.Property.ValueChangeEvent;
2122
import com.vaadin.data.Property.ValueChangeListener;
2223
import com.vaadin.data.Validator;
@@ -32,9 +33,11 @@
3233
import com.vaadin.ui.HorizontalLayout;
3334
import com.vaadin.ui.TextField;
3435
import com.vaadin.ui.themes.ValoTheme;
36+
import ch.systemsx.cisd.common.collection.RegExValidator;
3537
import life.qbic.datamodel.persons.Affiliation;
3638
import life.qbic.datamodel.persons.Person;
3739
import life.qbic.portal.Styles;
40+
import life.qbic.userdb.helpers.EmailFreeValidator;
3841
import life.qbic.userdb.helpers.RegExHelper;
3942

4043
public class PersonInput extends HorizontalLayout {
@@ -99,10 +102,14 @@ public PersonInput(List<String> titles, Map<String, Integer> affiliations, List<
99102
last.setRequired(true);
100103
left.addComponent(last);
101104

102-
Validator mailValidator = new RegexpValidator(RegExHelper.VALID_EMAIL_ADDRESS_REGEX,
105+
// CompositeValidator mailValidator = new CompositeValidator(CombinationMode.AND, "");
106+
RegexpValidator mailRegExVal = new RegexpValidator(RegExHelper.VALID_EMAIL_ADDRESS_REGEX,
103107
"Please input a valid e-mail address.");
108+
// mailValidator.addValidator(mailRegExVal);
109+
// mailValidator.addValidator(new EmailFreeValidator(existingEmails));
110+
104111
eMail =
105-
prepSizeValidationForTextField("E-Mail", colNamesToMaxLength.get("email"), mailValidator);
112+
prepSizeValidationForTextField("E-Mail", colNamesToMaxLength.get("email"), mailRegExVal);
106113
eMail.setRequired(true);
107114
left.addComponent(eMail);
108115

0 commit comments

Comments
 (0)