From 1098923689cb5711920281ed14a1c721d3a88598 Mon Sep 17 00:00:00 2001 From: Vishwas Babu A J Date: Thu, 26 Mar 2015 16:57:32 +0530 Subject: [PATCH] cleaning up MIFOSX-1868 --- api-docs/apiLive.htm | 6 ++--- ...SpringSecurityPlatformSecurityContext.java | 17 +++++++------ .../useradministration/data/AppUserData.java | 24 ++++++++++--------- .../useradministration/domain/AppUser.java | 21 ++++++++-------- .../service/AppUserConstants.java | 7 ++++++ .../AppUserReadPlatformServiceImpl.java | 10 ++++---- .../service/UserDataValidator.java | 7 +++--- ...__added_password_never_expired_to_User.sql | 1 - ...__added_password_never_expired_to_User.sql | 1 + 9 files changed, 53 insertions(+), 41 deletions(-) create mode 100644 mifosng-provider/src/main/java/org/mifosplatform/useradministration/service/AppUserConstants.java delete mode 100644 mifosng-provider/src/main/resources/sql/migrations/core_db/V206_6__added_password_never_expired_to_User.sql create mode 100644 mifosng-provider/src/main/resources/sql/migrations/core_db/V248__added_password_never_expired_to_User.sql diff --git a/api-docs/apiLive.htm b/api-docs/apiLive.htm index 821841e9d..b7ac7f749 100644 --- a/api-docs/apiLive.htm +++ b/api-docs/apiLive.htm @@ -30112,7 +30112,7 @@ GET https://DomainName/api/v1/users "firstname": "App", "lastname": "Administrator", "email": "demomfi@mifos.org", - "passwordNeverExpire": false, + "passwordNeverExpires": false, "staff": { "id": 1, "firstname": "Test", @@ -30204,7 +30204,7 @@ GET https://DomainName/api/v1/users/{userId} "firstname": "App", "lastname": "Administrator", "email": "demomfi@mifos.org", - "passwordNeverExpire": true, + "passwordNeverExpires": true, "staff": { "id": 1, "firstname": "Test", @@ -30254,7 +30254,7 @@ GET https://DomainName/api/v1/users/{userId}
Optional Fields
- staffId,passwordNeverExpire + staffId,passwordNeverExpires diff --git a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/security/service/SpringSecurityPlatformSecurityContext.java b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/security/service/SpringSecurityPlatformSecurityContext.java index 15a4f4f24..73988fe8f 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/security/service/SpringSecurityPlatformSecurityContext.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/security/service/SpringSecurityPlatformSecurityContext.java @@ -5,6 +5,11 @@ */ package org.mifosplatform.infrastructure.security.service; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + import org.mifosplatform.commands.domain.CommandWrapper; import org.mifosplatform.commands.service.CommandWrapperBuilder; import org.mifosplatform.infrastructure.configuration.domain.ConfigurationDomainService; @@ -13,19 +18,12 @@ import org.mifosplatform.infrastructure.security.exception.NoAuthorizationExcept import org.mifosplatform.infrastructure.security.exception.ResetPasswordException; import org.mifosplatform.useradministration.domain.AppUser; import org.mifosplatform.useradministration.exception.UnAuthenticatedUserException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.List; - /** * Wrapper around spring security's {@link SecurityContext} for extracted the * current authenticated {@link AppUser}. @@ -34,7 +32,8 @@ import java.util.List; @Service public class SpringSecurityPlatformSecurityContext implements PlatformSecurityContext { - private final static Logger logger = LoggerFactory.getLogger(SpringSecurityPlatformSecurityContext.class); + // private final static Logger logger = + // LoggerFactory.getLogger(SpringSecurityPlatformSecurityContext.class); private final ConfigurationDomainService configurationDomainService; @@ -128,7 +127,7 @@ public class SpringSecurityPlatformSecurityContext implements PlatformSecurityCo @Override public boolean doesPasswordHasToBeRenewed(AppUser currentUser) { - if (this.configurationDomainService.isPasswordForcedResetEnable() && !currentUser.getPasswordNeverExpire()) { + if (this.configurationDomainService.isPasswordForcedResetEnable() && !currentUser.getPasswordNeverExpires()) { Long passwordDurationDays = this.configurationDomainService.retrievePasswordLiveTime(); final Date passWordLastUpdateDate = currentUser.getLastTimePasswordUpdated(); diff --git a/mifosng-provider/src/main/java/org/mifosplatform/useradministration/data/AppUserData.java b/mifosng-provider/src/main/java/org/mifosplatform/useradministration/data/AppUserData.java index db6728be0..5c7f711d9 100755 --- a/mifosng-provider/src/main/java/org/mifosplatform/useradministration/data/AppUserData.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/useradministration/data/AppUserData.java @@ -5,11 +5,11 @@ */ package org.mifosplatform.useradministration.data; +import java.util.Collection; + import org.mifosplatform.organisation.office.data.OfficeData; import org.mifosplatform.organisation.staff.data.StaffData; -import java.util.Collection; - /** * Immutable data object for application user data. */ @@ -22,7 +22,7 @@ public class AppUserData { private final String firstname; private final String lastname; private final String email; - private final Boolean passwordNeverExpire; + private final Boolean passwordNeverExpires; @SuppressWarnings("unused") private final Collection allowedOffices; @@ -32,26 +32,28 @@ public class AppUserData { public static AppUserData template(final AppUserData user, final Collection officesForDropdown) { return new AppUserData(user.id, user.username, user.email, user.officeId, user.officeName, user.firstname, user.lastname, - user.availableRoles, user.selectedRoles, officesForDropdown, user.staff,user.passwordNeverExpire); + user.availableRoles, user.selectedRoles, officesForDropdown, user.staff, user.passwordNeverExpires); } public static AppUserData template(final Collection offices, final Collection availableRoles) { - return new AppUserData(null, null, null, null, null, null, null, availableRoles, null, offices, null,null); + return new AppUserData(null, null, null, null, null, null, null, availableRoles, null, offices, null, null); } public static AppUserData dropdown(final Long id, final String username) { - return new AppUserData(id, username, null, null, null, null, null, null, null, null, null,null); + return new AppUserData(id, username, null, null, null, null, null, null, null, null, null, null); } public static AppUserData instance(final Long id, final String username, final String email, final Long officeId, final String officeName, final String firstname, final String lastname, final Collection availableRoles, - final Collection selectedRoles, final StaffData staff,final Boolean passwordNeverExpire) { - return new AppUserData(id, username, email, officeId, officeName, firstname, lastname, availableRoles, selectedRoles, null, staff,passwordNeverExpire); + final Collection selectedRoles, final StaffData staff, final Boolean passwordNeverExpire) { + return new AppUserData(id, username, email, officeId, officeName, firstname, lastname, availableRoles, selectedRoles, null, staff, + passwordNeverExpire); } private AppUserData(final Long id, final String username, final String email, final Long officeId, final String officeName, - final String firstname, final String lastname, final Collection availableRoles, - final Collection selectedRoles, final Collection allowedOffices, final StaffData staff, final Boolean passwordNeverExpire) { + final String firstname, final String lastname, final Collection availableRoles, + final Collection selectedRoles, final Collection allowedOffices, final StaffData staff, + final Boolean passwordNeverExpire) { this.id = id; this.username = username; this.officeId = officeId; @@ -63,7 +65,7 @@ public class AppUserData { this.availableRoles = availableRoles; this.selectedRoles = selectedRoles; this.staff = staff; - this.passwordNeverExpire = passwordNeverExpire; + this.passwordNeverExpires = passwordNeverExpire; } public boolean hasIdentifyOf(final Long createdById) { diff --git a/mifosng-provider/src/main/java/org/mifosplatform/useradministration/domain/AppUser.java b/mifosng-provider/src/main/java/org/mifosplatform/useradministration/domain/AppUser.java index e932bc16d..ca5921947 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/useradministration/domain/AppUser.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/useradministration/domain/AppUser.java @@ -35,6 +35,7 @@ import org.mifosplatform.infrastructure.security.service.PlatformPasswordEncoder import org.mifosplatform.infrastructure.security.service.RandomPasswordGenerator; import org.mifosplatform.organisation.office.domain.Office; import org.mifosplatform.organisation.staff.domain.Staff; +import org.mifosplatform.useradministration.service.AppUserConstants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.jpa.domain.AbstractPersistable; @@ -97,8 +98,8 @@ public class AppUser extends AbstractPersistable implements PlatformUser { @Temporal(TemporalType.DATE) private Date lastTimePasswordUpdated; - @Column(name = "password_never_expire", nullable = false) - private boolean passwordNeverExpire; + @Column(name = "password_never_expires", nullable = false) + private boolean passwordNeverExpires; public static AppUser fromJson(final Office userOffice, final Staff linkedStaff, final Set allRoles, final JsonCommand command) { @@ -112,8 +113,8 @@ public class AppUser extends AbstractPersistable implements PlatformUser { boolean passwordNeverExpire = false; - if(command.parameterExists("passwordNeverExpire")){ - passwordNeverExpire = command.booleanPrimitiveValueOfParameterNamed("passwordNeverExpire"); + if (command.parameterExists(AppUserConstants.PASSWORD_NEVER_EXPIRES)) { + passwordNeverExpire = command.booleanPrimitiveValueOfParameterNamed(AppUserConstants.PASSWORD_NEVER_EXPIRES); } final boolean userEnabled = true; @@ -131,7 +132,7 @@ public class AppUser extends AbstractPersistable implements PlatformUser { final String firstname = command.stringValueOfParameterNamed("firstname"); final String lastname = command.stringValueOfParameterNamed("lastname"); - return new AppUser(userOffice, user, allRoles, email, firstname, lastname, linkedStaff,passwordNeverExpire); + return new AppUser(userOffice, user, allRoles, email, firstname, lastname, linkedStaff, passwordNeverExpire); } protected AppUser() { @@ -156,7 +157,7 @@ public class AppUser extends AbstractPersistable implements PlatformUser { this.firstTimeLoginRemaining = true; this.lastTimePasswordUpdated = DateUtils.getDateOfTenant(); this.staff = staff; - this.passwordNeverExpire = passwordNeverExpire; + this.passwordNeverExpires = passwordNeverExpire; } public EnumOptionData organisationalRoleData() { @@ -263,10 +264,10 @@ public class AppUser extends AbstractPersistable implements PlatformUser { final String passwordNeverExpire = "passwordNeverExpire"; if (command.hasParameter(passwordNeverExpire)) { - if (command.isChangeInBooleanParameterNamed(passwordNeverExpire, this.passwordNeverExpire)) { + if (command.isChangeInBooleanParameterNamed(passwordNeverExpire, this.passwordNeverExpires)) { final boolean newValue = command.booleanPrimitiveValueOfParameterNamed(passwordNeverExpire); actualChanges.put(passwordNeverExpire, newValue); - this.passwordNeverExpire = newValue; + this.passwordNeverExpires = newValue; } } @@ -371,8 +372,8 @@ public class AppUser extends AbstractPersistable implements PlatformUser { return this.staff; } - public boolean getPasswordNeverExpire() { - return this.passwordNeverExpire; + public boolean getPasswordNeverExpires() { + return this.passwordNeverExpires; } public Date getLastTimePasswordUpdated() { diff --git a/mifosng-provider/src/main/java/org/mifosplatform/useradministration/service/AppUserConstants.java b/mifosng-provider/src/main/java/org/mifosplatform/useradministration/service/AppUserConstants.java new file mode 100644 index 000000000..73982ebf2 --- /dev/null +++ b/mifosng-provider/src/main/java/org/mifosplatform/useradministration/service/AppUserConstants.java @@ -0,0 +1,7 @@ +package org.mifosplatform.useradministration.service; + +public class AppUserConstants { + + public static final String PASSWORD_NEVER_EXPIRES = "passwordNeverExpires"; + +} diff --git a/mifosng-provider/src/main/java/org/mifosplatform/useradministration/service/AppUserReadPlatformServiceImpl.java b/mifosng-provider/src/main/java/org/mifosplatform/useradministration/service/AppUserReadPlatformServiceImpl.java index 02ccf6ecb..c234832a1 100755 --- a/mifosng-provider/src/main/java/org/mifosplatform/useradministration/service/AppUserReadPlatformServiceImpl.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/useradministration/service/AppUserReadPlatformServiceImpl.java @@ -120,7 +120,8 @@ public class AppUserReadPlatformServiceImpl implements AppUserReadPlatformServic } return AppUserData.instance(user.getId(), user.getUsername(), user.getEmail(), user.getOffice().getId(), - user.getOffice().getName(), user.getFirstname(), user.getLastname(), availableRoles, selectedUserRoles, linkedStaff,user.getPasswordNeverExpire()); + user.getOffice().getName(), user.getFirstname(), user.getLastname(), availableRoles, selectedUserRoles, linkedStaff, + user.getPasswordNeverExpires()); } private static final class AppUserMapper implements RowMapper { @@ -144,7 +145,7 @@ public class AppUserReadPlatformServiceImpl implements AppUserReadPlatformServic final Long officeId = JdbcSupport.getLong(rs, "officeId"); final String officeName = rs.getString("officeName"); final Long staffId = JdbcSupport.getLong(rs, "staffId"); - final Boolean passwordNeverExpire = rs.getBoolean("passwordNeverExpire"); + final Boolean passwordNeverExpire = rs.getBoolean("passwordNeverExpires"); final Collection selectedRoles = this.roleReadPlatformService.retrieveAppUserRoles(id); final StaffData linkedStaff; @@ -153,11 +154,12 @@ public class AppUserReadPlatformServiceImpl implements AppUserReadPlatformServic } else { linkedStaff = null; } - return AppUserData.instance(id, username, email, officeId, officeName, firstname, lastname, null, selectedRoles, linkedStaff,passwordNeverExpire); + return AppUserData.instance(id, username, email, officeId, officeName, firstname, lastname, null, selectedRoles, linkedStaff, + passwordNeverExpire); } public String schema() { - return " u.id as id, u.username as username, u.firstname as firstname, u.lastname as lastname, u.email as email, u.password_never_expire as passwordNeverExpire, " + return " u.id as id, u.username as username, u.firstname as firstname, u.lastname as lastname, u.email as email, u.password_never_expires as passwordNeverExpires, " + " u.office_id as officeId, o.name as officeName, u.staff_id as staffId from m_appuser u " + " join m_office o on o.id = u.office_id where o.hierarchy like ? and u.is_deleted=0 order by u.username"; } diff --git a/mifosng-provider/src/main/java/org/mifosplatform/useradministration/service/UserDataValidator.java b/mifosng-provider/src/main/java/org/mifosplatform/useradministration/service/UserDataValidator.java index b2315be3c..c7de11a61 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/useradministration/service/UserDataValidator.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/useradministration/service/UserDataValidator.java @@ -32,7 +32,7 @@ public final class UserDataValidator { * The parameters supported for this command. */ private final Set supportedParameters = new HashSet<>(Arrays.asList("username", "firstname", "lastname", "password", - "repeatPassword", "email", "officeId", "notSelectedRoles", "roles", "sendPasswordToEmail", "staffId","passwordNeverExpire")); + "repeatPassword", "email", "officeId", "notSelectedRoles", "roles", "sendPasswordToEmail", "staffId", "passwordNeverExpires")); private final FromJsonHelper fromApiJsonHelper; @@ -86,8 +86,9 @@ public final class UserDataValidator { baseDataValidator.reset().parameter("staffId").value(staffId).notNull().integerGreaterThanZero(); } - if (this.fromApiJsonHelper.parameterExists("passwordNeverExpire", element)) { - final boolean passwordNeverExpire = this.fromApiJsonHelper.extractBooleanNamed("passwordNeverExpire", element); + if (this.fromApiJsonHelper.parameterExists(AppUserConstants.PASSWORD_NEVER_EXPIRES, element)) { + final boolean passwordNeverExpire = this.fromApiJsonHelper + .extractBooleanNamed(AppUserConstants.PASSWORD_NEVER_EXPIRES, element); baseDataValidator.reset().parameter("passwordNeverExpire").value(passwordNeverExpire).validateForBooleanValue(); } diff --git a/mifosng-provider/src/main/resources/sql/migrations/core_db/V206_6__added_password_never_expired_to_User.sql b/mifosng-provider/src/main/resources/sql/migrations/core_db/V206_6__added_password_never_expired_to_User.sql deleted file mode 100644 index 5d9803faa..000000000 --- a/mifosng-provider/src/main/resources/sql/migrations/core_db/V206_6__added_password_never_expired_to_User.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE `m_appuser` ADD `password_never_expire` TINYINT NOT NULL DEFAULT '0' COMMENT 'define if the password, should be check for validity period or not'; \ No newline at end of file diff --git a/mifosng-provider/src/main/resources/sql/migrations/core_db/V248__added_password_never_expired_to_User.sql b/mifosng-provider/src/main/resources/sql/migrations/core_db/V248__added_password_never_expired_to_User.sql new file mode 100644 index 000000000..4e2101987 --- /dev/null +++ b/mifosng-provider/src/main/resources/sql/migrations/core_db/V248__added_password_never_expired_to_User.sql @@ -0,0 +1 @@ +ALTER TABLE `m_appuser` ADD `password_never_expires` TINYINT NOT NULL DEFAULT '0' COMMENT 'define if the password, should be check for validity period or not'; \ No newline at end of file