1 64 65 70 package com.jcorporate.expresso.ext.taglib; 71 72 import com.jcorporate.expresso.core.misc.CurrentLogin; 73 import com.jcorporate.expresso.core.security.User; 74 import com.jcorporate.expresso.services.dbobj.GroupMembers; 75 76 import javax.servlet.http.HttpServletRequest ; 77 import javax.servlet.http.HttpServletResponse ; 78 import javax.servlet.jsp.JspTagException ; 79 import java.util.StringTokenizer ; 80 81 82 88 public class IfMemberOfGroup 89 extends ExpressoTagSupport { 90 private boolean inverse = false; 91 private String groupname = ""; 92 private String delimiter = ""; 93 94 97 public IfMemberOfGroup() { 98 super(); 99 } 100 101 107 public int doEndTag() 108 throws javax.servlet.jsp.JspTagException { 109 return EVAL_PAGE; 110 } 111 112 118 public int doStartTag() 119 throws javax.servlet.jsp.JspTagException { 120 121 boolean isMember = false; 122 String userName = ""; 123 124 try { 125 HttpServletRequest request = (HttpServletRequest ) pageContext.getRequest(); 127 HttpServletResponse response = (HttpServletResponse ) pageContext.getResponse(); 128 CurrentLogin myLogin = (CurrentLogin) pageContext.getSession().getAttribute(CurrentLogin.LOGIN_KEY); 131 if (myLogin != null) { 132 int uid = myLogin.getUid(); 134 userName = myLogin.getUserName(); 135 136 String currentDB = myLogin.getDBName(); 137 138 if (User.isAdmin(userName)) { 141 isMember = true; 142 } else if (!"".equals(delimiter)) { 143 StringTokenizer stok = new StringTokenizer (groupname, delimiter); 144 while (stok.hasMoreTokens()) { 145 String oneGroup = stok.nextToken(); 146 GroupMembers gm = new GroupMembers(User.getAdminId(currentDB)); 147 gm.setDataContext(currentDB); 148 gm.setField("ExpUid", uid); 149 gm.setField("GroupName", oneGroup); 150 151 if (gm.find()) { 152 isMember = true; 153 break; 154 } 155 } 156 } else { 157 GroupMembers gm = new GroupMembers(User.getAdminId(currentDB)); 158 gm.setDataContext(currentDB); 159 gm.setField("ExpUid", uid); 160 gm.setField("GroupName", groupname); 161 162 if (gm.find()) { 163 isMember = true; 164 } 165 } 166 } 167 } catch (Exception e) { 168 throw new JspTagException ("Exception:" + 169 e.getMessage()); 170 } 171 172 if (userName.equals("") || User.isUnknownUser(userName)) { 174 isMember = false; 175 } 176 177 if (inverse) { 179 isMember = !isMember; 180 } 181 182 if (isMember) { 184 return EVAL_BODY_INCLUDE; 185 } else { 186 return SKIP_BODY; 187 } 188 } 189 190 195 public boolean getInverse() { 196 return inverse; 197 } 198 199 204 public void setInverse(boolean newInverse) { 205 inverse = newInverse; 206 } 207 208 213 public String getGroupname() { 214 return groupname; 215 } 216 217 222 public void setGroupname(String name) { 223 groupname = name; 224 } 225 226 231 public String getDelimiter() { 232 return delimiter; 233 } 234 235 240 public void setDelimiter(String delimiter) { 241 this.delimiter = delimiter; 242 } 243 } 244 | Popular Tags |