Author: michiel
Date: 2010-05-26 10:26:41 +0200 (Wed, 26 May 2010)
New Revision: 42269
Modified:
mmbase/branches/MMBase-1_9/applications/email/src/main/java/org/mmbase/datatypes/InternetAddressDataType.java
Log:
added a way to set the enforce strenght of this restriction
Modified:
mmbase/branches/MMBase-1_9/applications/email/src/main/java/org/mmbase/datatypes/InternetAddressDataType.java
===================================================================
---
mmbase/branches/MMBase-1_9/applications/email/src/main/java/org/mmbase/datatypes/InternetAddressDataType.java
2010-05-26 08:22:59 UTC (rev 42268)
+++
mmbase/branches/MMBase-1_9/applications/email/src/main/java/org/mmbase/datatypes/InternetAddressDataType.java
2010-05-26 08:26:41 UTC (rev 42269)
@@ -40,7 +40,7 @@
super(name);
}
- protected Collection/*<LocalizedString>*/
validateCastValue(Collection/*<LocalizedString>*/ errors, Object castValue,
Object value, Node node, Field field) {
+ protected Collection<LocalizedString>
validateCastValue(Collection<LocalizedString> errors, Object castValue, Object
value, Node node, Field field) {
log.debug("Validating " + value);
errors = super.validateCastValue(errors, castValue, value, node,
field);
if (value == null) return errors;
@@ -73,7 +73,11 @@
restriction.setLocal(Boolean.valueOf(l));
}
- class InternetAddressRestriction extends AbstractRestriction/*<Integer>*/ {
+ public void setRestrictionEnforceStrength(String ef) {
+ restriction.setEnforceStrength(DataTypes.getEnforceStrength(ef));
+ }
+
+ class InternetAddressRestriction extends AbstractRestriction<Integer> {
protected boolean local = false;
InternetAddressRestriction(InternetAddressRestriction source) {
super(source);
@@ -112,10 +116,15 @@
if (log.isDebugEnabled()) {
log.debug("Found " + Arrays.asList(ia) + " this is valid
if " + ia.length + " <= " + value);
}
- if (! local) {
- for (InternetAddress a : ia) {
- if (a.getAddress().indexOf("@") == -1) { // not
entirely sure that this is absolutely correct
- log.debug("Local addresses not allowed");
+ for (InternetAddress a : ia) {
+ if (!local) {
+ a.validate();
+ String ad = a.getAddress();
+ int lastAt = ad.lastIndexOf('@');
+ String[] domain = ad.substring(lastAt +
1).split("\\.");
+ log.debug("Domain" + Arrays.asList(domain));
+ if (domain.length < 2) {
+ log.debug("Too short domain for " + ad);
return false;
}
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs