1 6 7 package org.manentia.kasai.user; 8 9 import com.koala.commons.log.Log; 10 import java.util.Collection ; 11 import org.apache.commons.lang.StringUtils; 12 import org.manentia.kasai.KasaiFacade; 13 import org.manentia.kasai.util.Constants; 14 import org.manentia.kasai.User; 15 import org.manentia.kasai.exceptions.*; 16 17 21 public class UserHandler { 22 private static UserHandler instance; 23 24 private UserHandler(){} 25 26 public static synchronized UserHandler getInstance(){ 27 if (instance == null){ 28 instance = new UserHandler(); 29 } 30 31 return instance; 32 } 33 34 public void checkPassword(String login, String password) throws DataAccessException, NotFoundException, 35 UserBlockedException, ServiceNotAvailableException, ServiceException, InvalidPasswordException { 36 37 User user = null; 38 int result = User.AUTH_BAD_USERNAME; 39 40 Log.getInstance(Constants.PROPERTY_FILE).write(UserHandler.class.getName(), "checkPassword", 41 "Enter (login=" + StringUtils.defaultString(login, "<null>") + 42 ", password=" + ((password==null) ? "<null>" : "******" ) + ")" 43 , java.util.logging.Level.INFO); 44 45 user = this.read(login, true); 46 47 if (user == null) { 48 Log.getInstance(Constants.PROPERTY_FILE).write(UserHandler.class.getName(), 49 "checkPassword", "User doesn't exist", java.util.logging.Level.INFO); 50 51 throw new NotFoundException(KasaiFacade.class.getName() + ".userPasswordInvalid"); 52 } 53 54 if (user.getBlocked()) { 55 Log.getInstance(Constants.PROPERTY_FILE).write(UserHandler.class.getName(), 56 "checkPassword", "User " + login + " is blocked", java.util.logging.Level.INFO); 57 58 throw new UserBlockedException(KasaiFacade.class.getName() + ".userLocked"); 59 } 60 61 result = user.checkPassword(password); 62 63 64 if (result != User.AUTH_OK) { 65 Log.getInstance(Constants.PROPERTY_FILE).write(UserHandler.class.getName(), 66 "checkPassword", "Wrong password", java.util.logging.Level.INFO); 67 68 throw new InvalidPasswordException(KasaiFacade.class.getName() + ".userPasswordInvalid"); 69 } 70 71 Log.getInstance(Constants.PROPERTY_FILE).write(UserHandler.class.getName(), "checkPassword", 72 "Exit", java.util.logging.Level.INFO); 73 } 74 75 public boolean checkOperative(String login, String operative, String object) { 76 return UserDAOFactory.getInstance().createDAO().checkOperative(login, operative, object); 77 } 78 79 public void create(String login, String firstName, String lastName, 80 String email, boolean blocked, String description, boolean superUser, String password) throws InvalidAttributesException, AlreadyExistsException, DataAccessException, ServiceNotAvailableException, ServiceException, InvalidPasswordException { 81 82 UserDAOFactory.getInstance().createDAO().create(login, firstName, lastName, email, blocked, description, superUser); 83 84 User user = UserDAOFactory.getInstance().createDAO().read(login, true); 86 user.overridePassword(password); 87 } 88 89 public void create(String login, String firstName, String lastName, 90 String email, boolean blocked, String description, boolean superUser) throws InvalidAttributesException, AlreadyExistsException, DataAccessException, ServiceNotAvailableException, ServiceException { 91 92 UserDAOFactory.getInstance().createDAO().create(login, firstName, lastName, email, blocked, description, superUser); 93 94 User user = UserDAOFactory.getInstance().createDAO().read(login, true); 96 user.resetPassword(); 97 } 98 99 public void create (String login, String firstName, String lastName, 100 String email, boolean blocked, String description) throws InvalidAttributesException, AlreadyExistsException, DataAccessException, ServiceNotAvailableException, ServiceException { 101 102 UserDAOFactory.getInstance().createDAO().create(login, firstName, lastName, email, blocked, description); 103 104 User user = UserDAOFactory.getInstance().createDAO().read(login, true); 106 user.resetPassword(); 107 } 108 109 public void delete(String login) throws DataAccessException { 110 UserDAOFactory.getInstance().createDAO().delete(login); 111 } 112 113 public Collection list(String login, String firstName, String lastName, 114 String email, int blocked, String description, String group) throws DataAccessException { 115 116 return UserDAOFactory.getInstance().createDAO().list(login, firstName, lastName, email, blocked, description, group); 117 } 118 119 public User read(String login, boolean cache) throws DataAccessException { 120 return UserDAOFactory.getInstance().createDAO().read(login, cache); 121 } 122 123 public void update(String login, String firstName, String lastName, 124 String email, boolean blocked, String description, boolean superUser) throws InvalidAttributesException,DataAccessException { 125 126 UserDAOFactory.getInstance().createDAO().update(login, firstName, lastName, email, blocked, description, superUser); 127 } 128 129 public void update(String login, String firstName, String lastName, 130 String email, boolean blocked, String description) throws InvalidAttributesException, DataAccessException { 131 132 UserDAOFactory.getInstance().createDAO().update(login, firstName, lastName, email, blocked, description); 133 } 134 } 135
| Popular Tags
|