?? bbsrights.java
字號:
package com.easyjf.bbs.business;
import com.easyjf.dbo.EasyJDB;
/**
* BBS權(quán)限管理信息
* @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("該主題的內(nèi)容只有登錄后才能顯示!");
}
else if(doc.getVrtype().equals("score"))//積分限制
{
ret= user.getScore().intValue()>new Integer(doc.getVrvalue()).intValue();
//if(!ret)doc.setContent("該主題的內(nèi)容只有積分達(dá)到"+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("數(shù)量"+num.intValue());
ret=num.intValue()>0;
//if(!ret)doc.setContent("該主題的內(nèi)容只有回復(fù)后才能閱讀!");
}
else if(doc.getVrtype().equals("member"))
{
ret=user.getTypes()!=null && (!user.getTypes().equals("")) && user.checkUserRole("member");
//if(!ret)doc.setContent("該主題只有EasyJF開源團(tuán)隊(duì)成員才能閱讀!");
}
else if(doc.getVrtype().equals("admin"))
{
ret=user.getTypes()!=null && (!user.getTypes().equals("")) && user.checkUserRole("admin");
//if(!ret)doc.setContent("該主題只有EasyJF管理決策團(tuán)隊(duì)才能閱讀!");
}
return ret;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -