1 53 54 package com.Yasna.forum.tags; 55 56 import javax.servlet.jsp.tagext.*; 57 import com.Yasna.forum.*; 58 import javax.servlet.jsp.*; 59 60 public class IsAdminUserTag extends TagSupport implements BooleanTag { 61 62 private boolean result; 63 private boolean case_ = false; 64 private boolean attrSet = false; 65 66 public int doStartTag() throws JspException { 67 if (!attrSet) { 68 case_ = false; 69 } 70 attrSet = false; 71 try { 72 Authorization authToken = getAuthToken(); 73 ForumFactory forumFactory = ForumFactory.getInstance(authToken); 74 ForumPermissions permissions = forumFactory.getPermissions(authToken); 75 boolean isSystemAdmin = permissions.get(ForumPermissions.SYSTEM_ADMIN); 76 boolean isUserAdmin = permissions.get(ForumPermissions.FORUM_ADMIN); 77 boolean isModerator = false; 78 Forum forum = getForum(); 79 if (forum != null) { 80 isModerator = forum.getPermissions(authToken).get(ForumPermissions.MODERATOR); 81 } 82 boolean isAdmin = isUserAdmin || isSystemAdmin || isModerator; 83 result = isAdmin; 84 if (isAdmin) return EVAL_BODY_INCLUDE; 85 } catch(Exception e) { 86 } 87 if (case_) { 88 return EVAL_BODY_INCLUDE; 89 } else { 90 return SKIP_BODY; 91 } 92 } 94 private Authorization getAuthToken() { 95 YazdState js = (YazdState) pageContext.getAttribute("yazdUserState",PageContext.SESSION_SCOPE); 96 return js.getAuthorization(); 97 } 98 99 private Forum getForum() { 100 ForumTag ft = null; 101 try { 102 ft = (ForumTag)this.findAncestorWithClass(this, 103 Class.forName("com.Yasna.forum.tags.ForumTag")); 104 } catch(Exception e) { 105 } 106 if (ft != null) return ft.getForum(); 107 return null; 108 } 109 110 public boolean getValue() { 111 return result; 112 } 113 114 public void setCase(String v) { 115 attrSet = true; 116 case_ = false; 117 if ("true".equals(v)) case_ = true; 118 } 119 } | Popular Tags |