package pt.estgp.estgweb.filters.filters;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import java.util.List;
/**
* @author Jorge Machado
* @date 4/Jun/2008
* @see pt.estgp.estgweb.filters.filters
*/
public class ResourceAccessControlQuestionariosReportDocenteFilter
extends ResourceAccessControlQuestionariosReportBoardsPedagogicoFilter
{
public boolean canAccessResource
(UserSession userSession,
1.5.0/docs/api/java/lang/String.html">String identifier
)
{
if(userSession.
getUser() !=
null && userSession.
getUser() instanceof Teacher
)
{
Teacher t =
(Teacher
) userSession.
getUser();
int code = t.
getSigesCode();
QuestionarioReportDocenteFile q =
DaoFactory.
getQuestionarioReportDocenteFileDaoImpl().
findByRepository(identifier
);
if(q ==
null)
return false;
QuestionarioReportFileGroup questionarioReportFileGroup = q.
getReportGroup();
QuestionarioReportFileGroupDocentesAno questionarioReportFileGroupDocentesAno =
(QuestionarioReportFileGroupDocentesAno
) DaoFactory.
getQuestionarioReportFileGroupDaoImpl().
narrow(questionarioReportFileGroup
);
//DOCENTE SO VE SE ESTIVER ATIVO
if(q.
isActive() && q.
getEntityCode().
equals(""+code
))
return true;
//BOARDS AND PEDAGOGICO
else if(super.
canAccessResource(userSession,identifier
))
return true;
//PRESIDENTES DE ESCOLA SO VEEM SE ESTIVER ATIVO
else if(q.
isActive())
{
/*
DIRECAO DA ESCOLA SAI
//CHECK IF THERE IS ANY UNIT IN SCHOLL AND IF THIS USER IS FROM THE BOARD OF THAT SCHOOL
if(userSession.getUser().hasRole(Globals.ROLE_BOARD_SCHOOL_ESAE) ||
userSession.getUser().hasRole(Globals.ROLE_BOARD_SCHOOL_ESAE) ||
userSession.getUser().hasRole(Globals.ROLE_BOARD_SCHOOL_ESAE) ||
userSession.getUser().hasRole(Globals.ROLE_BOARD_SCHOOL_ESAE))
{
List <CourseUnit> courseUnitList = DaoFactory
.getCourseUnitDaoImpl()
.loadTeachedImportYearSemestreUnits(t.getId(), questionarioReportFileGroupDocentesAno.getImportYear());
for(CourseUnit cu : courseUnitList)
{
String instituionCode = cu.getCourse().getInstitutionalCode();
if(userSession.getUser().hasRole(Globals.ROLE_BOARD_SCHOOL(instituionCode)))
{
return true;
}
}
}
*/
//DEPARTAMENTO
//Carrega as unidades do Docente e confirma se alguma das unidades
//pertence a um departamento onde o user atual esteja ligado
List
<CourseUnit
> courseUnitList = DaoFactory
.
getCourseUnitDaoImpl()
.
loadTeachedImportYearSemestreUnits(t.
getId(), questionarioReportFileGroupDocentesAno.
getImportYear());
for(CourseUnit cu : courseUnitList
)
{
if(cu.
getCourse().
getDepartment() !=
null)
{
if(cu.
getCourse().
getDepartment().
getBoardRole() !=
null)
if(userSession.
getUser().
hasRole(cu.
getCourse().
getDepartment().
getBoardRole()))
return true;
if(cu.
getCourse().
getDepartment().
getDirectorRole() !=
null)
if(userSession.
getUser().
hasRole(cu.
getCourse().
getDepartment().
getDirectorRole()))
return true;
}
}
}
return false;
}
return false;
}
}