Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 967 → Rev 980

/impl/src/java/jomm/dao/impl/AbstractDao.java
757,6 → 757,7
{
for (CLAZZ obj : objs)
{
System.out.println("CLEARING: " + obj);
evictAndDelete(obj);
}
}
/impl/src/java/pt/estgp/estgweb/services/courseunits/SaveCourseUnitEvaluation.java
116,7 → 116,7
 
if(cu.getEvaluationStreamId() == null)
{
String identifier = repositoryService.storeRepositoryFile(new FileInputStream(path), "application/pdf", "pdf",((int) new File(path).length()), cu.getCode() + "-evaluation.pdf", "courseunit.evaluation.description" + cu.getName(), ResourceAccessControlEnum.privateDomain,owner);
String identifier = repositoryService.storeRepositoryFile(new FileInputStream(path), "application/pdf", "pdf",((int) new File(path).length()), cu.getCode() + "-evaluation.pdf", "courseunit.evaluation.description" + cu.getName(), ResourceAccessControlEnum.courseunitEvaluationDomain,owner);
cu.setEvaluationStreamId(identifier);
}
else
/impl/src/java/pt/estgp/estgweb/services/courseunits/LoadCourseUnitService.java
47,6 → 47,7
 
if(c == null)
return null;
 
CourseUnitView cV = new CourseUnitView(c,initTeachers,initStudents,initBlog);
 
if(c.getProgramStreamId()!= null)
/impl/src/java/pt/estgp/estgweb/services/authenticate/AuthenticateService.java
113,9 → 113,14
}
 
logger.warn("user:" + username + " authenticated");
((UserSessionImpl)userSession).clearObjectsWithOpenTransaction();
 
//((UserSessionImpl)userSession).reset();
//((UserSessionImpl)userSession).clearObjectsWithOpenTransaction();
 
//DaoFactory.getUserSessionDaoImpl().flush();
 
//PASSWORD PARA SERVICOS FTP CLIENT
((UserSessionImpl)userSession).put(FtpService.FTP_PASSWORD, DesUtils.getInstance().encrypt(password));
((UserSessionImpl) userSession).put(FtpService.FTP_PASSWORD, DesUtils.getInstance().encrypt(password));
//put password to be complete for advising
userSession.setName(u.getName());
userSession.setUsername(u.getUsername());
/impl/src/java/pt/estgp/estgweb/services/authenticate/LogoutService.java
1,12 → 1,10
package pt.estgp.estgweb.services.authenticate;
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.User;
import pt.estgp.estgweb.domain.UserSessionImpl;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import org.apache.log4j.Logger;
import pt.utl.ist.berserk.logic.serviceManager.IService;
 
/*
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt
30,6 → 28,8
{
logger.warn("user:" + userSession.getCookie() + " logout");
((UserSessionImpl)userSession).reset();
//TODO NOVO
((UserSessionImpl)userSession).clearObjectsWithOpenTransaction();
return userSession;
}
}
/impl/src/java/pt/estgp/estgweb/domain/views/CourseUnitView.java
180,7 → 180,7
{
responsableId = courseUnit.getResponsableTeacher().getId();
}
 
courseView = new CourseView(courseUnit.getCourse(),false);
}
 
public String getEvaluationStreamId() {
/impl/src/java/pt/estgp/estgweb/domain/CourseUnitImpl.java
102,6 → 102,22
 
}
 
/**
* Means that is teacher os responsable teacher or from course commission
* Only works in open transaction
*
* Needs Course and Responsable Teacher loaded
*/
public boolean isFromCourseUnitCommission(UserSession userSession)
{
return userSession.getUser()!= null &&
(((UserImpl) userSession.getUser()).isTeacherOfCourseUnit(getId(), true)
|| (getResponsableTeacher() != null && getResponsableTeacher().getId() == userSession.getUser().getId())
|| userSession.getUser().hasRole(getCourse().getValidationRole())
);
}
 
 
 
}
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitDaoImpl.java
492,7 → 492,7
.createAlias("courseUnitEvaluation", "ce")
.add(eq("c.id", courseId))
.add(not(eq("importYear", DatesUtils.getImportYear())))
.add((and(isNotNull("evaluationStreamId"), not(eq("evaluationStreamId", "")))))
.add(ge("importYear", "201415"))
.add((eq("ce.closed", false)))
.list();
}
522,10 → 522,19
{
return createCriteria()
.createAlias("course", "c")
.createAlias("courseUnitEvaluation", "ce")
.add(eq("c.id", courseId))
.add(not(eq("importYear", DatesUtils.getImportYear())))
.add((or(isNull("evaluationStreamId"), eq("evaluationStreamId", ""))))
.add(ge("importYear", "201415"))
.add(isNull("courseUnitEvaluation"))
.list();
}
 
public CourseUnit loadByEvaluationStreamId(String identifier)
{
return
(CourseUnit)
createCriteria()
.add(eq("evaluationStreamId",identifier))
.uniqueResult();
}
}
/impl/src/java/pt/estgp/estgweb/domain/UserSessionImpl.java
1,22 → 1,18
package pt.estgp.estgweb.domain;
 
import org.apache.commons.io.output.ByteArrayOutputStream;
 
import java.io.Serializable;
import java.io.ByteArrayInputStream;
import java.io.ObjectOutputStream;
import java.io.IOException;
import java.util.*;
import java.beans.XMLEncoder;
import java.beans.XMLDecoder;
 
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.estgp.estgweb.domain.dao.DaoFactory;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.Serializable;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
 
