/** TwitStreet - Twitter Stock Market Game Copyright (C) 2012 Engin Guller (bisanthe@gmail.com), Cagdas Ozek (cagdasozek@gmail.com) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. **/ package com.twitstreet.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.google.inject.Inject; import com.google.inject.Singleton; import com.twitstreet.db.data.User; import com.twitstreet.localization.LocalizationUtil; import com.twitstreet.main.TwitstreetException; import com.twitstreet.session.GroupMgr; import com.twitstreet.session.UserMgr; import com.twitstreet.util.Util; @SuppressWarnings("serial") @Singleton public class GroupServlet extends TwitStreetServlet { @Inject UserMgr userMgr; @Inject GroupMgr groupMgr; public static final String GROUP = "group"; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); response.setHeader("Cache-Control","no-cache"); //HTTP 1.1 response.setHeader("Pragma","no-cache"); //HTTP 1.0 response.setDateHeader ("Expires", 0); //prevents caching at the proxy server loadUser(request); User user =(User) request.getAttribute(User.USER); String operation = ""; operation = request.getParameter("op"); if (operation != null && operation.length() > 0) { try { long groupId = Long.valueOf((String) request.getParameter(GroupDetailsServlet.GROUP_ID)); long userId = -1; try{ userId = Long.valueOf((String) request.getParameter(GroupDetailsServlet.USER_ID)); }catch(Exception ex){ } if (operation.equalsIgnoreCase("leave")) { groupMgr.removeUserFromGroup(user.getId(), groupId); } else if (operation.equalsIgnoreCase("join")) { groupMgr.addUserToGroup(user.getId(), groupId); } else if (operation.equalsIgnoreCase("joinByReference")) { groupMgr.addUserToGroup(user.getId(), groupId); response.getWriter().print(Util.getConfirmationJS(LocalizationUtil.getInstance().get("group.join.confirm", getLanguage(request),groupMgr.getGroup(groupId).getName()), "", "leaveGroup("+groupId+")")); } else if (operation.equalsIgnoreCase("delete")) { if (groupMgr.getGroup(groupId).getAdminId() == user.getId()) { groupMgr.deleteGroup(groupId); } }else if (operation.equalsIgnoreCase("disableentrance")) { if (groupMgr.getGroup(groupId).getAdminId() == user.getId()) { groupMgr.disableEntrance(groupId); } }else if (operation.equalsIgnoreCase("enableentrance")) { if (groupMgr.getGroup(groupId).getAdminId() == user.getId()) { groupMgr.enableEntrance(groupId); } }else if (operation.equalsIgnoreCase("removeuser")) { if (userId>-1 && groupMgr.getGroup(groupId).getAdminId() == user.getId()) { groupMgr.removeUserFromGroup(userId, groupId); } }else if (operation.equalsIgnoreCase("blockuser")) { if (groupMgr.getGroup(groupId).getAdminId() == user.getId()) { groupMgr.blockUserForGroup(userId, groupId); } }else if (operation.equalsIgnoreCase("unblockuser")) { if (userId>-1 && groupMgr.getGroup(groupId).getAdminId() == user.getId()) { groupMgr.unblockUserForGroup(userId, groupId); } } } catch (TwitstreetException e) { writeErrorIntoResponse(request, response, e); } return; } request.setAttribute(HomePageServlet.SELECTED_TAB_GROUP_BAR, "group-details-tab"); getServletContext().getRequestDispatcher("/WEB-INF/jsp/groupDetails.jsp").forward(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }