/** * */ package net.agef.jobexchange.application; import net.agef.jobexchange.domain.LoginUser; import net.agef.jobexchange.exceptions.LoginUserNotFoundException; import net.agef.jobexchange.exceptions.ObjectNotDeletedException; import net.agef.jobexchange.exceptions.ObjectNotSavedException; import net.agef.jobexchange.exceptions.PassedAttributeIsNullException; import net.agef.jobexchange.integration.LoginUserDAO; import nu.localhost.tapestry5.springsecurity.services.LogoutService; import org.apache.tapestry5.annotations.OnEvent; import org.slf4j.Logger; import org.springframework.security.Authentication; import org.springframework.security.context.SecurityContextHolder; /** * @author AGEF * */ public class LoginUserWorkerHandler implements LoginUserWorker{ private Logger logger; private LoginUserDAO loginUserDAO; private LogoutService logoutService; public LoginUserWorkerHandler(LoginUserDAO loginUserDAO, LogoutService logoutService, Logger logger){ this.logger = logger; this.loginUserDAO = loginUserDAO; this.logoutService = logoutService; } public void addLoginUser(LoginUser user) throws ObjectNotSavedException, PassedAttributeIsNullException{ if (user != null) { try { loginUserDAO.doSave(user); } catch (Exception e) { e.printStackTrace(); throw new ObjectNotSavedException(); } } else throw new PassedAttributeIsNullException(); } public void deleteJobOffer(Long loginUserId) throws ObjectNotDeletedException, PassedAttributeIsNullException{ if (loginUserId != null) { try { loginUserDAO.doDelete(loginUserId); } catch (Exception e) { throw new ObjectNotDeletedException(); } }else throw new PassedAttributeIsNullException(); } public LoginUser getUserByName(String userName) throws LoginUserNotFoundException{ LoginUser user = loginUserDAO.findLoginUserByName(userName); if(user!=null){ return user; } else throw new LoginUserNotFoundException(userName); } public LoginUser getLoggedInUser() throws LoginUserNotFoundException{ Authentication myAuth = SecurityContextHolder.getContext().getAuthentication(); System.out.println("Username :"+ myAuth.getName()); LoginUser user = this.getUserByName(myAuth.getName()); return user; } public Boolean isLoggedInUser(){ Authentication myAuth = SecurityContextHolder.getContext().getAuthentication(); return (myAuth!=null) || (myAuth.isAuthenticated() && !myAuth.getName().equals("anonymous")); } public String getLoggedInUserName(){ Authentication myAuth = SecurityContextHolder.getContext().getAuthentication(); if((myAuth!=null) || (myAuth.isAuthenticated() && !myAuth.getName().equals("anonymous"))){ return myAuth.getName(); } return null; } @OnEvent(component = "logout") public void logoutUser() { logoutService.logout(); } }