/** * Copyright (c) 2009-2014 Câmara dos Deputados. Todos os direitos reservados. * * e-Democracia é um software livre; você pode redistribuí-lo e/ou modificá-lo dentro * dos termos da Licença Pública Geral Menor GNU como publicada pela Fundação do * Software Livre (FSF); na versão 2.1 da Licença, ou (na sua opinião) qualquer versão. * * Este programa é distribuído na esperança de que possa ser útil, mas SEM NENHUMA GARANTIA; * sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. * Veja a Licença Pública Geral Menor GNU para maiores detalhes. */ package br.gov.camara.edemocracia.portlets.chat.portlet.views; import java.util.Collections; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; import br.gov.camara.edemocracia.portlets.chat.model.ChatRoom; import br.gov.camara.edemocracia.portlets.chat.model.ChatRoomTwitter; import br.gov.camara.edemocracia.portlets.chat.model.ChatRoomUser; import br.gov.camara.edemocracia.portlets.chat.model.ChatRoomVideo; import br.gov.camara.edemocracia.portlets.chat.portlet.ChatPermissionChecker; import br.gov.camara.edemocracia.portlets.chat.portlet.ChatPortletConstants; import br.gov.camara.edemocracia.portlets.chat.portlet.ChatPortletRequestUtil; import br.gov.camara.edemocracia.portlets.chat.portlet.ChatRoomView; import br.gov.camara.edemocracia.util.FlashScopeUtil; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.kernel.servlet.SessionErrors; import com.liferay.portal.kernel.util.ParamUtil; import com.liferay.portal.model.Country; import com.liferay.portal.model.User; import com.liferay.portal.service.CountryServiceUtil; import com.liferay.portal.service.RegionServiceUtil; /** * @author P_7339 * */ public class AnonView extends AbstractView { @Override public ChatRoomView processView(RenderRequest request, RenderResponse response) throws PortalException, SystemException { // Verifica se a sala foi especificada User user = ChatPortletRequestUtil.getUserFromRequest(request); ChatRoom room = getRoom(request); if (room == null) return addRoomNotFoundMessage(request, user); ChatRoomUser chatUser = ChatPortletRequestUtil.getChatRoomUser(request, room.getRoomId()); // Verifica o acesso // Se já estiver logado, vai direto para a sala de chat if (chatUser != null && !chatUser.isBanned()) return ChatRoomView.VIEW; // Se for usuário autenticado, vai para a listagem if (!user.isDefaultUser()) { return ChatRoomView.LIST; } // Pode entrar anônimo? if (!room.isAnonymousAllowed()) { SessionErrors.add(request, "cant-join"); return ChatRoomView.ERROR; } // Copia os dados para a requisição FlashScopeUtil.copyToRequest(request, ChatPortletConstants.EMAIL_PARAM, ParamUtil.get(request, ChatPortletConstants.EMAIL_PARAM, "")); FlashScopeUtil.copyToRequest(request, ChatPortletConstants.NICKNAME_PARAM, ParamUtil.get(request, ChatPortletConstants.NICKNAME_PARAM, "")); FlashScopeUtil.copyToRequest(request, ChatPortletConstants.REGION_ID_PARAM, ParamUtil.getLong(request, ChatPortletConstants.REGION_ID_PARAM, 0l)); FlashScopeUtil.copyToRequest(request, ChatPortletConstants.NAME_SUGGESTIONS, Collections.emptyList()); Country brasil = CountryServiceUtil.getCountryByA2("BR"); request.setAttribute("regions", RegionServiceUtil.getRegions(brasil.getCountryId())); ChatPermissionChecker checker = new ChatPermissionChecker(room); request.setAttribute(ChatPortletConstants.CAN_JOIN_ATTRIBUTE, checker.isCanJoin()); request.setAttribute(ChatPortletConstants.CAN_SPY_ATTRIBUTE, checker.isCanSpy()); request.setAttribute(ChatPortletConstants.IS_OPEN_ATTRIBUTE, checker.isOpen()); ChatRoomTwitter chatRoomTwitter = getChatRoomTwitter(request); request.setAttribute(ChatPortletConstants.TWITTER_ATTRIBUTE, chatRoomTwitter); ChatRoomVideo chatRoomVideoLive = getChatRoomVideoLive(request); request.setAttribute(ChatPortletConstants.VIDEO_LIVE_ATTRIBUTE, chatRoomVideoLive); return ChatRoomView.ANON; } }