/**********************************************************************************
* $URL: https://source.sakaiproject.org/svn/msgcntr/trunk/messageforums-api/src/java/org/sakaiproject/api/app/messageforums/ui/UIPermissionsManager.java $
* $Id: UIPermissionsManager.java 9227 2006-05-15 15:02:42Z cwen@iupui.edu $
***********************************************************************************
*
* Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008 The Sakai Foundation
*
* Licensed under the Educational Community License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.opensource.org/licenses/ECL-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**********************************************************************************/
package org.sakaiproject.api.app.messageforums.ui;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.sakaiproject.api.app.messageforums.DiscussionForum;
import org.sakaiproject.api.app.messageforums.DiscussionTopic;
import org.sakaiproject.api.app.messageforums.Area;
/**
* @author <a href="mailto:rshastri@iupui.edu">Rashmi Shastri</a>
*/
public interface UIPermissionsManager
{
/**
* @return
*/
public boolean isNewForum();
/**
* @return
*/
public boolean isChangeSettings(DiscussionForum forum);
/**
* @param forum
* @return
*/
public boolean isNewTopic(DiscussionForum forum);
/**
* @param topic
* @return
*/
public boolean isNewResponse(DiscussionTopic topic, DiscussionForum forum);
/**
* @param topic
* @return
*/
public boolean isNewResponseToResponse(DiscussionTopic topic, DiscussionForum forum);
/**
* @param topic
* @return
*/
public boolean isMovePostings(DiscussionTopic topic, DiscussionForum forum);
/**
* @param topic
* @return
*/
public boolean isChangeSettings(DiscussionTopic topic, DiscussionForum forum);
/**
*
* @param topic
* @param forum
* @param userId
* @return
*/
public boolean isChangeSettings(DiscussionTopic topic, DiscussionForum forum, String userId);
/**
* @param topic
* @return
*/
public boolean isPostToGradebook(DiscussionTopic topic, DiscussionForum forum);
public boolean isPostToGradebook(DiscussionTopic topic, DiscussionForum forum, String userId);
public boolean isPostToGradebook(DiscussionTopic topic, DiscussionForum forum, String userId, String contextId);
/**
* @param topic
* @return
*/
public boolean isRead(DiscussionTopic topic, DiscussionForum forum );
public boolean isRead(DiscussionTopic topic, DiscussionForum forum, String userId);
public boolean isRead(DiscussionTopic topic, DiscussionForum forum, String userId, String siteContextId);
public boolean isRead(Long topicId, Boolean isTopicDraft, Boolean isForumDraft, String userId, String siteContextId);
/**
* @param topic
* @return
*/
public boolean isReviseAny(DiscussionTopic topic, DiscussionForum forum);
/**
* @param topic
* @return
*/
public boolean isReviseOwn(DiscussionTopic topic, DiscussionForum forum);
/**
* @param topic
* @return
*/
public boolean isDeleteAny(DiscussionTopic topic, DiscussionForum forum);
/**
* @param topic
* @return
*/
public boolean isDeleteOwn(DiscussionTopic topic, DiscussionForum forum);
/**
* @param topic
* @return
*/
public boolean isMarkAsRead(DiscussionTopic topic, DiscussionForum forum);
/**
* Returns whether current user has perm to moderate in this situation
* @param topic
* @param forum
* @return
*/
public boolean isModeratePostings(Long topicId, Boolean isForumLocked, Boolean isForumDraft, Boolean isTopicLocked, Boolean isTopicDraft, String userId, String siteId);
public boolean isModeratePostings(DiscussionTopic topic, DiscussionForum forum, String userId, String siteId);
public boolean isModeratePostings(DiscussionTopic topic, DiscussionForum forum, String userId);
public boolean isModeratePostings(DiscussionTopic topic, DiscussionForum forum);
/**
* Returns list of current user's memberships
* (role + groups/sections)
* @return
*/
public List getCurrentUserMemberships();
public List getCurrentUserMemberships(String siteId);
public Set getAreaItemsSet(Area area);
public Set getForumItemsSet(DiscussionForum forum);
public Set getTopicItemsSet(DiscussionTopic topic);
}