📄 bbsrights.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 + -