1
2 package com.pnpconsult.zeiterfassung.tags;
3
4 import javax.servlet.ServletRequest;
5 import javax.servlet.http.HttpServletRequest;
6 import javax.servlet.jsp.tagext.BodyTagSupport;
7
8 import org.apache.commons.logging.Log;
9 import org.apache.commons.logging.LogFactory;
10
11 /***
12 * @author <a href="mailto:powerpete@users.sf.net">M. Petersen</a>
13 * @version $Id: IsUserInRoleTag.java,v 1.3 2004/05/23 16:59:41 powerpete Exp $
14 *
15 * @jsp.tag name="isUserInRole"
16 */
17 public class IsUserInRoleTag extends BodyTagSupport
18 {
19 private static final Log LOG = LogFactory.getLog(IsUserInRoleTag.class);
20 private String role;
21
22 /***
23 * @return Returns the role.
24 * @jsp.attribute required="true" rtexprvalue="false"
25 */
26 public String getRole()
27 {
28 return role;
29 }
30
31 /***
32 * @param role The role to set.
33 */
34 public void setRole(String role)
35 {
36 this.role = role;
37 }
38
39 /***
40 * @see javax.servlet.jsp.tagext.Tag#doStartTag()
41 */
42 public int doStartTag()
43 {
44 ServletRequest request = pageContext.getRequest();
45
46 if (request instanceof HttpServletRequest)
47 {
48 if (((HttpServletRequest) request).isUserInRole(role))
49 {
50 return EVAL_BODY_INCLUDE;
51 }
52 }
53 else
54 {
55 LOG.warn("Not a HTTP context.");
56 }
57
58 return SKIP_BODY;
59 }
60
61 }