/**
* 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;
import java.util.Calendar;
import java.util.Date;
import javax.portlet.PortletRequest;
import javax.servlet.http.HttpServletRequest;
import br.gov.camara.edemocracia.portlets.chat.model.ChatRoom;
import br.gov.camara.edemocracia.portlets.chat.model.impl.RoomOpenPolicy;
import br.gov.camara.edemocracia.portlets.chat.model.impl.RoomStatus;
import com.liferay.portal.kernel.util.WebKeys;
import com.liferay.portal.security.permission.PermissionChecker;
import com.liferay.portal.theme.ThemeDisplay;
/**
* @author P_7339
*
*/
public class ChatPortletUtil {
public static Date addToDate(Date date, int field, int amount) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(field, amount);
return cal.getTime();
}
public static boolean checkPermission(PortletRequest request, String action) {
ThemeDisplay td = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
PermissionChecker checker = td.getPermissionChecker();
long groupId = td.getScopeGroupId();
return checker.hasPermission(groupId, "br.gov.camara.edemocracia.portlets.chat.model", groupId, action);
}
public static boolean checkPermission(HttpServletRequest request, String action) {
ThemeDisplay td = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
PermissionChecker checker = td.getPermissionChecker();
long groupId = td.getScopeGroupId();
return checker.hasPermission(groupId, "br.gov.camara.edemocracia.portlets.chat.model", groupId, action);
}
/**
* Verifica se a sala está aberta
*
* @param chatRoom
* @return
*/
public static boolean checkOpen(ChatRoom chatRoom) {
Date now = new Date();
// Verifica se a sala está aberta
if (chatRoom == null)
return true;
boolean open = chatRoom.getStatus() == RoomStatus.Opened.getValue() || chatRoom.getOpenPolicy() == RoomOpenPolicy.Always.getValue();
if (!open && chatRoom.getOpenPolicy() == RoomOpenPolicy.Scheduled.getValue()) {
Date from = chatRoom.getOpenFrom();
if (from == null)
from = now;
Date until = chatRoom.getOpenUntil();
if (until == null)
until = now;
open = (from.before(now) || from.equals(now)) && (now.before(until) || now.equals(until));
}
return open;
}
}