Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 68 → Rev 73

/impl/src/java/pt/estgp/estgweb/Globals.java
29,6 → 29,6
public static final int NUMBER_ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS_INDEX=1;
public static final int NUMBER_ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS_INDEX=2;
public static final int ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS_TIMEOUT=ConfigProperties.getIntProperty("announcements.top.flash.news.timeout.miliseconds");
public static final List<String> USER_ROLES = ConfigProperties.getListValues("user.role");
public static List<String> USER_ROLES = ConfigProperties.getListValues("user.role");
 
}
/impl/src/java/pt/estgp/estgweb/web/form/AddRolesForm.java
15,6 → 15,7
public class AddRolesForm extends ApplicationForm
{
 
public static final String TARGET_ROLES_KEY = "targetRoles";
protected String role;
protected static List<String> targetRoles = Globals.USER_ROLES;
protected List<String> selectedRoles;
30,6 → 31,16
}
 
 
public static List<String> getTargetRoles() {
return targetRoles;
}
 
public void setTargetRoles(List<String> roles)
{
 
}
 
 
public String getTargetRolesStr() {
return targetRolesStr;
}
/impl/src/java/pt/estgp/estgweb/web/form/announcements/AnnouncementsForm.java
25,8 → 25,8
{
 
private static final Logger logger = Logger.getLogger(AnnouncementsForm.class);
private static final String TARGET_ROLES_KEY = "targetRoles";
 
 
private AnnouncementView announcementView;
 
 
88,11 → 88,7
this.expireDate = expireDate;
}
 
public void setTargetRoles(List<String> roles)
{
 
}
 
public FormFile getBigImage() {
return bigImage;
}
/impl/src/java/pt/estgp/estgweb/web/controllers/AddRolesController.java
New file
0,0 → 1,131
package pt.estgp.estgweb.web.controllers;
 
import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import pt.estgp.estgweb.web.form.announcements.AnnouncementsForm;
import pt.estgp.estgweb.web.form.AddRolesForm;
import pt.estgp.estgweb.web.UserSessionProxy;
import pt.estgp.estgweb.domain.UserSessionImpl;
import pt.estgp.estgweb.Globals;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.Serializable;
import java.util.List;
import java.util.ArrayList;
 
