Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1348 → Rev 1350

/branches/v3/impl/src/java/jomm/utils/DiacriticFilter.java
1,11 → 1,12
 
package jomm.utils;
 
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenFilter;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.Token;
 
import java.io.*;
import java.io.IOException;
import java.text.Normalizer;
 
 
/**
30,6 → 31,12
return new Token(clean(value),t.startOffset(),t.endOffset());
}
 
public static String stripAccents(String s)
{
s = Normalizer.normalize(s, Normalizer.Form.NFD);
s = s.replaceAll("[\\p{InCombiningDiacriticalMarks}]", "");
return s;
}
public static String clean(String value)
{
StringBuilder finalTerm = new StringBuilder();
/branches/v3/impl/src/java/jomm/web/utils/NavPlace.java
1,11 → 1,10
package jomm.web.utils;
 
import jomm.utils.MessageResources;
import org.apache.log4j.Logger;
 
import javax.servlet.http.HttpServletRequest;
 
import org.apache.log4j.Logger;
 
/**
*
* @author Jorge Machado
/branches/v3/impl/src/java/jomm/web/ftp/impl/FtpFile.java
126,6 → 126,12
queryAux = "?" + queryAux;
else queryAux = "";
return URIUtil.encodePath(name,"ISO-8859-1") + "/" + queryAux;
/*try {
return URLEncoder.encode(name, "UTF-8") + "/" + queryAux;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}*/
//return null;
}
 
public long getSize()
/branches/v3/impl/src/java/pt/estgp/estgweb/services/courseunits/SaveCourseUnitProgram.java
54,45 → 54,61
 
private static final Logger logger = Logger.getLogger(SaveCourseUnitProgram.class);
 
