KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > manentia > kasai > user > UserHandler


1 /*
2  * UserHandler.java
3  *
4  * Created on June 22, 2004, 5:44 PM
5  */

6
7 package org.manentia.kasai.user;
8
9 import com.koala.commons.log.Log;
10 import java.util.Collection JavaDoc;
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 /**
18  *
19  * @author rzuasti
20  */

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 JavaDoc login, String JavaDoc 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 JavaDoc login, String JavaDoc operative, String JavaDoc object) {
76         return UserDAOFactory.getInstance().createDAO().checkOperative(login, operative, object);
77     }
78     
79     public void create(String JavaDoc login, String JavaDoc firstName, String JavaDoc lastName,
80         String JavaDoc email, boolean blocked, String JavaDoc description, boolean superUser, String JavaDoc password) throws InvalidAttributesException, AlreadyExistsException, DataAccessException, ServiceNotAvailableException, ServiceException, InvalidPasswordException {
81     
82         UserDAOFactory.getInstance().createDAO().create(login, firstName, lastName, email, blocked, description, superUser);
83         
84         // Assign the user a new password
85
User user = UserDAOFactory.getInstance().createDAO().read(login, true);
86         user.overridePassword(password);
87     }
88     
89     public void create(String JavaDoc login, String JavaDoc firstName, String JavaDoc lastName,
90         String JavaDoc email, boolean blocked, String JavaDoc description, boolean superUser) throws InvalidAttributesException, AlreadyExistsException, DataAccessException, ServiceNotAvailableException, ServiceException {
91     
92         UserDAOFactory.getInstance().createDAO().create(login, firstName, lastName, email, blocked, description, superUser);
93         
94         // Assign the user a new password
95
User user = UserDAOFactory.getInstance().createDAO().read(login, true);
96         user.resetPassword();
97     }
98     
99     public void create (String JavaDoc login, String JavaDoc firstName, String JavaDoc lastName,
100         String JavaDoc email, boolean blocked, String JavaDoc description) throws InvalidAttributesException, AlreadyExistsException, DataAccessException, ServiceNotAvailableException, ServiceException {
101     
102         UserDAOFactory.getInstance().createDAO().create(login, firstName, lastName, email, blocked, description);
103         
104         // Assign the user a new password
105
User user = UserDAOFactory.getInstance().createDAO().read(login, true);
106         user.resetPassword();
107     }
108     
109     public void delete(String JavaDoc login) throws DataAccessException {
110         UserDAOFactory.getInstance().createDAO().delete(login);
111     }
112     
113     public Collection JavaDoc list(String JavaDoc login, String JavaDoc firstName, String JavaDoc lastName,
114         String JavaDoc email, int blocked, String JavaDoc description, String JavaDoc group) throws DataAccessException {
115     
116         return UserDAOFactory.getInstance().createDAO().list(login, firstName, lastName, email, blocked, description, group);
117     }
118     
119     public User read(String JavaDoc login, boolean cache) throws DataAccessException {
120         return UserDAOFactory.getInstance().createDAO().read(login, cache);
121     }
122     
123     public void update(String JavaDoc login, String JavaDoc firstName, String JavaDoc lastName,
124         String JavaDoc email, boolean blocked, String JavaDoc 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 JavaDoc login, String JavaDoc firstName, String JavaDoc lastName,
130         String JavaDoc email, boolean blocked, String JavaDoc description) throws InvalidAttributesException, DataAccessException {
131     
132         UserDAOFactory.getInstance().createDAO().update(login, firstName, lastName, email, blocked, description);
133     }
134 }
135
Popular Tags