root / src / gr / ebs / gss / server / admin / AdminServiceImpl.java @ 0a37ac21
History | View | Annotate | Download (5.7 kB)
1 | 0a37ac21 | koutsoub | /*
|
---|---|---|---|
2 | 0a37ac21 | koutsoub | * Copyright 2010 Electronic Business Systems Ltd.
|
3 | 0a37ac21 | koutsoub | *
|
4 | 0a37ac21 | koutsoub | * This file is part of GSS.
|
5 | 0a37ac21 | koutsoub | *
|
6 | 0a37ac21 | koutsoub | * GSS is free software: you can redistribute it and/or modify
|
7 | 0a37ac21 | koutsoub | * it under the terms of the GNU General Public License as published by
|
8 | 0a37ac21 | koutsoub | * the Free Software Foundation, either version 3 of the License, or
|
9 | 0a37ac21 | koutsoub | * (at your option) any later version.
|
10 | 0a37ac21 | koutsoub | *
|
11 | 0a37ac21 | koutsoub | * GSS is distributed in the hope that it will be useful,
|
12 | 0a37ac21 | koutsoub | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13 | 0a37ac21 | koutsoub | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14 | 0a37ac21 | koutsoub | * GNU General Public License for more details.
|
15 | 0a37ac21 | koutsoub | *
|
16 | 0a37ac21 | koutsoub | * You should have received a copy of the GNU General Public License
|
17 | 0a37ac21 | koutsoub | * along with GSS. If not, see <http://www.gnu.org/licenses/>.
|
18 | 0a37ac21 | koutsoub | */
|
19 | 0a37ac21 | koutsoub | package gr.ebs.gss.server.admin; |
20 | 0a37ac21 | koutsoub | |
21 | 0a37ac21 | koutsoub | import static gr.ebs.gss.server.configuration.GSSConfigurationFactory.getConfiguration; |
22 | 0a37ac21 | koutsoub | import gr.ebs.gss.admin.client.AdminService; |
23 | 0a37ac21 | koutsoub | import gr.ebs.gss.client.exceptions.InsufficientPermissionsException; |
24 | 0a37ac21 | koutsoub | import gr.ebs.gss.client.exceptions.ObjectNotFoundException; |
25 | 0a37ac21 | koutsoub | import gr.ebs.gss.client.exceptions.RpcException; |
26 | 0a37ac21 | koutsoub | import gr.ebs.gss.server.configuration.GSSConfigurationFactory; |
27 | 0a37ac21 | koutsoub | import gr.ebs.gss.server.domain.dto.FileBodyDTO; |
28 | 0a37ac21 | koutsoub | import gr.ebs.gss.server.domain.dto.FileHeaderDTO; |
29 | 0a37ac21 | koutsoub | import gr.ebs.gss.server.domain.dto.PermissionDTO; |
30 | 0a37ac21 | koutsoub | import gr.ebs.gss.server.domain.dto.StatsDTO; |
31 | 0a37ac21 | koutsoub | import gr.ebs.gss.server.domain.dto.SystemStatsDTO; |
32 | 0a37ac21 | koutsoub | import gr.ebs.gss.server.domain.dto.UserClassDTO; |
33 | 0a37ac21 | koutsoub | import gr.ebs.gss.server.domain.dto.UserDTO; |
34 | 0a37ac21 | koutsoub | import gr.ebs.gss.server.ejb.AdminAPI; |
35 | 0a37ac21 | koutsoub | |
36 | 0a37ac21 | koutsoub | import java.util.Date; |
37 | 0a37ac21 | koutsoub | import java.util.List; |
38 | 0a37ac21 | koutsoub | import java.util.Set; |
39 | 0a37ac21 | koutsoub | |
40 | 0a37ac21 | koutsoub | import javax.naming.Context; |
41 | 0a37ac21 | koutsoub | import javax.naming.InitialContext; |
42 | 0a37ac21 | koutsoub | import javax.naming.NamingException; |
43 | 0a37ac21 | koutsoub | import javax.rmi.PortableRemoteObject; |
44 | 0a37ac21 | koutsoub | |
45 | 0a37ac21 | koutsoub | import org.apache.commons.logging.Log; |
46 | 0a37ac21 | koutsoub | import org.apache.commons.logging.LogFactory; |
47 | 0a37ac21 | koutsoub | |
48 | 0a37ac21 | koutsoub | import com.google.gwt.user.server.rpc.RemoteServiceServlet; |
49 | 0a37ac21 | koutsoub | |
50 | 0a37ac21 | koutsoub | public class AdminServiceImpl extends RemoteServiceServlet implements AdminService { |
51 | 0a37ac21 | koutsoub | /**
|
52 | 0a37ac21 | koutsoub | * The logger.
|
53 | 0a37ac21 | koutsoub | */
|
54 | 0a37ac21 | koutsoub | private static Log logger = LogFactory.getLog(AdminServiceImpl.class); |
55 | 0a37ac21 | koutsoub | |
56 | 0a37ac21 | koutsoub | /**
|
57 | 0a37ac21 | koutsoub | * A helper method that retrieves a reference to the AdminAPI bean and
|
58 | 0a37ac21 | koutsoub | * stores it for future use.
|
59 | 0a37ac21 | koutsoub | *
|
60 | 0a37ac21 | koutsoub | * @return an AdminAPI instance
|
61 | 0a37ac21 | koutsoub | * @throws RpcException in case an error occurs
|
62 | 0a37ac21 | koutsoub | */
|
63 | 0a37ac21 | koutsoub | protected AdminAPI getService() throws RpcException { |
64 | 0a37ac21 | koutsoub | try {
|
65 | 0a37ac21 | koutsoub | final Context ctx = new InitialContext(); |
66 | 0a37ac21 | koutsoub | final Object ref = ctx.lookup(getConfiguration().getString("adminApiPath")); |
67 | 0a37ac21 | koutsoub | return (AdminAPI) PortableRemoteObject.narrow(ref, AdminAPI.class); |
68 | 0a37ac21 | koutsoub | } catch (final NamingException e) { |
69 | 0a37ac21 | koutsoub | logger.error("Unable to retrieve the AdminAPI EJB", e);
|
70 | 0a37ac21 | koutsoub | throw new RpcException("An error occurred while contacting the naming service"); |
71 | 0a37ac21 | koutsoub | } |
72 | 0a37ac21 | koutsoub | } |
73 | 0a37ac21 | koutsoub | |
74 | 0a37ac21 | koutsoub | @Override
|
75 | 0a37ac21 | koutsoub | public List<UserDTO> getUsers() throws RpcException, ObjectNotFoundException { |
76 | 0a37ac21 | koutsoub | return getService().searchUsers(""); |
77 | 0a37ac21 | koutsoub | } |
78 | 0a37ac21 | koutsoub | |
79 | 0a37ac21 | koutsoub | @Override
|
80 | 0a37ac21 | koutsoub | public StatsDTO getUserStatistics(Long userId) throws RpcException, ObjectNotFoundException { |
81 | 0a37ac21 | koutsoub | return getService().getUserStatistics(userId);
|
82 | 0a37ac21 | koutsoub | } |
83 | 0a37ac21 | koutsoub | |
84 | 0a37ac21 | koutsoub | |
85 | 0a37ac21 | koutsoub | |
86 | 0a37ac21 | koutsoub | @Override
|
87 | 0a37ac21 | koutsoub | public void toggleActiveUser(Long userId) throws RpcException, ObjectNotFoundException { |
88 | 0a37ac21 | koutsoub | getService().toggleActiveUser(userId); |
89 | 0a37ac21 | koutsoub | |
90 | 0a37ac21 | koutsoub | } |
91 | 0a37ac21 | koutsoub | |
92 | 0a37ac21 | koutsoub | @Override
|
93 | 0a37ac21 | koutsoub | public void setFilePermissions(String uri, Set<PermissionDTO> permissions) throws ObjectNotFoundException, RpcException { |
94 | 0a37ac21 | koutsoub | getService().setFilePermissions(uri, permissions); |
95 | 0a37ac21 | koutsoub | } |
96 | 0a37ac21 | koutsoub | |
97 | 0a37ac21 | koutsoub | @Override
|
98 | 0a37ac21 | koutsoub | public List<UserDTO> searchUsers(String query) throws RpcException, ObjectNotFoundException { |
99 | 0a37ac21 | koutsoub | return getService().searchUsers(query);
|
100 | 0a37ac21 | koutsoub | } |
101 | 0a37ac21 | koutsoub | |
102 | 0a37ac21 | koutsoub | @Override
|
103 | 0a37ac21 | koutsoub | public SystemStatsDTO getSystemStatistics() throws RpcException { |
104 | 0a37ac21 | koutsoub | return getService().getSystemStatistics();
|
105 | 0a37ac21 | koutsoub | } |
106 | 0a37ac21 | koutsoub | |
107 | 0a37ac21 | koutsoub | @Override
|
108 | 0a37ac21 | koutsoub | public List<UserDTO> getLastLoggedInUsers(Date lastLoginDate) throws RpcException { |
109 | 0a37ac21 | koutsoub | return getService().getLastLoggedInUsers(lastLoginDate);
|
110 | 0a37ac21 | koutsoub | } |
111 | 0a37ac21 | koutsoub | |
112 | 0a37ac21 | koutsoub | @Override
|
113 | 0a37ac21 | koutsoub | public void logout() { |
114 | 0a37ac21 | koutsoub | getThreadLocalRequest().getSession().invalidate(); |
115 | 0a37ac21 | koutsoub | } |
116 | 0a37ac21 | koutsoub | |
117 | 0a37ac21 | koutsoub | @Override
|
118 | 0a37ac21 | koutsoub | public List<FileHeaderDTO> searchFiles(String query) throws RpcException, ObjectNotFoundException, InsufficientPermissionsException { |
119 | 0a37ac21 | koutsoub | if(query==null) |
120 | 0a37ac21 | koutsoub | throw new ObjectNotFoundException("Invalid query"); |
121 | 0a37ac21 | koutsoub | String restUrl = GSSConfigurationFactory.getConfiguration().getString("restUrl"); |
122 | 0a37ac21 | koutsoub | if(query.startsWith(restUrl))
|
123 | 0a37ac21 | koutsoub | query= query.substring(restUrl.length(),query.length()); |
124 | 0a37ac21 | koutsoub | if(query.indexOf("/")==-1)//do only a name search |
125 | 0a37ac21 | koutsoub | return getService().searchFileByFilename(query);
|
126 | 0a37ac21 | koutsoub | return getService().getFiles(query);
|
127 | 0a37ac21 | koutsoub | } |
128 | 0a37ac21 | koutsoub | |
129 | 0a37ac21 | koutsoub | @Override
|
130 | 0a37ac21 | koutsoub | public UserDTO getUser(String username) throws ObjectNotFoundException, RpcException{ |
131 | 0a37ac21 | koutsoub | return getService().getUser(username);
|
132 | 0a37ac21 | koutsoub | } |
133 | 0a37ac21 | koutsoub | |
134 | 0a37ac21 | koutsoub | @Override
|
135 | 0a37ac21 | koutsoub | public FileHeaderDTO getFile(long fileId) throws ObjectNotFoundException, RpcException { |
136 | 0a37ac21 | koutsoub | return getService().getFile(fileId);
|
137 | 0a37ac21 | koutsoub | } |
138 | 0a37ac21 | koutsoub | |
139 | 0a37ac21 | koutsoub | @Override
|
140 | 0a37ac21 | koutsoub | public List<FileBodyDTO> getVersions(Long userId, Long fileId) throws ObjectNotFoundException, InsufficientPermissionsException, RpcException { |
141 | 0a37ac21 | koutsoub | return getService().getVersions(userId, fileId);
|
142 | 0a37ac21 | koutsoub | } |
143 | 0a37ac21 | koutsoub | |
144 | 0a37ac21 | koutsoub | @Override
|
145 | 0a37ac21 | koutsoub | public List<UserDTO> getUsersWaitingActivation() throws RpcException { |
146 | 0a37ac21 | koutsoub | return getService().getUsersWaitingActivation();
|
147 | 0a37ac21 | koutsoub | } |
148 | 0a37ac21 | koutsoub | |
149 | 0a37ac21 | koutsoub | @Override
|
150 | 0a37ac21 | koutsoub | public void changeUserClass(Long userId, Long userClassId) throws RpcException, ObjectNotFoundException { |
151 | 0a37ac21 | koutsoub | getService().changeUserClass(userId, userClassId); |
152 | 0a37ac21 | koutsoub | |
153 | 0a37ac21 | koutsoub | } |
154 | 0a37ac21 | koutsoub | |
155 | 0a37ac21 | koutsoub | @Override
|
156 | 0a37ac21 | koutsoub | public List<UserClassDTO> getUserClasses() throws RpcException { |
157 | 0a37ac21 | koutsoub | return getService().getUserClasses();
|
158 | 0a37ac21 | koutsoub | } |
159 | 0a37ac21 | koutsoub | |
160 | 0a37ac21 | koutsoub | @Override
|
161 | 0a37ac21 | koutsoub | public void saveOrUpdateUserClass(UserClassDTO userClass) throws RpcException, ObjectNotFoundException { |
162 | 0a37ac21 | koutsoub | getService().saveOrUpdateUserClass(userClass); |
163 | 0a37ac21 | koutsoub | } |
164 | 0a37ac21 | koutsoub | |
165 | 0a37ac21 | koutsoub | @Override
|
166 | 0a37ac21 | koutsoub | public void removeUserClass(UserClassDTO userClass) throws RpcException, ObjectNotFoundException { |
167 | 0a37ac21 | koutsoub | getService().removeUserClass(userClass); |
168 | 0a37ac21 | koutsoub | } |
169 | 0a37ac21 | koutsoub | |
170 | 0a37ac21 | koutsoub | @Override
|
171 | 0a37ac21 | koutsoub | public void removeUser(Long userId) throws RpcException, ObjectNotFoundException, InsufficientPermissionsException { |
172 | 0a37ac21 | koutsoub | getService().removeUser(userId); |
173 | 0a37ac21 | koutsoub | |
174 | 0a37ac21 | koutsoub | } |
175 | 0a37ac21 | koutsoub | |
176 | 0a37ac21 | koutsoub | } |