Rev 1928 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1928 | Rev 1934 | ||
---|---|---|---|
1 | package pt.estgp.estgweb.filters.filters; |
1 | package pt.estgp.estgweb.filters.filters; |
2 | 2 | ||
3 | import org.apache.log4j.Logger; |
3 | import org.apache.log4j.Logger; |
4 | import pt.estgp.estgweb.domain.CourseImpl; |
4 | import pt.estgp.estgweb.domain.CourseImpl; |
5 | import pt.estgp.estgweb.domain.UserSession; |
5 | import pt.estgp.estgweb.domain.UserSession; |
6 | import pt.estgp.estgweb.domain.dao.DaoFactory; |
6 | import pt.estgp.estgweb.domain.dao.DaoFactory; |
7 | import pt.estgp.estgweb.filters.chains.LoadControlFilter; |
7 | import pt.estgp.estgweb.filters.chains.LoadControlFilter; |
8 | import pt.estgp.estgweb.filters.exceptions.AccessDeniedOperationException; |
8 | import pt.estgp.estgweb.filters.exceptions.AccessDeniedOperationException; |
9 | import pt.estgp.estgweb.filters.exceptions.NeedAuthenticationException; |
9 | import pt.estgp.estgweb.filters.exceptions.NeedAuthenticationException; |
- | 10 | import pt.estgp.estgweb.services.courses.coursereport.documentmodel.CourseReportDocument; |
|
10 | import pt.estgp.estgweb.utils.Globals; |
11 | import pt.estgp.estgweb.utils.Globals; |
11 | import pt.utl.ist.berserk.ServiceRequest; |
12 | import pt.utl.ist.berserk.ServiceRequest; |
12 | import pt.utl.ist.berserk.ServiceResponse; |
13 | import pt.utl.ist.berserk.ServiceResponse; |
13 | import pt.utl.ist.berserk.logic.filterManager.FilterParameters; |
14 | import pt.utl.ist.berserk.logic.filterManager.FilterParameters; |
14 | import pt.utl.ist.berserk.logic.filterManager.exceptions.FilterException; |
15 | import pt.utl.ist.berserk.logic.filterManager.exceptions.FilterException; |
15 | 16 | ||
16 | public class IsFromCourseCommission extends LoadControlFilter { |
17 | public class IsFromCourseCommission extends LoadControlFilter { |
17 | 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(IsFromCourseCommission.class); |
18 | 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(IsFromCourseCommission.class); |
18 | 19 | ||
19 | public void execute(ServiceRequest request, ServiceResponse response, FilterParameters filterParameters) throws FilterException, 1.5.0/docs/api/java/lang/Exception.html">Exception |
20 | public void execute(ServiceRequest request, ServiceResponse response, FilterParameters filterParameters) throws FilterException, 1.5.0/docs/api/java/lang/Exception.html">Exception |
20 | { |
21 | { |
21 | 22 | ||
22 | UserSession userSession = (UserSession) request.getServiceParameters().getParameter(Globals.USER_SESSION_KEY); |
23 | UserSession userSession = (UserSession) request.getServiceParameters().getParameter(Globals.USER_SESSION_KEY); |
23 | 24 | ||
24 | if(userSession.getUser() == null) |
25 | if(userSession.getUser() == null) |
25 | { |
26 | { |
26 | logger.info("try access restricted area:" + request.getRequester()); |
27 | logger.info("try access restricted area:" + request.getRequester()); |
27 | throw new NeedAuthenticationException(); |
28 | throw new NeedAuthenticationException(); |
28 | } |
29 | } |
29 | 30 | ||
30 | if(userSession.getUser().isSuperuser()) |
31 | if(userSession.getUser().isSuperuser()) |
31 | return; |
32 | return; |
32 | 33 | ||
33 | 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)); |
34 | 5+0%2Fdocs%2Fapi+Object">Object obj = request.getServiceParameters().getParameter((1.5.0/docs/api/java/lang/String.html">String) filterParameters.getParameter(0)); |
- | 35 | 1.5.0/docs/api/java/lang/String.html">String courseCode; |
|
- | 36 | if (obj instanceof 1.5.0/docs/api/java/lang/String.html">String) { |
|
- | 37 | courseCode = (1.5.0/docs/api/java/lang/String.html">String) obj; |
|
- | 38 | } |
|
- | 39 | else if (obj instanceof CourseReportDocument) { |
|
- | 40 | courseCode = ((CourseReportDocument) obj).getCourseCode(); |
|
- | 41 | } |
|
- | 42 | else { |
|
- | 43 | logger.info("Filter: IsFromCourseCommission - Invalid parameter"); |
|
- | 44 | throw new AccessDeniedOperationException("fail.owner"); |
|
- | 45 | } |
|
- | 46 | ||
34 | CourseImpl course = DaoFactory.getCourseDaoImpl().findCourseByCode(courseCode); |
47 | CourseImpl course = DaoFactory.getCourseDaoImpl().findCourseByCode(courseCode); |
35 | 48 | ||
36 | if(!course.isFromCourseCommission(userSession.getUser())) |
49 | if(!course.isFromCourseCommission(userSession.getUser())) |
37 | { |
50 | { |
38 | logger.warn(userSession.getUser().getUsername() + ": try access restricted area"); |
51 | logger.warn(userSession.getUser().getUsername() + ": try access restricted area"); |
39 | throw new AccessDeniedOperationException("fail.owner"); |
52 | throw new AccessDeniedOperationException("fail.owner"); |
40 | } |
53 | } |
41 | } |
54 | } |
42 | } |
55 | } |
43 | 56 |