⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bbsrights.java

📁 EasyJF信息发布全部源代码!
💻 JAVA
字号:
package com.easyjf.bbs.business;

import com.easyjf.dbo.EasyJDB;

/**
 * BBS权限管理信息
 * @author 蔡世友
 *
 */
public class BBSRights {
	public static boolean checkRights(Object obj,String Operater,ActiveUser user)
	{
		boolean ret=true;
		if(obj instanceof BBSDoc)
		{
			ret=checkBBSDocRights((BBSDoc)obj,Operater,user);
		}
		else if(obj instanceof UserInfo)
		{
			ret=checkUserRights((UserInfo)obj,Operater,user);
		}
		else if(obj instanceof BBSDir)
		{
			ret=checkBBSDirRights((BBSDir)obj,Operater,user);
		}			
		return ret;
	}
	public static boolean checkAdministrator(ActiveUser user)
	{
		BBSUserRole role=BBSUserRole.getUserRole(null,user);
		return role.isAdministrator();
	}
	private static boolean checkBBSDocRights(BBSDoc doc,String operator,ActiveUser user)
	{
		BBSUserRole role=BBSUserRole.getUserRole(doc,user);	
		if(operator.equals("add"))
		{
			if(doc.getParentId()!=null && (!doc.getParentId().equals(""))) return true;
			else
			return role.isValidateUser();
		}
		else if(operator.equals("del"))
		{
			return role.isAuthor()||role.isSubManager()||role.isManager()||role.isAdministrator();
		}
		else if(operator.equals("edit")||operator.equals("editMessage"))
		{
			//System.out.println("是否作者本人:"+role.isAuthor());
			return role.isAuthor()||role.isSubManager()||role.isManager()||role.isAdministrator();
		}
		else if(operator.equals("new"))
		{
			return role.isValidateUser();
		}
		else if(operator.equals("update"))
		{
			return role.isAuthor()||role.isSubManager()||role.isManager()||role.isAdministrator();
		}
		else if(operator.equals("reply"))
		{
			return true;//role.isValidateUser();
		}
		else if(operator.equals("show"))
		{
			return true;
		}
		else if(operator.equals("read"))
		{
			if(doc.getVrtype()==null || doc.getVrtype().equals(""))return true;
			else if(user==null)
			{
				//doc.setContent("该帖只有论坛会员才能阅读!");
				return false;//未登录
			}
			UserInfo u=UserInfo.readByUserName(user.getUserName());
			return checkBBSReadRights(u,doc);
		}
		else if(operator.equals("setTopMessage"))
		{
			return role.isAdministrator()||role.isManager()||role.isSubManager();
		}
		else if(operator.equals("setEliteMessage"))
		{
			return role.isAdministrator()||role.isManager()||role.isSubManager();
		}
		else if(operator.equals("lockMessage"))
		{
			return role.isAdministrator()||role.isManager()||role.isSubManager();
		}
		else if(operator.equals("delMessage"))
		{
			return role.isAdministrator()||role.isManager()||role.isSubManager();
		}
		else if(operator.equals("moveMessage"))
		{
			return role.isAdministrator()||role.isManager()||role.isSubManager();
		}
		else if(operator.equals("lockUser"))
		{
			return role.isAdministrator();
		}		
		return true;
	}
	private static boolean checkBBSDirRights(BBSDir dir,String operator,ActiveUser user)
	{
		BBSUserRole role=BBSUserRole.getUserRole(dir,user);
		if(operator.equals("add"))
		{
			return role.isAdministrator();
		}
		else if(operator.equals("del"))
		{
			return  role.isAdministrator();
		}
		else if(operator.equals("edit"))
		{
			return role.isAdministrator();
		}
		else if(operator.equals("new"))
		{
			return role.isAdministrator();
		}
		else if(operator.equals("update"))
		{
			return role.isAdministrator();
		}		
		else if(operator.equals("show"))
		{
			return true;
		}		
		return true;
	}
	private static boolean checkUserRights(UserInfo u,String operator,ActiveUser user)
	{
		if("reg".equals(operator))return true;		
		BBSUserRole role=BBSUserRole.getUserRole(u,user);
		if(operator.equals("list"))
		{
			return role.isAdministrator();
		}
		else if(operator.equals("add"))
		{
			return role.isAdministrator();
		}
		else if(operator.equals("del"))
		{
			return role.isAuthor()||role.isAdministrator();
		}
		else if(operator.equals("edit"))
		{
			return role.isAuthor()||role.isAdministrator();
		}
		else if(operator.equals("new"))
		{
			return role.isAdministrator();
		}
		else if(operator.equals("update"))
		{
			return role.isAuthor()||role.isAdministrator();
		}		
		else if(operator.equals("show"))
		{
			return true;
		}	
		else if(operator.equals("isAdministrator"))
		{
			return role.isAdministrator();
		}
		return true;
	}
	public static boolean checkBBSReadRights(UserInfo user,BBSDoc doc)
	{
		boolean ret=false;
		//会员
		if(doc.getVrtype().equals("user"))
		{
			ret=user!=null;
			//if(!ret)doc.setContent("该主题的内容只有登录后才能显示!");
		}			
		else if(doc.getVrtype().equals("score"))//积分限制
		{
			ret= user.getScore().intValue()>new Integer(doc.getVrvalue()).intValue();
			//if(!ret)doc.setContent("该主题的内容只有积分达到"+doc.getVrvalue()+"的用户才能阅读!");
		}
		else if(doc.getVrtype().equals("reply"))
		{
			EasyJDB db=EasyJDB.getInstance();
			Number num=(Number)db.uniqueResult("select count(*) from BBSDoc where parentId='"+doc.getCid()+"' and inputUser='"+user.getUserName()+"'");
			//System.out.println("数量"+num.intValue());
			ret=num.intValue()>0;
			//if(!ret)doc.setContent("该主题的内容只有回复后才能阅读!");
		}
		else if(doc.getVrtype().equals("member"))
		{
			ret=user.getTypes()!=null && (!user.getTypes().equals("")) && user.checkUserRole("member");
			//if(!ret)doc.setContent("该主题只有EasyJF开源团队成员才能阅读!");
		}
		else if(doc.getVrtype().equals("admin"))
		{
			ret=user.getTypes()!=null && (!user.getTypes().equals("")) && user.checkUserRole("admin");
			//if(!ret)doc.setContent("该主题只有EasyJF管理决策团队才能阅读!");
		}
		return ret;
	}
}

⌨️ 快捷键说明

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