Statistics
| Branch: | Tag: | Revision:

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
}