📄 forumproxy.java
字号:
ForumThread thread = forum.createThread(rootMessage);
return new ForumThreadProxy(thread, authorization, permissions);
}
else {
throw new UnauthorizedException();
}
}
public ForumMessage createMessage(User user)
throws UnauthorizedException
{
if (permissions.get(ForumPermissions.CREATE_MESSAGE) ||
permissions.get(ForumPermissions.CREATE_THREAD) )
{
//The user must be anonymous or the actual user in order to post as
//that user. Otherwise, throw an exception.
if (user.hasPermission(ForumPermissions.USER_ADMIN) ||
user.isAnonymous() )
{
ForumMessage message = forum.createMessage(user);
return new ForumMessageProxy(message, authorization, permissions);
}
else {
throw new UnauthorizedException();
}
}
else {
throw new UnauthorizedException();
}
}
public void deleteThread(ForumThread thread) throws UnauthorizedException
{
if (permissions.isSystemOrForumAdmin() || permissions.get(ForumPermissions.MODERATOR)) {
forum.deleteThread(thread);
}
else {
throw new UnauthorizedException();
}
}
public void moveThread(ForumThread thread, Forum newForum) throws
UnauthorizedException, IllegalArgumentException
{
//If the user is an amdin of both forums
if (permissions.isSystemOrForumAdmin() && (
newForum.hasPermission(ForumPermissions.SYSTEM_ADMIN) ||
newForum.hasPermission(ForumPermissions.FORUM_ADMIN)))
{
forum.moveThread(thread, newForum);
}
else {
throw new UnauthorizedException();
}
}
public void addThread(ForumThread thread) throws UnauthorizedException
{
if (permissions.get(ForumPermissions.CREATE_THREAD)) {
forum.addThread(thread);
}
else {
throw new UnauthorizedException();
}
}
public ForumThread getThread(int threadID) throws ForumThreadNotFoundException
{
ForumThread thread = forum.getThread(threadID);
//Apply protection proxy and return.
return new ForumThreadProxy(thread, authorization, permissions);
}
public Iterator threads() {
Iterator iterator = forum.threads();
return new ThreadIteratorProxy(iterator, authorization, permissions);
}
public Iterator threads(int startIndex, int numResults) {
Iterator iterator = forum.threads(startIndex, numResults);
return new ThreadIteratorProxy(iterator, authorization, permissions);
}
public int getThreadCount() {
return forum.getThreadCount();
}
public int getMessageCount() {
return forum.getMessageCount();
}
public Query createQuery() {
return new QueryProxy(forum.createQuery(), authorization, permissions);
}
public void addUserPermission(User user, int permissionType)
throws UnauthorizedException
{
//Don't let someone become a System Admin through this method.
//The ForumPermissions class probably needs to be changed.
if (permissionType == ForumPermissions.SYSTEM_ADMIN) {
throw new UnauthorizedException();
}
if (permissions.isSystemOrForumAdmin()) {
forum.addUserPermission(user, permissionType);
}
else {
throw new UnauthorizedException();
}
}
public void removeUserPermission(User user, int permissionType)
throws UnauthorizedException
{
if (permissions.isSystemOrForumAdmin()) {
forum.removeUserPermission(user, permissionType);
}
else {
throw new UnauthorizedException();
}
}
public int [] usersWithPermission(int permissionType)
throws UnauthorizedException
{
if (permissions.isSystemOrForumAdmin()) {
return forum.usersWithPermission(permissionType);
}
else {
throw new UnauthorizedException();
}
}
public void addGroupPermission(Group group, int permissionType)
throws UnauthorizedException
{
//Don't let someone become a System Admin through this method.
//The ForumPermissions class probably needs to be changed.
if (permissionType == ForumPermissions.SYSTEM_ADMIN) {
throw new UnauthorizedException();
}
if (permissions.isSystemOrForumAdmin()) {
forum.addGroupPermission(group, permissionType);
}
else {
throw new UnauthorizedException();
}
}
public void removeGroupPermission(Group group, int permissionType)
throws UnauthorizedException
{
if (permissions.isSystemOrForumAdmin()) {
forum.removeGroupPermission(group, permissionType);
}
else {
throw new UnauthorizedException();
}
}
public int[] groupsWithPermission(int permissionType)
throws UnauthorizedException
{
if (permissions.isSystemOrForumAdmin()) {
return forum.groupsWithPermission(permissionType);
}
else {
throw new UnauthorizedException();
}
}
public ForumMessageFilter[] getForumMessageFilters()
throws UnauthorizedException
{
if (permissions.isSystemOrForumAdmin()) {
return forum.getForumMessageFilters();
}
else {
throw new UnauthorizedException();
}
}
public void addForumMessageFilter(ForumMessageFilter filter)
throws UnauthorizedException
{
if (permissions.isSystemOrForumAdmin()) {
forum.addForumMessageFilter(filter);
}
else {
throw new UnauthorizedException();
}
}
public void addForumMessageFilter(ForumMessageFilter filter, int index)
throws UnauthorizedException
{
if (permissions.isSystemOrForumAdmin()) {
forum.addForumMessageFilter(filter, index);
}
else {
throw new UnauthorizedException();
}
}
public void removeForumMessageFilter(int index)
throws UnauthorizedException
{
if (permissions.isSystemOrForumAdmin()) {
forum.removeForumMessageFilter(index);
}
else {
throw new UnauthorizedException();
}
}
public ForumMessage applyFilters(ForumMessage message) {
return forum.applyFilters(message);
}
public ForumPermissions getPermissions(Authorization authorization) {
return forum.getPermissions(authorization);
}
public boolean hasPermission(int type) {
return permissions.get(type);
}
public String toString() {
return forum.toString();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -