package fr.openwide.core.basicapp.core.security.service; import fr.openwide.core.basicapp.core.business.user.model.User; import fr.openwide.core.basicapp.core.business.user.model.atomic.UserPasswordRecoveryRequestInitiator; import fr.openwide.core.basicapp.core.business.user.model.atomic.UserPasswordRecoveryRequestType; import fr.openwide.core.basicapp.core.security.model.SecurityOptions; import fr.openwide.core.jpa.business.generic.service.ITransactionalAspectAwareService; import fr.openwide.core.jpa.exception.SecurityServiceException; import fr.openwide.core.jpa.exception.ServiceException; public interface ISecurityManagementService extends ITransactionalAspectAwareService { SecurityOptions getOptions(Class<? extends User> clazz); SecurityOptions getOptions(User user); void initiatePasswordRecoveryRequest(User user, UserPasswordRecoveryRequestType type, UserPasswordRecoveryRequestInitiator initiator) throws ServiceException, SecurityServiceException; void initiatePasswordRecoveryRequest(User user, UserPasswordRecoveryRequestType type, UserPasswordRecoveryRequestInitiator initiator, User author) throws ServiceException, SecurityServiceException; boolean isPasswordExpired(User user); boolean isPasswordRecoveryRequestExpired(User user); void updatePassword(User user, String password) throws ServiceException, SecurityServiceException; void updatePassword(User user, String password, User author) throws ServiceException, SecurityServiceException; }