/**
* @author Jorge Machado
119,22 → 115,30
 
public void clearObjects()
{
 
if (getObjects() == null || getObjects().size() == 0)
{
return;
}
System.out.println("Clearing session from " + getObjects().size() + " objects");
for(SessionObject obj: getObjects())
System.out.println(obj.getId().getKeyId());
if(removeList != null)
removeList.addAll(getObjects());
else
removeList = getObjects();
setObjects(null);
//todo NOVO Authenticate
getObjects().clear();
}
 
public void clearObjectsWithOpenTransaction()
{
clearObjects();
if(removeList != null && removeList.size() > 0)
{
DaoFactory.getSessionObjectDaoImpl().evictAndDelete(removeList);
 
}
}
 
 
/impl/src/java/pt/estgp/estgweb/filters/chains/ResourceAccessControlEnum.java
16,7 → 16,9
superUserDomain("resource.access.superDomain",new ResourceAccessControlSuperDomainFilter()),
courseunitDeliverableDomain("resource.access.courseunitDeliverableDomain",new ResourceAccessControlCourseUnitDeliverableFilter()),
courseunitDomain("resource.access.courseunitDomain",new ResourceAccessControlCourseUnitFilter()),
// Duarte Santos
// Duarte Santos
courseunitEvaluationDomain("resource.access.courseunitEvaluationDomain",new ResourceAccessControlCourseUnitEvaluationFilter()),
 
surveyStatsDomain("resource.access.survey", new ResourceAccessControlSurvey()),
 
processDomain("resource.access.process", new ResourceAccessControlProcessDomainFilter());
/impl/src/java/pt/estgp/estgweb/filters/filters/ResourceAccessControlCourseUnitEvaluationFilter.java
New file
0,0 → 1,24
package pt.estgp.estgweb.filters.filters;
 
import org.apache.log4j.Logger;
import pt.estgp.estgweb.domain.CourseUnitImpl;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlFilter;
 
/**
* @author Jorge Machado
* @date 4/Jun/2008
* @see pt.estgp.estgweb.filters.filters
*/
public class ResourceAccessControlCourseUnitEvaluationFilter extends ResourceAccessControlFilter
{
 
private static final Logger logger = Logger.getLogger(ResourceAccessControlCourseUnitEvaluationFilter.class);
 
public boolean canAccessResource(UserSession userSession, String identifier)
{
CourseUnitImpl c = (CourseUnitImpl) DaoFactory.getCourseUnitDaoImpl().loadByEvaluationStreamId(identifier);
return c.isFromCourseUnitCommission(userSession);
}
}
Property changes:
Added: svn:executable
+ *
/impl/src/hbm/pt/estgp/estgweb/domain/UserSession.hbm.xml
18,7 → 18,7
<property name="name" type="string"/>
<property name="username" type="string"/>
<many-to-one name="user" class="pt.estgp.estgweb.domain.User" outer-join="true" lazy="false"/>
<set name="objects" cascade="all" inverse="true"><!--lazy="true">-->
<set name="objects" cascade="save-update" inverse="true"><!--lazy="true">-->
<key column="cookie"/>
<one-to-many class="pt.estgp.estgweb.domain.SessionObject"/>
</set>
/impl/src/web/user/home/teacher.jsp
220,6 → 220,8
%>
<div class="block">
<p class="WARNING"><label class="WARNING"> Tarefas das Comissões de Curso</label></p>
<p>Expanda os cursos e clique nas unidades para entrar no Relatório</p>
<p>No final de cada relatório têm um botão de validação se entender que aprova com o relatório</p>
<ul>
 
 
228,7 → 230,7
{
%>
<li>
<p>Fichas curriculares por validar</p>
<h1>Fichas curriculares por validar</h1>
<ul>
<%
for(CourseUnitDaoImpl.CourseMissingValidationProgram mis:result)
249,14 → 251,15
 
%>
<li>
<p>Relatórios de avaliação por validar</p>
<h1>Relatórios de avaliação por validar</h1>
<ul>
<%
for(CourseUnitDaoImpl.CourseMissingValidationEvaluation mis:result2)
{
%>
<li><%=mis.course.getName()%> / <%=mis.course.getCode()%>
<ul>
<li>
<h2><a href="javascript:showOrHide('evaluationValidate<%=mis.course.getId()%>')"><%=mis.course.getName()%> / <%=mis.course.getCode()%></a> (<%=mis.courseUnits.size()%>)</h2>
<ul id="evaluationValidate<%=mis.course.getId()%>" style="display: none">
<%
for(CourseUnit cu: mis.courseUnits)
{
283,14 → 286,15
 
%>
<li>
<p>Relatórios de avaliação ainda não preenchidos</p>
<h1>Relatórios de avaliação ainda não preenchidos</h1>
<ul>
<%
for(CourseUnitDaoImpl.CourseMissingValidationEvaluation mis:result3)
{
%>
<li><%=mis.course.getName()%> / <%=mis.course.getCode()%>
<ul>
<li>
<h2><a href="javascript:showOrHide('evaluationFill<%=mis.course.getId()%>')"><%=mis.course.getName()%> / <%=mis.course.getCode()%></a> (<%=mis.courseUnits.size()%>)</h2>
<ul id="evaluationFill<%=mis.course.getId()%>" style="display: none">
<%
for(CourseUnit cu: mis.courseUnits)
{