/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(); |
} |
} |