]> SALOME platform Git repositories - modules/gde.git/blob - projects/GDE_App/GDE-war/src/java/com/edf/gde/services/UserService.java
Salome HOME
- Group management, final commit.
[modules/gde.git] / projects / GDE_App / GDE-war / src / java / com / edf / gde / services / UserService.java
1 package com.edf.gde.services;
2
3 import com.edf.gde.ejb.UserDAO;
4 import com.edf.gde.entities.Group;
5 import com.edf.gde.entities.User;
6 import com.edf.gde.transferables.CommandTO;
7 import com.edf.gde.transferables.GroupTO;
8 import com.edf.gde.transferables.LongListTO;
9 import com.edf.gde.transferables.UserTO;
10 import com.edf.gde.transferables.responses.CommandResultTO;
11 import javax.ejb.EJB;
12 import javax.servlet.http.HttpServletRequest;
13 import javax.servlet.http.HttpServletResponse;
14
15 /**
16  *
17  * @author Kavoos
18  */
19 public class UserService extends BaseService {
20
21     public static final int CREATEUSER = 1;
22     public static final int DELETEUSER = 2;
23     public static final int ADDTOGROUP = 3;
24     public static final int REMOVEFROMGROUP = 4;
25     public static final int CREATEGROUP = 5;
26     public static final int DELETEGROUP = 6;
27     public static final int FINDUSER = 7;
28     public static final int FINDGROUP = 8;
29
30     @EJB
31     UserDAO userDAO;
32
33     @Override
34     public void processRequest(HttpServletRequest request, HttpServletResponse response) {
35         CommandTO commandTO = getCommand(request);
36         CommandResultTO resultTO = new CommandResultTO();
37         try {
38             switch (commandTO.getMethod()) {
39                 case CREATEUSER: {
40                     UserTO userTO = createUser(fromJson(commandTO.getData(), UserTO.class));
41                     setResult(resultTO, userTO);
42                 }
43                 break;
44                 case DELETEUSER: {
45                     long userId = commandTO.getLong("id");
46                     CommandResultTO commandResultTO = new CommandResultTO();
47                     if (!deleteUser(userId)) {
48                         commandResultTO.setCode(CommandResultTO.ERROR);
49                     }
50                 }
51                 break;
52                 case CREATEGROUP: {
53                     String groupName = commandTO.getParameter("name");
54                     GroupTO groupTO = createGroup(groupName);
55                     setResult(resultTO, groupTO);
56                 }
57                 break;
58                 case REMOVEFROMGROUP: {
59                     long groupId = commandTO.getLong("groupId");
60                     long userId = commandTO.getLong("userId");
61                     userDAO.removeFromGroup(groupId, userId);
62                 }
63                 break;
64                 case FINDUSER: {
65                     String userName = commandTO.getString("username");
66                     UserTO userTO = findUser(userName);
67                     setResult(resultTO, userTO);
68                 }
69                 break;
70                 case FINDGROUP: {
71                     String groupName = commandTO.getString("groupname");
72                     setResult(resultTO, findGroup(groupName));
73                 }
74                 break;
75                 case DELETEGROUP: {
76                     long groupId = commandTO.getLong("id");
77                     userDAO.deleteGroup(groupId);
78                 }
79                 break;
80                 case ADDTOGROUP: {
81                     long groupId = commandTO.getLong("groupId");
82                     long userId = commandTO.getLong("userId");
83                     addToGroup(groupId, userId);
84                 }
85                 break;
86             }
87         } catch (RuntimeException ex) {
88             // Return error on any error...
89             resultTO.setCode(CommandResultTO.ERROR);
90             ex.printStackTrace();
91         } finally {
92             send(resultTO, response);
93         }
94     }
95
96     protected void setResult(CommandResultTO resultTO, Object data) {
97         resultTO.setData(toJson(data));
98     }
99
100     protected void addToGroup(long groupId, long userId) {
101         userDAO.addToGroup(groupId, userId);
102     }
103     
104     protected GroupTO createGroup(String groupName) {
105         Group group = userDAO.createGroup(groupName);
106         return group.toGroupTO();
107     }
108
109     protected UserTO createUser(UserTO userTO) {
110         User user = userDAO.createUser(userTO.getName(), userTO.getPassword());
111         return user.toUserTO();
112     }
113
114     protected boolean deleteUser(long userId) {
115         return userDAO.deleteUser(userId);
116     }
117
118     protected UserTO findUser(String userName) {
119         User user = userDAO.findUser(userName);
120         UserTO userTO = user.toUserTO();
121         userTO.setPassword(null);
122         return userTO;
123     }
124
125     protected GroupTO findGroup(String groupName) {
126         Group group = userDAO.findGroup(groupName);
127         return group.toGroupTO();
128     }
129     
130     protected boolean deleteGroup(long id) {
131         return userDAO.deleteGroup(id);
132     }
133 }