added notifications to administrators upgrade/downgrade
git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@100271 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
696726c5cc
commit
7b7af0e7e8
|
@ -60,6 +60,7 @@ import org.gcube.portlets.user.workspace.server.notifications.NotificationsProdu
|
||||||
import org.gcube.portlets.user.workspace.server.notifications.NotificationsUtil;
|
import org.gcube.portlets.user.workspace.server.notifications.NotificationsUtil;
|
||||||
import org.gcube.portlets.user.workspace.server.resolver.UriResolverReaderParameter;
|
import org.gcube.portlets.user.workspace.server.resolver.UriResolverReaderParameter;
|
||||||
import org.gcube.portlets.user.workspace.server.shortener.UrlShortener;
|
import org.gcube.portlets.user.workspace.server.shortener.UrlShortener;
|
||||||
|
import org.gcube.portlets.user.workspace.server.util.DiffereceBeetweenInfoContactModel;
|
||||||
import org.gcube.portlets.user.workspace.server.util.HttpRequestUtil;
|
import org.gcube.portlets.user.workspace.server.util.HttpRequestUtil;
|
||||||
import org.gcube.portlets.user.workspace.server.util.StringUtil;
|
import org.gcube.portlets.user.workspace.server.util.StringUtil;
|
||||||
import org.gcube.portlets.user.workspace.server.util.UserUtil;
|
import org.gcube.portlets.user.workspace.server.util.UserUtil;
|
||||||
|
@ -3064,9 +3065,36 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
|
||||||
|
|
||||||
if(item!=null && item.getType().equals(WorkspaceItemType.SHARED_FOLDER)){
|
if(item!=null && item.getType().equals(WorkspaceItemType.SHARED_FOLDER)){
|
||||||
WorkspaceSharedFolder sharedFolder = (WorkspaceSharedFolder) item;
|
WorkspaceSharedFolder sharedFolder = (WorkspaceSharedFolder) item;
|
||||||
|
|
||||||
|
//retrieving old administrators list
|
||||||
|
GWTWorkspaceBuilder builder = getGWTWorkspaceBuilder();
|
||||||
|
workspaceLogger.info("Retrieving old administator/s..");
|
||||||
|
List<InfoContactModel> oldAdmins = builder.buildGxtInfoContactsFromPortalLogins(sharedFolder.getAdministrators());
|
||||||
|
workspaceLogger.info("Retrieving old administator/s are/is: "+oldAdmins.size());
|
||||||
|
|
||||||
workspaceLogger.info("Setting administators:");
|
workspaceLogger.info("Setting administators:");
|
||||||
printList(listContactLogins);
|
printList(listContactLogins);
|
||||||
sharedFolder.setAdmins(listContactLogins);
|
sharedFolder.setAdmins(listContactLogins);
|
||||||
|
|
||||||
|
workspaceLogger.info("Converting new administator/s..");
|
||||||
|
List<InfoContactModel> newAdmins = builder.buildGxtInfoContactsFromPortalLogins(listContactLogins);
|
||||||
|
NotificationsProducer np = getNotificationProducer();
|
||||||
|
|
||||||
|
workspaceLogger.info("Sending notifications downgrade/upgrade administator/s..");
|
||||||
|
DiffereceBeetweenInfoContactModel diff1 = new DiffereceBeetweenInfoContactModel(oldAdmins, newAdmins);
|
||||||
|
List<InfoContactModel> contactsDowngrade = diff1.getDifferentsContacts();
|
||||||
|
|
||||||
|
for (InfoContactModel infoContactModel : contactsDowngrade) {
|
||||||
|
np.notifyAdministratorDowngrade(infoContactModel, sharedFolder);
|
||||||
|
}
|
||||||
|
|
||||||
|
DiffereceBeetweenInfoContactModel diff2 = new DiffereceBeetweenInfoContactModel(newAdmins, oldAdmins);
|
||||||
|
List<InfoContactModel> contactsUpgrade = diff2.getDifferentsContacts();
|
||||||
|
|
||||||
|
for (InfoContactModel infoContactModel : contactsUpgrade) {
|
||||||
|
np.notifyAdministratorUpgrade(infoContactModel, sharedFolder);
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}else
|
}else
|
||||||
|
|
|
@ -632,6 +632,85 @@ public class NotificationsProducer {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Runs a new thread to notify the contacts passed in input
|
||||||
|
* @param userToNotify
|
||||||
|
* @param sharedFolder
|
||||||
|
*/
|
||||||
|
public void notifyAdministratorUpgrade(final InfoContactModel userToNotify, final WorkspaceSharedFolder sharedFolder){
|
||||||
|
|
||||||
|
new Thread() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
|
||||||
|
// printContacts(listContacts);
|
||||||
|
logger.trace("Send notifies administrator upgrade is running...");
|
||||||
|
if(userToNotify==null || userToNotify.getLogin()==null){
|
||||||
|
logger.warn("Notification abort user to notify is null...");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(sharedFolder==null){
|
||||||
|
logger.warn("Notification abort sharedFolder to notify is null...");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try{
|
||||||
|
String login = userToNotify.getLogin();
|
||||||
|
logger.trace("Send notifies administrator upgrade for login: "+login);
|
||||||
|
|
||||||
|
boolean notify = notificationsMng.notifyAdministratorUpgrade(login, sharedFolder);
|
||||||
|
logger.trace("Notification sent correctly? "+notify);
|
||||||
|
}catch (Exception e) {
|
||||||
|
logger.error("An error occured in notifyAdministratorUpgrade ", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
logger.trace("notifies of administrator upgrade completed");
|
||||||
|
}
|
||||||
|
|
||||||
|
}.start();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Runs a new thread to notify the contacts passed in input
|
||||||
|
* @param userToNotify
|
||||||
|
* @param sharedFolder
|
||||||
|
*/
|
||||||
|
public void notifyAdministratorDowngrade(final InfoContactModel userToNotify, final WorkspaceSharedFolder sharedFolder){
|
||||||
|
|
||||||
|
new Thread() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
|
||||||
|
// printContacts(listContacts);
|
||||||
|
logger.trace("Send notifies administrator Downgrade is running...");
|
||||||
|
if(userToNotify==null || userToNotify.getLogin()==null){
|
||||||
|
logger.warn("Notification abort user to notify is null...");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(sharedFolder==null){
|
||||||
|
logger.warn("Notification abort sharedFolder to notify is null...");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try{
|
||||||
|
String login = userToNotify.getLogin();
|
||||||
|
logger.trace("Send notifies administrator Downgrade for login: "+login);
|
||||||
|
|
||||||
|
boolean notify = notificationsMng.notifyAdministratorDowngrade(login, sharedFolder);
|
||||||
|
logger.trace("Notification sent correctly? "+notify);
|
||||||
|
}catch (Exception e) {
|
||||||
|
logger.error("An error occured in notifyAdministratorDowngrade ", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
logger.trace("notifies of administrator Downgrade completed");
|
||||||
|
}
|
||||||
|
|
||||||
|
}.start();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
//DEBUG
|
//DEBUG
|
||||||
private void printContacts(List<InfoContactModel> listContacts){
|
private void printContacts(List<InfoContactModel> listContacts){
|
||||||
|
|
Loading…
Reference in New Issue