Subversion Repositories bacoAlunos

Rev

Rev 1586 | Rev 1656 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.filters.filters;

import pt.estgp.estgweb.Globals;
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())
            {
                //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))
                {
                    5+0%2Fdocs%2Fapi+List">List <CourseUnit> courseUnitList = DaoFactory
                            .getCourseUnitDaoImpl()
                            .loadTeachedImportYearSemestreUnits(t.getId(), questionarioReportFileGroupDocentesAno.getImportYear());

                    for(CourseUnit cu : courseUnitList)
                    {
                        1.5.0/docs/api/java/lang/String.html">String instituionCode = cu.getCourse().getInstitutionalCode();
                        if(userSession.getUser().hasRole(Globals.ROLE_BOARD_SCHOOL(instituionCode)))
                        {
                            return true;
                        }
                    }
                }
            }

            return false;

        }
        return false;
    }
}