View Javadoc

1   // Created on 23.11.2003
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  }