package org.sakaiproject.sitemanage.api;
import java.util.List;
import org.sakaiproject.user.api.User;
import org.sakaiproject.site.api.Site;
public interface UserNotificationProvider {
/**
* Configuration parameter for sakai.properties.
* Should the added participant emails come from the current user.
* The new account emails shouldn't use the current user as we don't want bounces
* containing passwords going back to the user who added it.
*/
public static final String NOTIFY_FROM_CURRENT_USER = "sitemanage.notifyFromCurrentUser";
/**
* Send an email to newly added user informing password
*
* @param newnonOfficialAccount
* @param emailId
* @param userName
* @param siteTitle
*/
public void notifyNewUserEmail(User user, String newUserPassword, String siteTitle);
/**
* send email notification to added participant
*/
public void notifyAddedParticipant(boolean newNonOfficialAccount, User user, String siteTitle);
/**
* send email notification to template contact people about template usage
* @param templateSiteId
* @param templateUser
* @param templateSiteTitle
* @param targetSite
*/
public void notifyTemplateUse(Site templateSite, User templateUser, Site targetSite);
/**
* notification for site creation
* @param site
* @param notifySites
* @param courseSite
* @param termTitle
* @param requestEmail
*/
public void notifySiteCreation(Site site, List notifySites, boolean courseSite, String termTitle, String requestEmail);
/**
* send course site request information to course authorizer
* return true if such email sent successfully; false otherwise
* @param instructorId
* @param requestEmail
* @param replyToEmail
* @param termTitle
* @param requestSectionInfo
* @param siteTitle
* @param siteId
* @param additionalInfo
* @param serverName
* @return
*/
public boolean notifyCourseRequestAuthorizer(String instructorId, String requestEmail, String replyToEmail, String termTitle, String requestSectionInfo, String siteTitle, String siteId, String additionalInfo, String serverName);
/**
* notify support team about course creation
* @param requestEmail
* @param serverName
* @param request
* @param termTitle
* @param requestListSize
* @param requestSectionInfo
* @param officialAccountName
* @param siteTitle
* @param siteId
* @param additionalInfo
* @param requireAuthorizer
* @param authorizerNotified
* @param authorizerNotNotified
* @return
*/
public String notifyCourseRequestSupport(String requestEmail, String serverName, String request, String termTitle, int requestListSize, String requestSectionInfo,
String officialAccountName, String siteTitle, String siteId, String additionalInfo, boolean requireAuthorizer, String authorizerNotified, String authorizerNotNotified);
/**
* notify course site requester
* @param requestEmail
* @param supportEmailContent
* @param termTitle
*/
public void notifyCourseRequestRequester(String requestEmail, String supportEmailContent, String termTitle);
/**
* Notifies user when the course site import completed
* @param toEmail
* @param siteId
* @param siteTitle
*/
public void notifySiteImportCompleted(String toEmail, String siteId, String siteTitle);
}