public CourseUnitProgramView run(CourseUnitProgramView cupv, Long coursUnitId, UserSession usession) throws ServiceException, TransformerException, IOException, FOPException {
 
CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(coursUnitId);
public void validate(Long courseUnitId, UserSession usession, CourseUnitImpl clearedCourseUnit) throws ServiceException, TransformerException, IOException, FOPException {
 
CourseUnitProgram program = c.getCourseUnitProgram();
if(clearedCourseUnit.isClear((UserSessionImpl) usession,CourseUnitImpl.CourseUnitClearancesOperation.PROGRAM_CAN_VALIDATE.name()))
{
clearedCourseUnit.setValidProgram(true);
}
 
}
 
public void invalidate(Long courseUnitId, UserSession usession, CourseUnitImpl clearedCourseUnit) throws ServiceException, TransformerException, IOException, FOPException {
 
if(clearedCourseUnit.isClear((UserSessionImpl) usession,CourseUnitImpl.CourseUnitClearancesOperation.PROGRAM_CAN_VALIDATE.name()))
{
clearedCourseUnit.setValidProgram(false);
}
 
}
 
public CourseUnitProgramView run(CourseUnitProgramView cupv, Long coursUnitId, UserSession usession, CourseUnitImpl clearedCourseUnit) throws ServiceException, TransformerException, IOException, FOPException {
 
//CourseUnit cProxy = DaoFactory.getCourseUnitDaoImpl().get(coursUnitId);
 
 
//Ja vem do filtro isto feito
// clearedCourseUnit.initClearances((UserSessionImpl) usession,true);
 
CourseUnitProgram program = clearedCourseUnit.getCourseUnitProgram();
if(program == null)
{
program = new CourseUnitProgramImpl();
DaoFactory.getCourseUnitProgramDaoImpl().save(program);
program.setCourseUnitProgramPart2(new CourseUnitProgramPart2Impl());
DaoFactory.getCourseUnitProgramPart2DaoImpl().save(program.getCourseUnitProgramPart2());
c.setCourseUnitProgram(program);
clearedCourseUnit.setCourseUnitProgram(program);
}
//
if(usession.getUser().isSuperuserOrAdmin())
//if(usession.getUser().isSuperuserOrAdmin())
 
if(clearedCourseUnit.isClear((UserSessionImpl) usession,CourseUnitImpl.CourseUnitClearancesOperation.PROGRAM_TEACHER_PART.name()))
//if(usession.getUser() instanceof Teacher && (((Teacher)(usession.getUser())).isTeacherOfCourseUnit(c.getId(),true)))
{
cupv.persistViewInObjectAdministrator(program);
cupv.persistViewInObjectCoordinator(program);
cupv.persistViewInObjectTeacher(program);
setResponsableTeacher(cupv, c);
}
if(usession.getUser() instanceof Teacher && (((Teacher)(usession.getUser())).isTeacherOfCourseUnit(c.getId(),true)))
if(clearedCourseUnit.isClear((UserSessionImpl) usession,CourseUnitImpl.CourseUnitClearancesOperation.PROGRAM_COORDINATOR_PART.name()))
{
cupv.persistViewInObjectTeacher(program);
}
if(usession.getUser() instanceof Teacher
&& (((usession.getUser())).hasRole(c.getCourse().getValidationRole())
||
((usession.getUser()) == c.getCourse().getCoordinator()))
)
{
cupv.persistViewInObjectCoordinator(program);
setResponsableTeacher(cupv, c);
setResponsableTeacher(cupv, clearedCourseUnit);
}
 
List<String> errors = new ArrayList<String>();
createPdf(c,errors,usession);
createPdf(clearedCourseUnit,errors,usession);
 
if(usession.getUser() instanceof Teacher)
DirectedCoordinatedUnitsService.sendNotificationsEditedInterestedPeople(c,usession);
DirectedCoordinatedUnitsService.sendNotificationsEditedInterestedPeople(clearedCourseUnit,usession);
else
{
logger.info("Nao vai informar docentes");
/branches/v3/impl/src/java/pt/estgp/estgweb/services/courseunits/LoadCourseUnitService.java
40,6 → 40,11
public CourseUnitView run(long id, boolean initTeachers, boolean initStudents, boolean initBlog, UserSession userSession) throws ServiceException
{
CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(id);
return runCleared(id,initTeachers,initStudents,initBlog,userSession,DaoFactory.getCourseUnitDaoImpl().narrow(c));
}
 
public CourseUnitView runCleared(long id, boolean initTeachers, boolean initStudents, boolean initBlog, UserSession userSession,CourseUnit c) throws ServiceException
{
c.setCourseUnitEvaluation(DaoFactory.getCourseUnitEvaluationDaoImpl().narrow(c.getCourseUnitEvaluation()));
c.setCourseUnitProgram(DaoFactory.getCourseUnitProgramDaoImpl().narrow(c.getCourseUnitProgram()));
 
77,10 → 82,10
}
 
 
public CourseUnitView loadCourseUnitViewAndCourse(long id, boolean initTeachers, boolean initStudents, boolean initBlog, boolean initCourseView, UserSession userSession) throws ServiceException
public CourseUnitView loadCourseUnitViewAndCourse(long id, boolean initTeachers, boolean initStudents, boolean initBlog, boolean initCourseView, UserSession userSession,CourseUnitImpl clearedUnit) throws ServiceException
{
 
CourseUnitView cV = run(id,initTeachers,initStudents,initBlog,userSession);
CourseUnitView cV = runCleared(id, initTeachers, initStudents, initBlog, userSession, clearedUnit);
if(initCourseView)
{
CourseView coV = new CourseView(cV.getCourseUnit().getCourse());
/branches/v3/impl/src/java/pt/estgp/estgweb/services/courseunits/DirectedCoordinatedUnitsService.java
346,15 → 346,17
int counter = 0;
for(CourseUnitView courseUnitView: views)
{
if(courseUnitView != null && courseUnitView.getId()>0)
{
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().load(courseUnitView.getId());
 
//EVALUATION OPEN BY ADMIN
if(courseUnitView.isEvaluationOpenByAdmin() != courseUnit.isEvaluationOpenByAdmin())
courseUnit.setEvaluationOpenByAdmin(courseUnitView.isEvaluationOpenByAdmin());
 
 
 
if(courseUnitView != null && courseUnitView.getId()>0)
{
if(courseUnitView.getProgramStreamId() != null && courseUnitView.getProgramStreamId().length() > 0)
{
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().load(courseUnitView.getId());
 
if(usession.getUser().isAdmin() || usession.getUser().hasRole("courseValidatePrograms") || usession.getUser().hasRole(courseUnit.getCourse().getValidationRole()))
{
if(courseUnit.isValidProgram() != courseUnitView.isValidProgram())
/branches/v3/impl/src/java/pt/estgp/estgweb/services/ftpservices/FtpService.java
1,6 → 1,7
package pt.estgp.estgweb.services.ftpservices;
 
import jomm.utils.DesUtils;
import jomm.utils.DiacriticFilter;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
126,7 → 127,8
}
 
logger.info("trying to import file: " + name);
if(!client.storeFile(name,item.getInputStream()))
//client.setControlEncoding("ISO-8859-1");
if(!client.storeFile(DiacriticFilter.stripAccents(name),item.getInputStream()))
result = "errors.ftp.no.permission";
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/views/CourseUnitProgramView.java
58,6 → 58,11
 
public void persistViewInObjectTeacher(CourseUnitProgram c)
{
c.getCourseUnitProgramPart2().setObjectivos(courseUnitProgram.getCourseUnitProgramPart2().getObjectivos());
c.setPrerequisitos(courseUnitProgram.getPrerequisitos());
c.setLingua1(courseUnitProgram.getLingua1());
c.setLingua2(courseUnitProgram.getLingua2());
 
c.getCourseUnitProgramPart2().setAvaliacaoOrdinariosFrequencia(courseUnitProgram.getCourseUnitProgramPart2().getAvaliacaoOrdinariosFrequencia());
c.getCourseUnitProgramPart2().setAvaliacaoOrdinariosExame(courseUnitProgram.getCourseUnitProgramPart2().getAvaliacaoOrdinariosExame());
c.getCourseUnitProgramPart2().setAvaliacaoEspeciaisFrequencia(courseUnitProgram.getCourseUnitProgramPart2().getAvaliacaoEspeciaisFrequencia());
77,10 → 82,6
 
public void persistViewInObjectCoordinator(CourseUnitProgram c)
{
c.getCourseUnitProgramPart2().setObjectivos(courseUnitProgram.getCourseUnitProgramPart2().getObjectivos());
c.setPrerequisitos(courseUnitProgram.getPrerequisitos());
c.setLingua1(courseUnitProgram.getLingua1());
c.setLingua2(courseUnitProgram.getLingua2());
 
c.setEcts(courseUnitProgram.getEcts());
c.setCargaHorariaTotal(courseUnitProgram.getCargaHorariaTotal());
96,21 → 97,8
 
public void persistViewInObjectAdministrator(CourseUnitProgram c)
{
 
c.getCourseUnitProgramPart2().setObjectivos(courseUnitProgram.getCourseUnitProgramPart2().getObjectivos());
c.setPrerequisitos(courseUnitProgram.getPrerequisitos());
c.setLingua1(courseUnitProgram.getLingua1());
c.setLingua2(courseUnitProgram.getLingua2());
 
c.setEcts(courseUnitProgram.getEcts());
c.setCargaHorariaTotal(courseUnitProgram.getCargaHorariaTotal());
c.setCargaHorariaT(courseUnitProgram.getCargaHorariaT());
c.setCargaHorariaTP(courseUnitProgram.getCargaHorariaTP()) ;
c.setCargaHorariaPL(courseUnitProgram.getCargaHorariaPL());
c.setCargaHorariaTC(courseUnitProgram.getCargaHorariaTC());
c.setCargaHorariaO(courseUnitProgram.getCargaHorariaO());
c.setCargaHorariaS(courseUnitProgram.getCargaHorariaS());
c.setCargaHorariaOT(courseUnitProgram.getCargaHorariaOT());
persistViewInObjectCoordinator(c);
persistViewInObjectTeacher(c);
}
 
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/DomainObjectFactory.java
411,4 → 411,8
public static QuestionarioPedagogicoAlunoRequisitadoImpl createQuestionarioPedagogicoAlunoRequisitadoImpl() {
return new QuestionarioPedagogicoAlunoRequisitadoImpl();
}
 
public static ConfigurationImpl createConfigurationImpl() {
return new ConfigurationImpl();
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/CourseUnitImpl.java
360,16 → 360,25
|| usession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE))
{
s.addClearance(CourseUnitClearancesOperation.EVALUATION_ALL.name(),usession);
s.addClearance(CourseUnitClearancesOperation.PROGRAM_CAN_VALIDATE.name(),usession);
s.addClearance(CourseUnitClearancesOperation.PROGRAM_TEACHER_PART.name(),usession);
s.addClearance(CourseUnitClearancesOperation.PROGRAM_COORDINATOR_PART.name(),usession);
}
 
if(usession.getUser() != null && usession.getUser() instanceof Teacher)
{
Teacher t = ((Teacher)(usession.getUser()));
boolean teacher = ((Teacher)(usession.getUser())).isTeacherOfCourseUnit(c.getId(),true);
boolean responsable = c.getResponsableTeacher()!=null && usession.getUser().getId() == c.getResponsableTeacher().getId();
boolean isCoordinator = (c.getCourse().getCoordinator() != null && t.getId() == c.getCourse().getCoordinator().getId()) || (c.getCourse().getValidationRole() != null && t.hasRole(c.getCourse().getValidationRole()));
if(teacher)
{
s.addClearance(CourseUnitClearancesOperation.EVALUATION_INFO_USER_TEACHER.name(), usession);
}
if(responsable)
{
s.addClearance(CourseUnitClearancesOperation.EVALUATION_INFO_USER_RESP_TEACHER.name(), usession);
}
if(teacher || responsable)
{
//s.addClearance(CourseUnitClearancesOperation.EVALUATION_INFO_USER_TEACHER.name(), usession);
381,37 → 390,52
s.addClearance(CourseUnitClearancesOperation.EVALUATION_TRANSITATE_TO_COMPLETE.name(),usession);
}
}
}
 
if(usession.getUser() != null && usession.getUser() instanceof Teacher
&& (((usession.getUser())).hasRole(c.getCourse().getValidationRole())
||
((usession.getUser()) == c.getCourse().getCoordinator()))
)
{
s.addClearance(CourseUnitClearancesOperation.EVALUATION_INFO_USER_COMMISSION.name(), usession);
s.addClearance(CourseUnitClearancesOperation.EVALUATION_EDITION.name(), usession);
if(active && isEdit)
if(isCoordinator)
{
s.addClearance(CourseUnitClearancesOperation.EVALUATION_EDITSAVE.name(),usession);
s.addClearance(CourseUnitClearancesOperation.EVALUATION_PERSIST_TEACHER_PART.name(),usession);
s.addClearance(CourseUnitClearancesOperation.EVALUATION_PERSIST_COMISSION_PART.name(),usession);
s.addClearance(CourseUnitClearancesOperation.EVALUATION_TRANSITATE_TO_COMPLETE.name(),usession);
s.addClearance(CourseUnitClearancesOperation.EVALUATION_TRANSITATE_TO_CLOSE.name(),usession);
s.addClearance(CourseUnitClearancesOperation.PROGRAM_CAN_VALIDATE.name(),usession);
s.addClearance(CourseUnitClearancesOperation.EVALUATION_INFO_USER_COMMISSION.name(), usession);
s.addClearance(CourseUnitClearancesOperation.EVALUATION_EDITION.name(), usession);
if(active && isEdit)
{
s.addClearance(CourseUnitClearancesOperation.EVALUATION_EDITSAVE.name(),usession);
s.addClearance(CourseUnitClearancesOperation.EVALUATION_PERSIST_TEACHER_PART.name(),usession);
s.addClearance(CourseUnitClearancesOperation.EVALUATION_PERSIST_COMISSION_PART.name(),usession);
s.addClearance(CourseUnitClearancesOperation.EVALUATION_TRANSITATE_TO_COMPLETE.name(),usession);
s.addClearance(CourseUnitClearancesOperation.EVALUATION_TRANSITATE_TO_CLOSE.name(),usession);
}
else if(active && isComplete)
{
s.addClearance(CourseUnitClearancesOperation.EVALUATION_EDITSAVE.name(),usession);
s.addClearance(CourseUnitClearancesOperation.EVALUATION_PERSIST_TEACHER_PART.name(),usession);
s.addClearance(CourseUnitClearancesOperation.EVALUATION_PERSIST_COMISSION_PART.name(),usession);
s.addClearance(CourseUnitClearancesOperation.EVALUATION_TRANSITATE_TO_CLOSE.name(),usession);
s.addClearance(CourseUnitClearancesOperation.EVALUATION_TRANSITATE_TO_EDIT.name(),usession);
}
else if(active && isClosed)
{
s.addClearance(CourseUnitClearancesOperation.EVALUATION_TRANSITATE_TO_EDIT.name(),usession);
}
}
else if(active && isComplete)
 
 
if(!c.isValidProgram())
{
s.addClearance(CourseUnitClearancesOperation.EVALUATION_EDITSAVE.name(),usession);
s.addClearance(CourseUnitClearancesOperation.EVALUATION_PERSIST_TEACHER_PART.name(),usession);
s.addClearance(CourseUnitClearancesOperation.EVALUATION_PERSIST_COMISSION_PART.name(),usession);
s.addClearance(CourseUnitClearancesOperation.EVALUATION_TRANSITATE_TO_CLOSE.name(),usession);
s.addClearance(CourseUnitClearancesOperation.EVALUATION_TRANSITATE_TO_EDIT.name(),usession);
if(teacher)
s.addClearance(CourseUnitClearancesOperation.PROGRAM_TEACHER_PART.name(), usession);
if(isCoordinator)
{
s.addClearance(CourseUnitClearancesOperation.PROGRAM_TEACHER_PART.name(), usession);
s.addClearance(CourseUnitClearancesOperation.PROGRAM_COORDINATOR_PART.name(), usession);
}
}
else if(active && isClosed)
else
{
s.addClearance(CourseUnitClearancesOperation.EVALUATION_TRANSITATE_TO_EDIT.name(),usession);
s.addClearance(CourseUnitClearancesOperation.PROGRAM_INFO_VALID_NOT_ACTIVE.name(), usession);
}
 
}
 
c.setClearanceRuledSupport(s);
}
 
441,6 → 465,12
EVALUATION_INFO_USER_RESP_TEACHER, //INFO CLEARANCE
EVALUATION_INFO_USER_COMMISSION, //INFO CLEARANCE
 
 
PROGRAM_COORDINATOR_PART,
PROGRAM_TEACHER_PART,
PROGRAM_CAN_VALIDATE,
PROGRAM_INFO_VALID_NOT_ACTIVE
 
;
 
public static CourseUnitClearancesOperation parse(String clearance)
/branches/v3/impl/src/java/pt/estgp/estgweb/filters/filters/CourseUnitProgramClearancesFilter.java
New file
0,0 → 1,35
package pt.estgp.estgweb.filters.filters;
 
import org.apache.log4j.Logger;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.CourseUnitImpl;
import pt.estgp.estgweb.domain.UserSessionImpl;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.filters.chains.LoadControlFilter;
import pt.utl.ist.berserk.ServiceRequest;
import pt.utl.ist.berserk.ServiceResponse;
import pt.utl.ist.berserk.logic.filterManager.FilterParameters;
import pt.utl.ist.berserk.logic.filterManager.exceptions.FilterException;
 
/**
* @author Jorge Machado
* @date 4/Jun/2008
* @see pt.estgp.estgweb.filters.filters
*/
public class CourseUnitProgramClearancesFilter extends LoadControlFilter
{
private static final Logger logger = Logger.getLogger(CourseUnitProgramClearancesFilter.class);
public static final String COURSEUNIT_PROGRAM_CLEARED_SERV_PARAM = "COURSEUNIT_PROGRAM_CLEARED_SERV_PARAM";
 
public void execute(ServiceRequest request, ServiceResponse response, FilterParameters filterParameters) throws FilterException, Exception
{
UserSessionImpl usession = (UserSessionImpl) request.getServiceParameters().getParameter(Globals.USER_SESSION_KEY);
 
Long unitId = (Long) request.getServiceParameters().getParameter((String) filterParameters.parametersArray()[0]);
CourseUnitImpl c = (CourseUnitImpl) DaoFactory.getCourseUnitDaoImpl().get(unitId);
 
c.initClearances(usession,true);
 
request.getServiceParameters().addParameter(COURSEUNIT_PROGRAM_CLEARED_SERV_PARAM,c);
}
}
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/java/pt/estgp/estgweb/web/tags/NotOwnerTag.java
New file
0,0 → 1,98
package pt.estgp.estgweb.web.tags;
 
import org.apache.log4j.Logger;
import org.apache.struts.util.RequestUtils;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.IOwned;
import pt.estgp.estgweb.domain.UserSessionImpl;
 
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyTagSupport;
 
public class NotOwnerTag extends BodyTagSupport
{
 
private static final Logger logger = Logger.getLogger(NotOwnerTag.class);
 
private String name;
 
private String property;
 
private String valid;
 
public String getName()
{
return name;
}
 
public void setName(String name)
{
this.name = name;
}
 
public String getProperty()
{
return property;
}
 
public void setProperty(String property)
{
this.property = property;
}
 
 
public String getValid()
{
return valid;
}
 
public void setValid(String valid)
{
this.valid = valid;
}
 
public int doStartTag() throws JspException
{
if (go())
{
return EVAL_BODY_TAG;
}
else
return SKIP_BODY;
}
 
public boolean go() throws JspException
{
 
UserSessionImpl userSession = (UserSessionImpl) pageContext.getRequest().getAttribute(Globals.USER_SESSION_KEY);
 
IOwned owned = (IOwned) RequestUtils.lookup(pageContext, name, property, null);
return !(owned != null && userSession.getUser() != null && (owned.isOwnedBy(userSession.getUser(),false) || (userSession.getUser()).isSuperuserOrAdmin()));
 
}
 
public int doEndTag() throws JspException
{
if(go())
{
String toPage = bodyContent.getString().trim();
JspWriter writer = pageContext.getOut();
try
{
writer.write(toPage);
}
catch (Exception e)
{
logger.error(e, e);
throw new JspException(e);
}
}
 
// Continue processing this page
return EVAL_PAGE;
}
 
 
}
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/java/pt/estgp/estgweb/web/tags/NotClearOperationTag.java
61,7 → 61,16
{
UserSessionImpl userSession = (UserSessionImpl) UserSessionProxy.loadUserSessionFromRequest((HttpServletRequest) pageContext.getRequest());
ClearanceRuled ruledObj = (ClearanceRuled) RequestUtils.lookup(pageContext, name, property, null);
return !ruledObj.isClear(userSession,op);
 
String[] ops = op.split(",");
for(String opSub: ops)
{
if(ruledObj.isClear(userSession,opSub))
{
return false;
}
}
return true;
}
 
public int doEndTag() throws JspException
/branches/v3/impl/src/java/pt/estgp/estgweb/web/LayoutProxy.java
1,16 → 1,16
package pt.estgp.estgweb.web;
 
import jomm.web.utils.NavPlace;
import org.apache.log4j.Logger;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.FileNotFoundException;
import java.net.URLEncoder;
 
import jomm.web.utils.NavPlace;
 
/**
* @author Jorge Machado
* @date 26/Fev/2008
54,7 → 54,9
{
try
{
getServletContext().getRequestDispatcher("/layout.do?server=" + server + "&path=" + path + "&layout=" + layout + "&" + request.getQueryString()).forward(request,response);
//Aqui temos de codificar em UTf-8 porque estamos dentro da máquina em UTF-8
//Tem de ser com o URLEncoder e não com o URIUtil porque o URLEncoder trabalha com o + e o URIUtil apenas trabalha com diacriticos
getServletContext().getRequestDispatcher("/layout.do?server=" + server + "&path=" + URLEncoder.encode(path, "UTF-8") + "&layout=" + layout + "&" + request.getQueryString()).forward(request, response);
}
catch(FileNotFoundException e)
{
/branches/v3/impl/src/java/pt/estgp/estgweb/web/form/configuration/ConfigurationsForm.java
New file
0,0 → 1,52
package pt.estgp.estgweb.web.form.configuration;
 
import pt.estgp.estgweb.domain.Configuration;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.web.form.ApplicationForm;
 
/**
* @author Jorge Machado
* @date 25/Jun/2008
* @see pt.estgp.estgweb.web.form.courses
*/
public class ConfigurationsForm extends ApplicationForm
{
 
private String dispatch;
private long id;
private Configuration configuration;
 
 
public ConfigurationsForm()
{
 
}
 
public Configuration getConfiguration() {
if(configuration == null)
configuration = DomainObjectFactory.createConfigurationImpl();
return configuration;
}
 
public void setConfiguration(Configuration configuration) {
this.configuration = configuration;
}
 
public String getOp() {
return dispatch;
}
 
public void setOp(String dispatch) {
this.dispatch = dispatch;
}
 
 
 
public long getId() {
return id;
}
 
public void setId(long id) {
this.id = id;
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/web/FtpManager.java
57,7 → 57,7
InputStream stream = item.getInputStream();
if (item.isFormField())
{
request.setAttribute(item.getFieldName(), item.getString());
request.setAttribute(item.getFieldName(), new String(item.getString().getBytes("ISO-8859-1")));
}
if (stream != null && item.getSize() > 0 && item.getName() != null)
{
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/courseunits/CourseUnitsProgramController.java
35,6 → 35,54
 
 
 
public ActionForward validateProgram(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable {
 
CourseUnitProgramForm cUF = (CourseUnitProgramForm) form;
 
long id = cUF.getCourseUnitId();
if(id <= 0)
id = cUF.getCourseUnitView().getId();
 
IServiceManager sm = ServiceManager.getInstance();
Object[] args = new Object[]{id};
String[] names = new String[]{"unitId"};
sm.execute(RequestUtils.getRequester(request, response), "ValidateCourseUnitProgram", args,names);
 
return saveProgram(mapping,
form,
request,
response);
 
}
 
public ActionForward invalidateProgram(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable {
 
CourseUnitProgramForm cUF = (CourseUnitProgramForm) form;
 
long id = cUF.getCourseUnitId();
if(id <= 0)
id = cUF.getCourseUnitView().getId();
 
IServiceManager sm = ServiceManager.getInstance();
Object[] args = new Object[]{id};
String[] names = new String[]{"unitId"};
sm.execute(RequestUtils.getRequester(request, response), "InvalidateCourseUnitProgram", args,names);
 
return editProgram(mapping,
form,
request,
response);
 
}
 
public ActionForward editProgram(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/configuration/ConfigurationsController.java
New file
0,0 → 1,151
package pt.estgp.estgweb.web.controllers.configuration;
 
import jomm.dao.impl.AbstractDao;
import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import pt.estgp.estgweb.domain.ConfigurationGradesEpocaAvaliacao;
import pt.estgp.estgweb.domain.ConfigurationGradesStatusEpoca;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.web.UserSessionProxy;
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController;
import pt.estgp.estgweb.web.form.configuration.ConfigurationGradesForm;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
/**
* @author Jorge Machado
* @date 26/Fev/2008
* @time 18:01:54
* @see pt.estgp.estgweb.web
*/
public class ConfigurationsController extends ApplicationDispatchController
{
 
private static final Logger logger = Logger.getLogger(ConfigurationsController.class);
 
 
 
public ActionForward saveGrades(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
 
if(!UserSessionProxy.loadUserSessionFromRequest(request).getUser().isAdmin() && !UserSessionProxy.loadUserSessionFromRequest(request).getUser().hasRole("services"))
{
return mapping.findForward("error401");
}
 
ConfigurationGradesForm f = (ConfigurationGradesForm) form;
AbstractDao.getCurrentSession().beginTransaction();
for(ConfigurationGradesEpocaAvaliacao a: f.getConfigurationGrades().getEpocasAvaliacao())
{
if(a.getId() > 0)
{
ConfigurationGradesEpocaAvaliacao persist = DaoFactory.getConfigurationGradesEpocaAvaliacaoDaoImpl().load(a.getId());
persist.setCodigoEpoca(a.getCodigoEpoca());
persist.setCodigoMomento(a.getCodigoMomento());
persist.setObs(a.getObs());
persist.setDescricao(a.getDescricao());
}
}
 
for(ConfigurationGradesStatusEpoca a: f.getConfigurationGrades().getStatusEpocas())
{
if(a.getId() > 0)
{
ConfigurationGradesStatusEpoca persist = DaoFactory.getConfigurationGradesStatusEpocaDaoImpl().load(a.getId());
persist.setStatus(a.getStatus());
persist.setObs(a.getObs());
persist.setDescricao(a.getDescricao());
}
}
AbstractDao.getCurrentSession().getTransaction().commit();
 
return mapping.findForward("grades");
}
 
public ActionForward addEpocaAvaliacao(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
 
if(!UserSessionProxy.loadUserSessionFromRequest(request).getUser().isAdmin() && !UserSessionProxy.loadUserSessionFromRequest(request).getUser().hasRole("services"))
{
return mapping.findForward("error401");
}
AbstractDao.getCurrentSession().beginTransaction();
 
ConfigurationGradesEpocaAvaliacao epoca = DomainObjectFactory.createConfigurationGradesEpocaAvaliacaoImpl();
DaoFactory.getConfigurationDaoImpl().load().getConfigurationGrades().getEpocasAvaliacao().add(epoca);
DaoFactory.getConfigurationGradesEpocaAvaliacaoDaoImpl().save(epoca);
AbstractDao.getCurrentSession().getTransaction().commit();
return mapping.findForward("grades");
}
 
public ActionForward addSatusEpoca(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
 
 
if(!UserSessionProxy.loadUserSessionFromRequest(request).getUser().isAdmin() && !UserSessionProxy.loadUserSessionFromRequest(request).getUser().hasRole("services"))
{
return mapping.findForward("error401");
}
AbstractDao.getCurrentSession().beginTransaction();
ConfigurationGradesStatusEpoca status = DomainObjectFactory.createConfigurationGradesStatusEpocaImpl();
DaoFactory.getConfigurationDaoImpl().load().getConfigurationGrades().getStatusEpoca().add(status);
DaoFactory.getConfigurationGradesStatusEpocaDaoImpl().save(status);
AbstractDao.getCurrentSession().getTransaction().commit();
return mapping.findForward("grades");
}
 
public ActionForward deleteEpocaAvaliacao(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
 
if(!UserSessionProxy.loadUserSessionFromRequest(request).getUser().isAdmin() && !UserSessionProxy.loadUserSessionFromRequest(request).getUser().hasRole("services"))
{
return mapping.findForward("error401");
}
ConfigurationGradesForm f = (ConfigurationGradesForm) form;
AbstractDao.getCurrentSession().beginTransaction();
DaoFactory.getConfigurationGradesEpocaAvaliacaoDaoImpl().delete(f.getId());
AbstractDao.getCurrentSession().getTransaction().commit();
return mapping.findForward("grades");
}
 
public ActionForward deleteStatusEpoca(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
 
if(!UserSessionProxy.loadUserSessionFromRequest(request).getUser().isAdmin() && !UserSessionProxy.loadUserSessionFromRequest(request).getUser().hasRole("services"))
{
return mapping.findForward("error401");
}
ConfigurationGradesForm f = (ConfigurationGradesForm) form;
 
AbstractDao.getCurrentSession().beginTransaction();
DaoFactory.getConfigurationGradesStatusEpocaDaoImpl().delete(f.getId());
AbstractDao.getCurrentSession().getTransaction().commit();
return mapping.findForward("grades");
}
 
}
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/java/pt/estgp/estgweb/web/filters/RequestURLFilter.java
1,12 → 1,9
package pt.estgp.estgweb.web.filters;
 
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.web.utils.RequestUtils;
import org.apache.commons.httpclient.util.URIUtil;
 
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.io.IOException;
 
/**
43,13 → 40,15
String relativePath = hrequest.getServletPath();
if (relativePath == null)
relativePath = "";
else
relativePath = URIUtil.encodePath(relativePath, "ISO-8859-1");
 
if (hrequest.getPathInfo() != null && hrequest.getPathInfo().length() > 0)
{
relativePath += hrequest.getPathInfo();
relativePath += URIUtil.encodePath(hrequest.getPathInfo(), "ISO-8859-1");
}
if(hrequest.getQueryString() != null && hrequest.getQueryString().length()>0)
relativePath += "?" + hrequest.getQueryString();
relativePath += "?" + URIUtil.encodePath(hrequest.getQueryString(), "ISO-8859-1");
 
 
String url = relativePath;