
br.com.jhonsapp.finaluser.service.AbstractPersonUserService Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of final-user Show documentation
Show all versions of final-user Show documentation
A bunch of classes that help developers building login and authentication.
The newest version!
package br.com.jhonsapp.finaluser.service;
import br.com.jhonsapp.finaluser.domain.PersonUser;
import br.com.jhonsapp.finaluser.domain.User;
import br.com.jhonsapp.finaluser.encryption.Encryption;
import br.com.jhonsapp.finaluser.encryption.EncryptionBCrypt;
import br.com.jhonsapp.finaluser.persistence.PersonUserDAO;
/**
* {@link AbstractPersonUserService} is a subclass of {@link AbstractUserService} and an
* abstract implementation of {@link PersonUserService}
*
* @see PersonUser
*
* @author Jhonathan Camacho
* @author Jhonys Camacho
*
*/
public abstract class AbstractPersonUserService extends AbstractUserService implements PersonUserService {
private static final long serialVersionUID = -8415495419626093975L;
private Encryption encryption = EncryptionBCrypt.getInstance();
@Override
protected abstract PersonUserDAO getDAO();
@Override
public boolean hasStateInvalid(T user) {
return !isPasswordValid(user.getPassword());
}
@Override
public boolean isUnique(T user) {
User userSearch = findUser(user.getEmail());
if (userSearch != null && userSearch.getId() != user.getId()) {
return false;
} else {
return true;
}
}
@Override
protected void preSaveOrUpdate(T user) {
if (user.getPassword().length() < 50) {
user.setPassword(encryption.encrypt(user.getPassword()));
}
}
@Override
public boolean hasObject(T user) {
return findUser(user.getEmail()) != null;
}
@Override
public boolean isPasswordValid(String password) {
return password != null && password.trim().length() >= 8;
}
@Override
public String findAndroidToken(String email) {
return getDAO().findByEmail(email).getAndroidToken();
}
@Override
public T findUser(String email) {
return getDAO().findByEmail(email);
}
@Override
public boolean validateLogin(String email, String password) {
return getDAO().canLogin(email.trim(), encryption.encrypt(password));
}
@Override
public boolean canResetUserPassword(String email, String token) {
PersonUser user = findUser(email);
if(user != null && user.getResetPasswordCode().equals(token)){
return true;
}else{
return false;
}
}
@Override
public void resetPassword(T user) {
if(user.isResetPasswordCodeEmpty())
throw new IllegalStateException("The token can not be empty.");
user.clearResetPasswordCode();
saveOrUpdate(user);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy