KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jresearch > gossip > tags > userstatus > CheckAccessTag


1 /*
2  * Created on 01.09.2004
3  *
4  */

5 package org.jresearch.gossip.tags.userstatus;
6
7 import javax.servlet.http.HttpServletRequest JavaDoc;
8 import javax.servlet.http.HttpSession JavaDoc;
9 import javax.servlet.jsp.JspException JavaDoc;
10 import javax.servlet.jsp.tagext.TagSupport JavaDoc;
11
12 import org.jresearch.gossip.IConst;
13 import org.jresearch.gossip.am.ban.BanGuard;
14 import org.jresearch.gossip.am.model.IPermissionGuard;
15 import org.jresearch.gossip.am.values.PermissionPoint;
16 import org.jresearch.gossip.exception.SystemException;
17
18 /**
19  * @author dbelov
20  *
21  */

22 public class CheckAccessTag extends TagSupport JavaDoc {
23
24     private String JavaDoc var;
25
26     private String JavaDoc objectId;
27
28     private String JavaDoc operationId;
29
30     /**
31      * @return Returns the var.
32      */

33     public String JavaDoc getVar() {
34         return var;
35     }
36
37     /**
38      * @param var
39      * The var to set.
40      */

41     public void setVar(String JavaDoc var) {
42         this.var = var;
43     }
44
45     /**
46      * @return Returns the objectId.
47      */

48     public String JavaDoc getObjectId() {
49         return objectId;
50     }
51
52     /**
53      * @param objectId
54      * The objectId to set.
55      */

56     public void setObjectId(String JavaDoc objectId) {
57         this.objectId = objectId;
58     }
59
60     /**
61      * @return Returns the operationId.
62      */

63     public String JavaDoc getOperationId() {
64         return operationId;
65     }
66
67     /**
68      * @param operationId
69      * The operationId to set.
70      */

71     public void setOperationId(String JavaDoc operationId) {
72         this.operationId = operationId;
73     }
74
75     /*
76      * (non-Javadoc)
77      *
78      * @see javax.servlet.jsp.tagext.Tag#doStartTag()
79      */

80     public int doStartTag() throws JspException JavaDoc {
81         BanGuard guard;
82         try {
83             Boolean JavaDoc isAlloved = haveAccess((HttpServletRequest JavaDoc) pageContext
84                     .getRequest());
85             if (this.var != null)
86                 pageContext.setAttribute(var, isAlloved);
87             if (isAlloved.booleanValue()) {
88                 return EVAL_BODY_INCLUDE;
89             }
90             return SKIP_BODY;
91         } catch (SystemException e) {
92             throw new JspException JavaDoc(e);
93         }
94     }
95
96     private Boolean JavaDoc haveAccess(HttpServletRequest JavaDoc request)
97             throws SystemException {
98         HttpSession JavaDoc session = request.getSession();
99         if (session.getAttribute(IConst.SESSION.PERMISSION_GUARD_KEY) == null) {
100             throw new SystemException("PERMISSION_GUARD not found in session");
101         }
102         IPermissionGuard guard = (IPermissionGuard) session
103                 .getAttribute(IConst.SESSION.PERMISSION_GUARD_KEY);
104
105         PermissionPoint point = new PermissionPoint(Integer
106                 .parseInt(this.objectId), Integer.parseInt(this.operationId));
107         return new Boolean JavaDoc(guard.checkPermission(point));
108
109     }
110 }
Popular Tags