package cn.newgxu.bbs.domain.group;
import cn.newgxu.bbs.domain.Forum;
import cn.newgxu.bbs.domain.Reply;
import cn.newgxu.bbs.domain.SmallNews;
import cn.newgxu.bbs.domain.Topic;
import cn.newgxu.bbs.domain.user.User;
import cn.newgxu.jpamodel.JPAEntity;
/**
*
* @author polly
* @since 4.0.0
* @version $Revision 1.1$
*/
@SuppressWarnings("serial")
public abstract class UserGroup extends JPAEntity {
protected Permission permission;
public boolean isAuthViewForum(Forum forum, User user) {
return permission.canViewForum(forum, user);
}
public boolean isAuthLock(Topic topic, User user) {
return permission.canLock(topic, user);
}
public boolean isAuthModify(Topic topic, User user) {
return permission.canModify(topic, user);
}
public boolean isAuthModify(Reply reply, User user) {
return permission.canModify(reply, user);
}
public boolean isAuthRepair(Topic topic, User user) {
return permission.canRepair(topic, user);
}
public boolean isAuthDelReply(Reply reply, User user) {
return permission.canDelReply(reply, user);
}
public boolean isAuthScreen(Reply reply, User user) {
return permission.canScreen(reply, user);
}
public boolean isAuthSetAllTop(Topic topic, User user) {
return permission.canSetAllTop(topic, user);
}
public boolean isAuthSetAreaTop(Topic topic, User user) {
return permission.canSetAreaTop(topic, user);
}
public boolean isAuthSetTop(Topic topic, User user) {
return permission.canSetTop(topic, user);
}
public boolean isAuthUnSetTop(Topic topic, User user) {
return permission.canUnSetTop(topic, user);
}
public boolean isAuthSetGood(Topic topic, User user) {
return permission.canSetGood(topic, user);
}
public boolean isAuthSetLight(Topic topic, User user) {
return permission.canSetLight(topic, user);
}
public boolean isAuthPub(Topic topic, User user) {
return permission.canPub(topic, user);
}
public boolean isAuthDelete(Topic topic, User user) {
return permission.canDelete(topic, user);
}
public boolean isAuthMoveTopic(Topic topic, User user) {
return permission.canMoveTopic(topic, user);
}
public boolean isAuthDelSmallNews(SmallNews smallNews, User user) {
return permission.canDelSmallNews(smallNews, user);
}
public boolean isAuthViewLastLogTime() {
return permission.canViewLastLogTime();
}
public boolean isAuthViewTrueName() {
return permission.canViewTrueName();
}
public boolean isAuthViewUserIp() {
return permission.canViewUserIp();
}
public boolean isInVirtualTime() {
return permission.isInVirtualTime();
}
public boolean isAuthCreateTopic() {
return isInVirtualTime();
}
public boolean isAuthCreateVote() {
return isInVirtualTime();
}
public boolean isAuthReply() {
return isInVirtualTime();
}
public boolean isAuthLeavelUp(User user) {
return permission.canLeavelUp(user);
}
public boolean isEditTitleFree() {
return permission.isEditTitleFree();
}
public boolean canViewUserIp(){
return permission.canViewUserIp();
}
public abstract int getId();
public abstract int getTypeId();
public abstract int getAgio();
public abstract int getMaxPower();
public abstract String getGroupName();
public abstract String getDisplayColor();
public abstract void leavelUp(User user);
public abstract UserGroup getGroupByExp(int exp);
public abstract UserGroup getNextGroup();
public abstract int getLeavelUpExp();
}