authenticationtag.java

来自「这是《Struts网络编程实例》一书zhogn 的源代码部分」· Java 代码 · 共 61 行

JAVA
61
字号
package org.ithinking.strutsExample.util;

import javax.servlet.jsp.tagext.TagSupport;

import org.ithinking.strutsExample.entity.Userinfo;

public class AuthenticationTag extends TagSupport{
	//当action为修改操作时,操作的用户对象
	Integer userId;
	//权限校验的动作,包括:new,delete,modify
	String action;
	public void setUserId(Integer id) {
		userId = id;
	}
	public void setAction(String action) {
		this.action = action;
	}
	 public int doStartTag()
	    {
		 	if(action==null||action.trim().length()<=0)
		 	{
		 		return SKIP_BODY;
		 	}
		 	//只有administrator具有新增和删除用户的权限
		 	if(action.equals("new")||action.equals("delete"))
		 	{
		 		Userinfo userInfo=(Userinfo)pageContext.getSession().getAttribute(SiteContance.CURRENT_USER);
		 		if(userInfo!=null)
		 		{
		 			if(userInfo.getUserloginid().equals("administrator"))
		 			{
		 				return this.EVAL_BODY_AGAIN;
		 			}
		 		}
		 	}
		 	//administrator用户可以修改所有用户的信息,当前登陆用户只能修改自己的信息
		 	if(action.equals("modify"))
		 	{
		 		Userinfo userInfo=(Userinfo)pageContext.getSession().getAttribute(SiteContance.CURRENT_USER);
		 		if(userInfo!=null)
		 		{
		 			if(userInfo.getUserloginid().equals("administrator"))
		 			{
		 				return this.EVAL_BODY_AGAIN;
		 			}
		 			else
		 			{
		 				if(userId!=null)
		 				{
		 					if(userInfo.getId().equals(userId))
		 					{
		 						return this.EVAL_BODY_AGAIN;
		 					}
		 				}
		 			}
		 		}
		 	}
		 	return SKIP_BODY;
	    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?