01: /*
02: * This program is free software; you can redistribute it and/or modify
03: * it under the terms of the GNU General Public License as published by
04: * the Free Software Foundation; either version 2 of the License, or
05: * (at your option) any later version.
06: *
07: * This program is distributed in the hope that it will be useful,
08: * but WITHOUT ANY WARRANTY; without even the implied warranty of
09: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10: * GNU Library General Public License for more details.
11: *
12: * You should have received a copy of the GNU General Public License
13: * along with this program; if not, write to the Free Software
14: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
15: */
16: package dlog4j.security;
17:
18: import javax.servlet.http.HttpServletRequest;
19: import javax.servlet.jsp.JspException;
20: import javax.servlet.jsp.tagext.TagSupport;
21:
22: import dlog4j.formbean.UserForm;
23:
24: /**
25: * 判断用户是否为某个角色的标签
26: * <xxx:isRoleOf role="manager"/>
27: * @author liudong
28: */
29: public class IsRoleOfTag extends TagSupport {
30:
31: protected String role;
32: protected String user;
33: protected boolean orNull = false;
34:
35: public int doStartTag() throws JspException {
36: UserForm tUser = null;
37: if (user == null)
38: tUser = UserForm
39: .getLoginUser((HttpServletRequest) pageContext
40: .getRequest());
41: else
42: tUser = (UserForm) pageContext.findAttribute(user);
43: if (tUser == null)
44: return orNull ? EVAL_BODY_INCLUDE : SKIP_BODY;
45: DlogRole uRole = tUser.getRole();
46: if (uRole != null && uRole.getName().equalsIgnoreCase(role)) {
47: return EVAL_BODY_INCLUDE;
48: }
49: return SKIP_BODY;
50: }
51:
52: public String getRole() {
53: return role;
54: }
55:
56: public void setRole(String role) {
57: this .role = role;
58: }
59:
60: public String getUser() {
61: return user;
62: }
63:
64: public void setUser(String user) {
65: this .user = user;
66: }
67:
68: public boolean isOrNull() {
69: return orNull;
70: }
71:
72: public void setOrNull(boolean orNull) {
73: this.orNull = orNull;
74: }
75: }
|