Subversion Repositories bacoAlunos

Rev

Rev 1923 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1923 grupo6 1
package pt.estgp.estgweb.filters.filters;
2
 
3
import org.apache.log4j.Logger;
4
import pt.estgp.estgweb.domain.CourseImpl;
5
import pt.estgp.estgweb.domain.CourseUnit;
6
import pt.estgp.estgweb.domain.UserImpl;
7
import pt.estgp.estgweb.domain.UserSession;
8
import pt.estgp.estgweb.domain.dao.DaoFactory;
9
import pt.estgp.estgweb.filters.chains.LoadControlFilter;
10
import pt.estgp.estgweb.filters.exceptions.AccessDeniedOperationException;
11
import pt.estgp.estgweb.filters.exceptions.NeedAuthenticationException;
12
import pt.estgp.estgweb.utils.Globals;
13
import pt.utl.ist.berserk.ServiceRequest;
14
import pt.utl.ist.berserk.ServiceResponse;
15
import pt.utl.ist.berserk.logic.filterManager.FilterParameters;
16
import pt.utl.ist.berserk.logic.filterManager.exceptions.FilterException;
1924 grupo6 17
//filtro feito, altera o nome se qusieres falta adicionar no sd.xml ma pus no fd.xml e fcd.xml
1923 grupo6 18
public class IsCourseCoordenatorClass extends LoadControlFilter {
19
 
20
 
21
    private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(IsCourseCoordenatorClass.class);
22
 
23
    public void execute(ServiceRequest request, ServiceResponse response, FilterParameters filterParameters) throws FilterException, 1.5.0/docs/api/java/lang/Exception.html">Exception
24
    {
25
 
26
        UserSession userSession = (UserSession) request.getServiceParameters().getParameter(Globals.USER_SESSION_KEY);
27
 
28
        if(userSession.getUser() == null)
29
        {
30
            logger.info("try access restricted area:" + request.getRequester());
31
            throw new NeedAuthenticationException();
32
        }
33
 
34
        if(userSession.getUser().isSuperuser())
35
            return;
36
 
37
        1.5.0/docs/api/java/lang/String.html">String courseCode = (1.5.0/docs/api/java/lang/String.html">String) request.getServiceParameters().getParameter((1.5.0/docs/api/java/lang/String.html">String) filterParameters.getParameter(0));
38
        CourseImpl courseUnit = DaoFactory.getCourseDaoImpl().findCourseByCode(courseCode);
39
 
40
        if (!courseUnit.isFromCourseCommission(userSession)){
41
            logger.warn(userSession.getUser().getUsername() + ": try access restricted area");
42
            throw new AccessDeniedOperationException("fail.owner");
43
        }
44
 
45
    }
46
}