/**
* @author Jorge Machado
* @date 26/Fev/2008
* @time 18:01:54
* @see pt.estgp.estgweb.web
*/
public class AddRolesController extends ApplicationDispatchController
{
 
private static final Logger logger = Logger.getLogger(AddRolesController.class);
 
private static final String TARGET_ROLES_KEY = AddRolesForm.TARGET_ROLES_KEY;
 
public ActionForward start(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException
{
try
{
UserSessionImpl sess = (UserSessionImpl) UserSessionProxy.loadUserSession(request);
sess.remove(TARGET_ROLES_KEY);
sess.serialize(request);
return mapping.getInputForward();
}
catch(FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (Throwable e)
{
logger.error(e,e);
throw e;
}
}
public ActionForward addRole(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException
{
try
{
AddRolesForm addRolesForm = (AnnouncementsForm) form;
UserSessionImpl sess = (UserSessionImpl) UserSessionProxy.loadUserSession(request);
List<String> l = (List<String>) sess.get(TARGET_ROLES_KEY);
if(l == null)
l = new ArrayList<String>();
 
if(!isInTargetRoles(addRolesForm.getTargetRolesStr(),l))
{
l.add(addRolesForm.getTargetRolesStr());
sess.put(TARGET_ROLES_KEY, (Serializable) l);
sess.serialize(request);
}
else
{
addErrorWithKeys(request,"forms.object.already.in.list","user.role." + addRolesForm.getTargetRolesStr());
}
addRolesForm.setSelectedRoles(l);
}
catch(FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (Throwable e)
{
logger.error(e,e);
throw e;
}
return mapping.getInputForward();
}
 
public ActionForward removeRole(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException
{
try
{
AddRolesForm addRolessForm = (AddRolesForm) form;
UserSessionImpl sess = (UserSessionImpl) request.getAttribute(Globals.USER_SESSION_KEY);
List<String> l = (List<String>) sess.get(TARGET_ROLES_KEY);
 
if(l != null)
{
l.remove(addRolessForm.getRole());
sess.put(TARGET_ROLES_KEY, (Serializable) l);
sess.serialize(request);
}
}
catch(FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (Throwable e)
{
logger.error(e,e);
throw e;
}
return mapping.getInputForward();
}
 
private boolean isInTargetRoles(String role, List l)
{
return l.contains(role);
}
}
/impl/src/java/pt/estgp/estgweb/web/controllers/announcements/AnnouncementsController.java
4,8 → 4,9
import org.apache.struts.upload.FormFile;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.web.form.announcements.AnnouncementsForm;
import pt.estgp.estgweb.web.form.AddRolesForm;
import pt.estgp.estgweb.web.UserSessionProxy;
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController;
import pt.estgp.estgweb.web.controllers.AddRolesController;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.estgp.estgweb.web.utils.DatesUtils;
import pt.estgp.estgweb.domain.UserSessionImpl;
13,8 → 14,6
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.Image;
import pt.estgp.estgweb.domain.views.AnnouncementView;
import pt.estgp.estgweb.filters.exceptions.AccessDeniedException;
import pt.estgp.estgweb.Globals;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException;
23,9 → 22,7
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;
import java.util.Date;
 
/**
34,12 → 31,11
* @time 18:01:54
* @see pt.estgp.estgweb.web
*/
public class AnnouncementsController extends ApplicationDispatchController
{
public class AnnouncementsController extends AddRolesController {
 
private static final Logger logger = Logger.getLogger(AnnouncementsController.class);
private static final String TARGET_ROLES_KEY = "targetRoles";
private static final String TARGET_ROLES_KEY = AddRolesForm.TARGET_ROLES_KEY;
public ActionForward save(ActionMapping mapping,
ActionForm form ,
50,7 → 46,6
try
{
AnnouncementsForm announcementsForm = (AnnouncementsForm) form;
 
if(announcementsForm.getAnnouncementView().getId() <= 0)
{
Announcement a = DomainObjectFactory.createAnnouncementImpl();
140,30 → 135,6
}
}
 
public ActionForward start(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException
{
try
{
UserSessionImpl sess = (UserSessionImpl) UserSessionProxy.loadUserSession(request);
sess.remove(TARGET_ROLES_KEY);
sess.serialize(request);
return mapping.getInputForward();
}
catch(FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (Throwable e)
{
logger.error(e,e);
throw e;
}
}
 
//TODO verificar problema com com dispatch=edit
public ActionForward edit(ActionMapping mapping,
ActionForm form ,
201,77 → 172,6
 
}
 
 
public ActionForward addRole(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException
{
try
{
AnnouncementsForm announcementsForm = (AnnouncementsForm) form;
UserSessionImpl sess = (UserSessionImpl) UserSessionProxy.loadUserSession(request);
List<String> l = (List<String>) sess.get(TARGET_ROLES_KEY);
if(l == null)
l = new ArrayList<String>();
 
if(!isInTargetRoles(announcementsForm.getTargetRolesStr(),l))
{
l.add(announcementsForm.getTargetRolesStr());
sess.put(TARGET_ROLES_KEY, (Serializable) l);
sess.serialize(request);
}
else
{
addErrorWithKeys(request,"forms.object.already.in.list","user.role." + announcementsForm.getTargetRolesStr());
}
announcementsForm.setSelectedRoles(l);
}
catch(FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (Throwable e)
{
logger.error(e,e);
throw e;
}
return mapping.getInputForward();
}
 
public ActionForward removeRole(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException
{
try
{
AnnouncementsForm announcementsForm = (AnnouncementsForm) form;
UserSessionImpl sess = (UserSessionImpl) request.getAttribute(Globals.USER_SESSION_KEY);
List<String> l = (List<String>) sess.get(TARGET_ROLES_KEY);
 
if(l != null)
{
l.remove(announcementsForm.getRole());
sess.put(TARGET_ROLES_KEY, (Serializable) l);
sess.serialize(request);
}
}
catch(FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (Throwable e)
{
logger.error(e,e);
throw e;
}
return mapping.getInputForward();
}
 
 
public ActionForward list(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
325,8 → 225,4
}
}
 
private boolean isInTargetRoles(String role, List l)
{
return l.contains(role);
}
}
/impl/src/java/pt/estgp/estgweb/examples/DBInit.java
3,6 → 3,8
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.UserImpl;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.AnnouncementImpl;
import pt.estgp.estgweb.Globals;
import jomm.dao.impl.AbstractDao;
import jomm.utils.BytesUtils;
 
30,6 → 32,32
userStudent.setRoles("student");
userStudent.setPassword(BytesUtils.getMD5("1"));
DaoFactory.getUserDaoImpl().save(userStudent);
AnnouncementImpl announcement = DomainObjectFactory.createAnnouncementImpl();
announcement.setOwner(user);
announcement.setTitle("Titulo de Teste");
announcement.setText("Anuncio de Teste");
announcement.setStatus(true);
announcement.setType(Globals.ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS);
announcement.setTargetRoles("all");
DaoFactory.getAnnouncementDaoImpl().save(announcement);
 
AnnouncementImpl announcement2 = DomainObjectFactory.createAnnouncementImpl();
announcement2.setOwner(user);
announcement2.setTargetRoles("all");
announcement2.setTitle("Titulo de Teste");
announcement2.setText("Anuncio de Teste");
announcement2.setStatus(true);
announcement2.setType(Globals.ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS);
DaoFactory.getAnnouncementDaoImpl().save(announcement2);
 
AnnouncementImpl announcement3 = DomainObjectFactory.createAnnouncementImpl();
announcement3.setOwner(user);
announcement3.setTitle("Titulo de Teste");
announcement3.setText("Anuncio de Teste");
announcement3.setTargetRoles("all");
announcement3.setType(Globals.ANNOUNCEMENT_TYPE_NEWS);
announcement3.setStatus(true);
DaoFactory.getAnnouncementDaoImpl().save(announcement3);
AbstractDao.getCurrentSession().getTransaction().commit();
}
}