/******************************************************************************* * Copyright 2011 Alex 'Ript' Malyshev <alexript@gmail.com> * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ******************************************************************************/ package net.autosauler.ballance.server; import java.net.MalformedURLException; import java.net.URL; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import net.autosauler.ballance.client.UsersService; import net.autosauler.ballance.shared.User; import net.autosauler.ballance.shared.UserList; import net.autosauler.ballance.shared.UserRole; import com.google.gwt.user.server.rpc.RemoteServiceServlet; /** * The Class UsersServiceImpl. */ public class UsersServiceImpl extends RemoteServiceServlet implements UsersService { /** The Constant serialVersionUID. */ private static final long serialVersionUID = 2706987676142358826L; /* * (non-Javadoc) * * @see * net.autosauler.ballance.client.UsersService#createUser(net.autosauler * .ballance.shared.User) */ @Override public boolean createUser(User user) { boolean result = false; HttpSession httpSession = getThreadLocalRequest().getSession(false); UserRole role = HttpUtilities.getUserRole(httpSession); if (role.isAdmin()) { HttpServletRequest request = getThreadLocalRequest(); String urlAddress = request.getRequestURL().toString(); try { URL url = new URL(urlAddress); String hostname = url.getHost().trim(); user.setDomain(hostname); } catch (MalformedURLException e) { user.setDomain("127.0.0.1"); } net.autosauler.ballance.server.model.User dbuser = new net.autosauler.ballance.server.model.User( user); result = dbuser.addNewUser(); } return result; } /* * (non-Javadoc) * * @see net.autosauler.ballance.client.UsersService#getTrashedUsers() */ @Override public UserList getTrashedUsers() { UserList list = null; HttpSession httpSession = getThreadLocalRequest().getSession(false); UserRole role = HttpUtilities.getUserRole(httpSession); if (role.isAdmin()) { list = net.autosauler.ballance.server.model.UserList .getUsersFromTrash(HttpUtilities.getUserDomain(httpSession)); } return list; } /* * (non-Javadoc) * * @see * net.autosauler.ballance.client.UsersService#getUser(java.lang.String) */ @Override public User getUser(String login) { net.autosauler.ballance.shared.User user = null; HttpSession httpSession = getThreadLocalRequest().getSession(false); UserRole role = HttpUtilities.getUserRole(httpSession); if (role.isAdmin()) { net.autosauler.ballance.server.model.User dbuser = net.autosauler.ballance.server.model.User .find(login, HttpUtilities.getUserDomain(httpSession)); if (dbuser != null) { user = dbuser.getProxy(); } } return user; } /* * (non-Javadoc) * * @see net.autosauler.ballance.client.UsersService#getUsers() */ @Override public UserList getUsers() { UserList list = null; HttpSession httpSession = getThreadLocalRequest().getSession(false); UserRole role = HttpUtilities.getUserRole(httpSession); if (role.isAdmin()) { list = net.autosauler.ballance.server.model.UserList .getUsers(HttpUtilities.getUserDomain(httpSession)); } return list; } /* * (non-Javadoc) * * @see * net.autosauler.ballance.client.UsersService#trashUser(java.lang.String) */ @Override public boolean trashUser(String login) { boolean result = false; HttpSession httpSession = getThreadLocalRequest().getSession(false); UserRole role = HttpUtilities.getUserRole(httpSession); if (role.isAdmin()) { result = net.autosauler.ballance.server.model.User.trashUser(login, HttpUtilities.getUserDomain(httpSession)); } return result; } /* * (non-Javadoc) * * @see * net.autosauler.ballance.client.UsersService#updateUser(net.autosauler * .ballance.shared.User) */ @Override public boolean updateUser(User user) { boolean result = false; HttpSession httpSession = getThreadLocalRequest().getSession(false); UserRole role = HttpUtilities.getUserRole(httpSession); if (role.isAdmin()) { result = net.autosauler.ballance.server.model.User.updateUser(user); } return result; } }