Skip to content

Commit

Permalink
replace option adhesion.phoneNumberPrefixToRemove with adhesion.displ…
Browse files Browse the repository at this point in the history
…ayFrenchPhoneNumber + adhesion.storeFrenchPhoneNumber
  • Loading branch information
prigaux committed Feb 2, 2017
1 parent 83f85c4 commit d676dea
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 17 deletions.
39 changes: 25 additions & 14 deletions src/main/java/org/esupportail/smsu/business/MemberManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,9 @@ public class MemberManager {
*/
private String titleSmsValidation;

/**
* a prefix to remove.
*/
private String phoneNumberPrefixToRemove = "";

private boolean displayFrenchPhoneNumber = true;
private boolean storeFrenchPhoneNumber = true;

private final Logger logger = Logger.getLogger(getClass());

///////////////////////////////////////
Expand Down Expand Up @@ -152,6 +150,7 @@ private void sendCodeBySMSAndAddPendingMember(final Member member) throws HttpEx
private boolean savePhoneNumber(final Member member) throws LdapUserNotFoundException, LdapWriteException {
String login = member.getLogin();
String wanted = member.getPhoneNumber();
if (!storeFrenchPhoneNumber) wanted = fromFrenchPhoneNumber(wanted);
String previous = ldapUtils.getUserPagerByUid(login);
boolean hasChanged = previous == null || !previous.equals(wanted);

Expand Down Expand Up @@ -183,20 +182,26 @@ public Member getMember(final String userIdentifier) throws LdapUserNotFoundExce
member.firstName = ldapUtils.getUserFirstNameByUid(userIdentifier);
member.lastName = ldapUtils.getUserLastNameByUid(userIdentifier);
member.phoneNumber = ldapUtils.getUserPagerByUid(userIdentifier);
if (displayFrenchPhoneNumber) member.phoneNumber = toFrenchPhoneNumber(member.phoneNumber);
member.validCP = ldapUtils.getSpecificConditionsValidateByUid(userIdentifier);
member.flagPending = activateValidation && daoService.isPendingMember(userIdentifier);
member.validCG = member.flagPending || ldapUtils.isGeneralConditionValidateByUid(userIdentifier);
member.phoneNumberValidationCode = null;
return member;
}

private String normalizePhoneNumber(String phoneNumber) {
String s = phoneNumber.replaceAll(" ", "");
if (!phoneNumberPrefixToRemove.equals("")) {
logger.debug("phone Number Prefix To Remove " + phoneNumberPrefixToRemove);
s = s.replaceAll(phoneNumberPrefixToRemove, "0");
}
return s;
public String toFrenchPhoneNumber(String phoneNumber) {
String s = phoneNumber.replaceAll(" ", "");
s = s.replaceAll("^\\+33", "0");
return s;
}

public String fromFrenchPhoneNumber(String phoneNumber) {
String s = phoneNumber.replaceAll(" ", "");
if (s.matches("^0[1-9]\\d{8}")) {
s = s .replaceAll("\\d\\d", " $0").replaceAll("^ 0", "+33 ");
}
return s;
}

/**
Expand Down Expand Up @@ -317,9 +322,15 @@ public void setTitleSmsValidation(final String titleSmsValidation) {
this.titleSmsValidation = titleSmsValidation;
}

@Required
@Deprecated
public void setPhoneNumberPrefixToRemove(final String phoneNumberPrefixToRemove) {
this.phoneNumberPrefixToRemove = phoneNumberPrefixToRemove;
}

public void setStoreFrenchPhoneNumber(final Boolean storeFrenchPhoneNumber) {
this.storeFrenchPhoneNumber = storeFrenchPhoneNumber;
}
public void setDisplayFrenchPhoneNumber(final Boolean displayFrenchPhoneNumber) {
this.displayFrenchPhoneNumber = displayFrenchPhoneNumber;
}

@Required
Expand Down
3 changes: 2 additions & 1 deletion src/main/resources/properties/business/business.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@
<property name="titleSmsValidation">
<value type="java.lang.String">${adhesion.titleSmsValidation}</value>
</property>
<property name="phoneNumberPrefixToRemove" value="${adhesion.phoneNumberPrefixToRemove}"/>
<property name="displayFrenchPhoneNumber" value="${adhesion.displayFrenchPhoneNumber}"/>
<property name="storeFrenchPhoneNumber" value="${adhesion.storeFrenchPhoneNumber}"/>
</bean>

<bean id="sendSmsManager"
Expand Down
4 changes: 2 additions & 2 deletions src/main/resources/properties/config.sample.properties
Original file line number Diff line number Diff line change
Expand Up @@ -109,8 +109,8 @@ adhesion.maxNumberCodeValidation=100000
adhesion.accountValidation=[compte_de_validation]
adhesion.roleValidation=[role_compte_validation]
adhesion.titleSmsValidation=[Titre_SMS_validation]
adhesion.phoneNumberPrefixToRemove=\\+33

adhesion.displayFrenchPhoneNumber=true
adhesion.storeFrenchPhoneNumber=true

recipient.phoneNumberPattern=(06|07)[0-9]{8}

Expand Down
22 changes: 22 additions & 0 deletions src/test/java/org/esupportail/smsu/business/MemberManagerTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package org.esupportail.smsu.business;

import static org.junit.Assert.*;

import java.io.IOException;
import org.junit.Test;

public class MemberManagerTest {

@Test
public void test_phoneNumberFormats() throws IOException {
MemberManager m = new MemberManager();

assertEquals("0601020304", m.toFrenchPhoneNumber("+33 6 01 02 03 04"));
assertEquals("0601020304", m.toFrenchPhoneNumber("+33601020304"));
assertEquals("+33 6 01 02 03 04", m.fromFrenchPhoneNumber("06 01 02 03 04"));
assertEquals("+33 6 01 02 03 04", m.fromFrenchPhoneNumber("0601020304"));
assertEquals("+33 6 01 22 23 33", m.fromFrenchPhoneNumber("06 01 222 333"));
}

}

0 comments on commit d676dea

Please sign in to comment.