KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > killingar > forum > tags > UserAccessTag


1 /* Copyright 2000-2005 Anders Hovmöller
2  *
3  * The person or persons who have associated their work with
4  * this document (the "Dedicator") hereby dedicate the entire
5  * copyright in the work of authorship identified below (the
6  * "Work") to the public domain.
7  *
8  * Dedicator makes this dedication for the benefit of the
9  * public at large and to the detriment of Dedicator's heirs
10  * and successors. Dedicator intends this dedication to be an
11  * overt act of relinquishment in perpetuity of all present
12  * and future rights under copyright law, whether vested or
13  * contingent, in the Work. Dedicator understands that such
14  * relinquishment of all rights includes the relinquishment of
15  * all rights to enforce (by lawsuit or otherwise) those
16  * copyrights in the Work.
17  *
18  * Dedicator recognizes that, once placed in the public
19  * domain, the Work may be freely reproduced, distributed,
20  * transmitted, used, modified, built upon, or otherwise
21  * exploited by anyone for any purpose, commercial or non-
22  * commercial, and in any way, including by methods that have
23  * not yet been invented or conceived.
24  */

25
26 package net.killingar.forum.tags;
27
28 import net.killingar.forum.internal.AccessLevel;
29 import net.killingar.forum.internal.managers.ForumManager;
30
31 import javax.servlet.jsp.JspException JavaDoc;
32 import javax.servlet.jsp.JspTagException JavaDoc;
33
34 public class UserAccessTag extends webwork.view.taglib.WebWorkBodyTagSupport
35 {
36     private long access = 0, userID = -1;
37
38   public int doStartTag() throws JspException JavaDoc
39   {
40         try
41         {
42             ForumManager manager = (ForumManager)pageContext.getSession().getAttribute("manager");
43             if (manager.hasAccess(manager.getUserID(), access) || userID == manager.getUserID())
44                 return EVAL_BODY_TAG;
45             else
46                 return SKIP_BODY;
47         }
48         catch (Exception JavaDoc ex)
49         {
50             //ex.printStackTrace(new java.io.PrintWriter(pageContext.getOut()));
51
throw new JspTagException JavaDoc("userAccessTag: " + ex.toString());
52             //return SKIP_BODY;
53
}
54   }
55
56     public void setAccess(String JavaDoc a)
57     {
58         try
59         {
60             access = Long.parseLong(a);
61         }
62         catch(NumberFormatException JavaDoc e)
63         {
64             access = AccessLevel.parseAccessLevel(a);
65         }
66     }
67
68     public void setUserID(String JavaDoc a)
69     {
70         try
71         {
72             userID = Long.parseLong(a);
73         }
74         catch(NumberFormatException JavaDoc e)
75         {
76             try
77             {
78                 userID = ((Long JavaDoc)findValue(a)).longValue();
79             }
80             catch(ClassCastException JavaDoc e2)
81             {
82                 userID = -1; // this will throw a NPE on doStartTag()
83
}
84         }
85     }
86
87   public int doEndTag() throws JspTagException JavaDoc
88   {
89     try
90         {
91             if(bodyContent != null)
92                 bodyContent.writeOut(bodyContent.getEnclosingWriter());
93
94             bodyContent = null;
95         }
96         catch(java.io.IOException JavaDoc e)
97         {
98             throw new JspTagException JavaDoc("exception thrown: " + e);
99         }
100         return EVAL_PAGE;
101   }
102
103     public int doAfterBody() throws JspTagException JavaDoc
104     {
105         return SKIP_BODY;
106     }
107 }
108
Popular Tags