Fix for Bug #1303 notification of posts do not handle multi tabs
git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/application-support-layer/applicationSupportLayerSocial@124602 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
678f5f5f4a
commit
580cf15c6c
|
@ -14,6 +14,7 @@ import org.apache.commons.io.IOUtils;
|
|||
import org.apache.commons.net.ftp.FTP;
|
||||
import org.apache.commons.net.ftp.FTPClient;
|
||||
import org.gcube.application.framework.core.session.ASLSession;
|
||||
import org.gcube.applicationsupportlayer.social.shared.SocialNetworkingUser;
|
||||
import org.gcube.common.encryption.StringEncrypter;
|
||||
import org.gcube.common.portal.PortalContext;
|
||||
import org.gcube.common.resources.gcore.ServiceEndpoint;
|
||||
|
@ -45,13 +46,23 @@ public class ApplicationNewsManager extends SocialPortalBridge implements NewsMa
|
|||
private static String RUNTIME_RESOURCE_NAME = "SocialPortalStorage";
|
||||
private static String CATEGORY_NAME = "FTPServer";
|
||||
/**
|
||||
*
|
||||
* deprecated
|
||||
* @param aslSession the ASLSession instance
|
||||
* @param portletClassName your portlet class name will be used ad unique identifier for your applicationProfile
|
||||
*/
|
||||
@Deprecated
|
||||
public ApplicationNewsManager(ASLSession session, String portletClassName) {
|
||||
super(session, portletClassName);
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param scope the current scope
|
||||
* @param currUser an instance of {@link SocialNetworkingUser} filled with the required user data
|
||||
* @param portletClassName your portlet class name will be used ad unique identifier for your applicationProfile
|
||||
*/
|
||||
public ApplicationNewsManager(String scope, SocialNetworkingUser currUser, String portletClassName) {
|
||||
super(scope, currUser, portletClassName);
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
|
@ -98,9 +109,7 @@ public class ApplicationNewsManager extends SocialPortalBridge implements NewsMa
|
|||
//add the GET params if necessary
|
||||
if (uriParams != null && uriParams.compareTo("") != 0)
|
||||
uri += "?"+uriParams;
|
||||
//String scope = getScopeByOrganizationId(""+aslSession.getGroupId());
|
||||
String scope = aslSession.getScopeName();
|
||||
System.out.println("scope: " + aslSession.getScopeName());
|
||||
String scope = currScope;
|
||||
Feed toReturn = new Feed(
|
||||
UUID.randomUUID().toString(),
|
||||
FeedType.PUBLISH,
|
||||
|
|
|
@ -7,6 +7,7 @@ import java.util.UUID;
|
|||
|
||||
import org.gcube.application.framework.core.session.ASLSession;
|
||||
import org.gcube.applicationsupportlayer.social.mailing.EmailPlugin;
|
||||
import org.gcube.applicationsupportlayer.social.shared.SocialNetworkingUser;
|
||||
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
|
||||
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
|
||||
import org.gcube.common.homelibrary.home.workspace.WorkspaceSharedFolder;
|
||||
|
@ -37,27 +38,58 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
private String portalName;
|
||||
private String senderEmail;
|
||||
/**
|
||||
* deprecated method:please use ApplicationNotificationsManager(String scope, {@link SocialNetworkingUser} currUser, String portletClassName)
|
||||
* Use this constructor if you do not need notifications to point back to your applications
|
||||
* @param aslSession the ASLSession instance
|
||||
* @param ASLSession the ASLSession instance
|
||||
*/
|
||||
@Deprecated
|
||||
public ApplicationNotificationsManager(ASLSession session) {
|
||||
super(session);
|
||||
portalName = PortalContext.getPortalInstanceName();
|
||||
portalName = PortalContext.getConfiguration().getGatewayName();
|
||||
senderEmail = PortalContext.getConfiguration().getSenderEmail();
|
||||
_log.warn("Asked for Simple Notification (without redirect to creator)");
|
||||
}
|
||||
/**
|
||||
* deprecated method: please use ApplicationNotificationsManager(String scope, {@link SocialNetworkingUser} currUser, String portletClassName)
|
||||
* Use this constructor if you do need notifications to point back to your applications,
|
||||
* make sure you create your application profile on the infrastructure.
|
||||
*
|
||||
* @see http://gcube.wiki.gcube-system.org/gcube/index.php/Social_Networking_Library#Create_Your_Application_Profile
|
||||
* @see http://wiki.gcube-system.org/gcube/index.php/Social_Networking_Library#Create_Your_Application_Profile
|
||||
*
|
||||
* @param aslSession the ASLSession instance
|
||||
* @param ASLSession the ASLSession instance
|
||||
* @param portletClassName your portlet class name will be used ad unique identifier for your applicationProfile
|
||||
*/
|
||||
@Deprecated
|
||||
public ApplicationNotificationsManager(ASLSession session, String portletClassName) {
|
||||
super(session, portletClassName);
|
||||
portalName = PortalContext.getPortalInstanceName();
|
||||
portalName = PortalContext.getConfiguration().getGatewayName();
|
||||
senderEmail = PortalContext.getConfiguration().getSenderEmail();
|
||||
}
|
||||
/**
|
||||
* Use this constructor if you do not need notifications to point back to your applications
|
||||
* @param scope the current scope
|
||||
* @param currUser an instance of {@link SocialNetworkingUser} filled with the required user data
|
||||
*/
|
||||
public ApplicationNotificationsManager(String scope, SocialNetworkingUser currUser) {
|
||||
super(scope, currUser);
|
||||
portalName = PortalContext.getConfiguration().getGatewayName();
|
||||
senderEmail = PortalContext.getConfiguration().getSenderEmail();
|
||||
_log.warn("Asked for Simple Notification (without redirect to creator)");
|
||||
}
|
||||
/**
|
||||
*
|
||||
* Use this constructor if you do need notifications to point back to your applications,
|
||||
* make sure you create your application profile on the infrastructure.
|
||||
*
|
||||
* @see http://wiki.gcube-system.org/gcube/index.php/Social_Networking_Library#Create_Your_Application_Profile
|
||||
*
|
||||
* @param scope the current scope
|
||||
* @param currUser an instance of {@link SocialNetworkingUser} filled with the required user data
|
||||
* @param portletClassName your portlet class name will be used ad unique identifier for your applicationProfile
|
||||
*/
|
||||
public ApplicationNotificationsManager(String scope, SocialNetworkingUser currUser, String portletClassName) {
|
||||
super(scope, currUser, portletClassName);
|
||||
portalName = PortalContext.getConfiguration().getGatewayName();
|
||||
senderEmail = PortalContext.getConfiguration().getSenderEmail();
|
||||
}
|
||||
/**
|
||||
|
@ -85,9 +117,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
else
|
||||
_log.error("Error While trying to save Notification");
|
||||
}
|
||||
if (channels.contains(NotificationChannelType.EMAIL))
|
||||
EmailPlugin.getInstance().sendNotification(notification2Save, aslSession.getGroupName(), portalName, senderEmail, hashtags);
|
||||
|
||||
if (channels.contains(NotificationChannelType.EMAIL))
|
||||
EmailPlugin.getInstance().sendNotification(notification2Save, currGroupName, portalName, senderEmail, hashtags);
|
||||
|
||||
if (channels.isEmpty()) {
|
||||
_log.info("Notification was not needed as "+ notification2Save.getUserid() +" decided not to be notified for " + notification2Save.getType());
|
||||
result = true;
|
||||
|
@ -130,9 +162,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl()+"?itemid="+sharedFolder.getId(),
|
||||
"shared the workspace folder \""+ sharedFolderName +"\" with you",
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -151,9 +183,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl()+"?itemid="+unsharedFolderId,
|
||||
"unshared the workspace folder \""+ unsharedFolderName+"\"",
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -173,9 +205,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl()+"?itemid="+sharedFolder.getId(),
|
||||
"upgraded you to Administrator of the workspace folder \""+ sharedFolderName+"\"",
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -195,9 +227,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl()+"?itemid="+sharedFolder.getId(),
|
||||
"downgraded you from Administrator of the workspace folder \""+ sharedFolderName+"\"",
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -217,9 +249,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl()+"?itemid="+renamedFolderId,
|
||||
"renamed your shared folder \""+ previousName +"\" as \"" + newName+"\"",
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -242,9 +274,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl()+"?itemid="+sharedFolder.getId(),
|
||||
"added "+ user.getFullname() +" to your workspace shared folder \""+ sharedFolder.getName()+"\"",
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -273,9 +305,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl()+"?itemid="+sharedFolder.getId(),
|
||||
"added "+ addedUsersFullNames +" to your workspace shared folder \""+ sharedFolder.getName()+"\"",
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -296,9 +328,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl()+"?itemid="+sharedFolder.getId(),
|
||||
"unshared his shared folder \""+ sharedFolder.getName() + "\" from your workspace",
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -321,9 +353,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl()+"?itemid="+item.getParent().getId(),
|
||||
notifyText,
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -345,9 +377,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl()+"?itemid="+sharedFolder.getId(),
|
||||
notifyText,
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -369,9 +401,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl()+"?itemid="+sharedFolder.getId(),
|
||||
notifyText,
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -393,9 +425,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl()+"?itemid="+item.getParent().getId(),
|
||||
notifyText,
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -417,9 +449,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl()+"?itemid="+renamedItem.getParent().getId(),
|
||||
notifyText,
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -451,9 +483,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
+ messageText +"</div>"
|
||||
+ otherRecipientNames + attachmentsNotice,
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
|
||||
return saveNotification(not, optionalParams);
|
||||
}
|
||||
|
@ -462,9 +494,8 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
*/
|
||||
@Override
|
||||
public boolean notifyPost(String userIdToNotify, String feedid, String feedText, String ... hashtags) {
|
||||
|
||||
StringBuilder notificationText = new StringBuilder();
|
||||
notificationText.append("posted a news on <b> ").append(aslSession.getGroupName()).append(":</b>") // has done something
|
||||
notificationText.append("posted a news on <b> ").append(currGroupName).append(":</b>") // has done something
|
||||
.append("<br /><br /> ").append(feedText).append(" ")
|
||||
.append("<br /><br />");
|
||||
|
||||
|
@ -477,9 +508,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl()+"?oid="+feedid,
|
||||
notificationText.toString(),
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
return saveNotification(not, hashtags);
|
||||
}
|
||||
/**
|
||||
|
@ -499,9 +530,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
+ "border-left: 3px solid #ccc; font-style: italic;\">\""
|
||||
+ feedText +"\"</div>",
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId(),
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId(),
|
||||
commentKey);
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -510,7 +541,7 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
*/
|
||||
@Override
|
||||
public boolean notifyCommentReply(String userIdToNotify, String feedid, String commentText, String feedOwnerFullName, String feedOwnerId, String commentKey) {
|
||||
String notificationText = (aslSession.getUsername().compareTo(feedOwnerId) == 0) ?
|
||||
String notificationText = (currUser.getUsername().compareTo(feedOwnerId) == 0) ?
|
||||
"also commented on his post: "
|
||||
+ "<div style=\"margin-top: 10px; margin-bottom: 10px; margin-left: 50px; padding-left: 15px; border-left: 3px solid #ccc; font-style: italic;\">\""
|
||||
+ commentText +"\"</div>"
|
||||
|
@ -527,9 +558,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl()+"?oid="+feedid,
|
||||
notificationText,
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId(),
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId(),
|
||||
commentKey);
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -549,9 +580,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
+ "<div style=\"margin-top: 10px; margin-bottom: 10px; margin-left: 50px; padding-left: 15px; border-left: 3px solid #ccc; font-style: italic;\">\""
|
||||
+ commentText +"\"</div>",
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId(),
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId(),
|
||||
commentKey);
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -570,9 +601,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
"mentioned you: " + "<div style=\"margin-top: 10px; margin-bottom: 10px; margin-left: 50px; padding-left: 15px; border-left: 3px solid #ccc; font-style: italic;\">\""
|
||||
+ feedText +"\"</div>",
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId(),
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId(),
|
||||
commentKey);
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -591,9 +622,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl()+"?oid="+feedid,
|
||||
"favorited/subscribed to one of your post",
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
return saveNotification(not);
|
||||
}
|
||||
/**
|
||||
|
@ -618,9 +649,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl()+"?oid="+documentWorkflowId,
|
||||
"viewed document workflow " + escapeHtml(documentName),
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
return saveNotification(not);
|
||||
}
|
||||
/**
|
||||
|
@ -638,9 +669,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl()+"?oid="+documentWorkflowId,
|
||||
"updated document workflow " + escapeHtml(documentName),
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
return saveNotification(not);
|
||||
}
|
||||
/**
|
||||
|
@ -648,8 +679,7 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
*/
|
||||
@Override
|
||||
public boolean notifyDocumentWorkflowTaskRequest(String userIdToNotify, String documentWorkflowId, String documentName, String assignedRoleName) {
|
||||
|
||||
String notificationText = "in " + aslSession.getGroupName() + " you are requested to perform a new task in the Document Workflow titled: "
|
||||
String notificationText = "in " + currGroupName + " you are requested to perform a new task in the Document Workflow titled: "
|
||||
+ escapeHtml(documentName) + ". Your role is: " + assignedRoleName;
|
||||
|
||||
Notification not = new Notification(
|
||||
|
@ -661,9 +691,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl()+"?oid="+documentWorkflowId,
|
||||
notificationText,
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
|
||||
return saveNotification(not);
|
||||
|
||||
|
@ -682,11 +712,11 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl()+"?oid="+documentWorkflowId,
|
||||
|
||||
"forwarded the Document Workflow titled: " + escapeHtml(documentName) +
|
||||
" from status \"" + fromStepName + "\" to status \"" + toStepName +"\". In " + aslSession.getGroupName(),
|
||||
" from status \"" + fromStepName + "\" to status \"" + toStepName +"\". In " + currGroupName,
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -703,11 +733,11 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
new Date(),
|
||||
getApplicationUrl()+"?oid="+documentWorkflowId,
|
||||
"has performed the last needed forward on a Document Workflow titled: " + escapeHtml(documentName) + ". " +
|
||||
"Step \"" + fromStepName + "\" is now complete. The next step is \"" + toStepName +"\". In " + aslSession.getGroupName(),
|
||||
"Step \"" + fromStepName + "\" is now complete. The next step is \"" + toStepName +"\". In " + currGroupName,
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -727,9 +757,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl()+"?oid="+documentWorkflowId,
|
||||
notificationText,
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -746,7 +776,7 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
}
|
||||
|
||||
StringBuilder notificationText = new StringBuilder();
|
||||
notificationText.append("added the following event in the <b>").append(aslSession.getGroupName()).append("</b> shared calendar: ") // has done something
|
||||
notificationText.append("added the following event in the <b>").append(currGroupName).append("</b> shared calendar: ") // has done something
|
||||
.append("<strong>").append(eventTitle).append("</strong><br />")
|
||||
.append("<br /><strong> Time:</strong> ").append(spf.format(startDate)).append(endDateToDisplay).append("<br />")
|
||||
.append("<br /><strong> Category: </strong> ").append(eventType);
|
||||
|
@ -760,9 +790,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl(),
|
||||
notificationText.toString(),
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -780,7 +810,7 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
}
|
||||
|
||||
StringBuilder notificationText = new StringBuilder();
|
||||
notificationText.append("edited the following event in the <b>").append(aslSession.getGroupName()).append("</b> shared calendar: ") // has done something
|
||||
notificationText.append("edited the following event in the <b>").append(currGroupName).append("</b> shared calendar: ") // has done something
|
||||
.append("<strong>").append(eventTitle).append("</strong><br />")
|
||||
.append("<br /><strong> Time:</strong> ").append(spf.format(startDate)).append(endDateToDisplay).append("<br />")
|
||||
.append("<br /><strong> Category: </strong> ").append(eventType);
|
||||
|
@ -794,9 +824,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl(),
|
||||
notificationText.toString(),
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -813,7 +843,7 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
}
|
||||
|
||||
StringBuilder notificationText = new StringBuilder();
|
||||
notificationText.append("deleted the following event in the <b>").append(aslSession.getGroupName()).append("</b> shared calendar: ") // has done something
|
||||
notificationText.append("deleted the following event in the <b>").append(currGroupName).append("</b> shared calendar: ") // has done something
|
||||
.append("<strong>").append(eventTitle).append("</strong><br />")
|
||||
.append("<br /><strong> Was planned:</strong> ").append(spf.format(startDate)).append(endDateToDisplay).append("<br />")
|
||||
.append("<br /><strong> Category: </strong> ").append(eventType);
|
||||
|
@ -827,9 +857,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl(),
|
||||
notificationText.toString(),
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -847,9 +877,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
getApplicationUrl()+"?"+encodedTabularResourceParams,
|
||||
"shared the Tabular Resource \""+ tabularResourceName +"\" with you",
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
@ -878,9 +908,9 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
|
|||
url,
|
||||
notificationText,
|
||||
false,
|
||||
aslSession.getUsername(),
|
||||
aslSession.getUserFullName(),
|
||||
aslSession.getUserAvatarId());
|
||||
currUser.getUsername(),
|
||||
currUser.getFullname(),
|
||||
currUser.getUserAvatarId());
|
||||
|
||||
return saveNotification(not);
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ import javax.xml.parsers.DocumentBuilderFactory;
|
|||
|
||||
import org.gcube.application.framework.core.session.ASLSession;
|
||||
import org.gcube.applicationsupportlayer.social.ex.ApplicationProfileNotFoundException;
|
||||
import org.gcube.applicationsupportlayer.social.shared.SocialNetworkingUser;
|
||||
import org.gcube.common.portal.PortalContext;
|
||||
import org.gcube.common.resources.gcore.utils.XPathHelper;
|
||||
import org.gcube.common.scope.api.ScopeProvider;
|
||||
|
@ -36,28 +37,58 @@ public class SocialPortalBridge {
|
|||
|
||||
private static final Logger _log = LoggerFactory.getLogger(SocialPortalBridge.class);
|
||||
|
||||
protected ASLSession aslSession;
|
||||
protected String currScope;
|
||||
protected String currGroupName;
|
||||
protected SocialNetworkingUser currUser;
|
||||
protected ApplicationProfile applicationProfile;
|
||||
//unique instance
|
||||
private static DatabookStore store;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param session
|
||||
* deprecated: please use SocialPortalBridge(String scope, {@link SocialNetworkingUser} currUser)
|
||||
* @param session the ASL Session
|
||||
*/
|
||||
public SocialPortalBridge(ASLSession session, String portletClassName) {
|
||||
this.aslSession = session;
|
||||
@Deprecated
|
||||
protected SocialPortalBridge(ASLSession session) {
|
||||
this.currScope = session.getScope();
|
||||
this.currGroupName = extractGroupNameFromScope(currScope);
|
||||
this.currUser = new SocialNetworkingUser(session.getUsername(), session.getUserEmailAddress(), session.getUserFullName(), session.getUserAvatarId());
|
||||
this.applicationProfile = null;
|
||||
_log.warn("Using deprecated method of ASLSocial, please consider to upgrade your code. Current scope=" + currScope + " currentGroup name="+currGroupName);
|
||||
}
|
||||
/**
|
||||
* deprecated: please use SocialPortalBridge(String scope, {@link SocialNetworkingUser} currUser, String portletClassName)
|
||||
* @param session the ASL Session
|
||||
* @param portletClassName your application unique identifier registered in the infrastructure
|
||||
*/
|
||||
@Deprecated
|
||||
protected SocialPortalBridge(ASLSession session, String portletClassName) {
|
||||
this(session);
|
||||
this.applicationProfile = getProfileFromInfrastrucure(portletClassName);
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param session
|
||||
* @param scope the current scope
|
||||
* @param currUser an instance of {@link SocialNetworkingUser} filled with the required user data
|
||||
*/
|
||||
public SocialPortalBridge(ASLSession session) {
|
||||
this.aslSession = session;
|
||||
public SocialPortalBridge(String scope, SocialNetworkingUser currUser) {
|
||||
this.currScope = scope;
|
||||
this.currGroupName = extractGroupNameFromScope(currScope);
|
||||
this.currUser = currUser;
|
||||
this.applicationProfile = null;
|
||||
_log.debug("ASLSocial instanciated with current scope=" + currScope + " currentGroup name="+currGroupName);
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param scope the current scope
|
||||
* @param currUser an instance of {@link SocialNetworkingUser} filled with the required user data
|
||||
* @param portletClassName your application unique identifier registered in the infrastructure
|
||||
*/
|
||||
public SocialPortalBridge(String scope, SocialNetworkingUser currUser, String portletClassName) {
|
||||
this(scope, currUser);
|
||||
this.applicationProfile = getProfileFromInfrastrucure(portletClassName);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return the unique instance of the store
|
||||
|
@ -104,7 +135,7 @@ public class SocialPortalBridge {
|
|||
* @return the applicationProfile profile
|
||||
*/
|
||||
private ApplicationProfile getProfileFromInfrastrucure(String portletClassName) {
|
||||
ScopeBean scope = new ScopeBean(aslSession.getScope());
|
||||
ScopeBean scope = new ScopeBean(currScope);
|
||||
_log.debug("Trying to fetch applicationProfile profile from the infrastructure for " + portletClassName + " scope: " + scope);
|
||||
try {
|
||||
ApplicationProfile toReturn = new ApplicationProfile();
|
||||
|
@ -182,4 +213,15 @@ public class SocialPortalBridge {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
private String extractGroupNameFromScope(String scope) throws IllegalArgumentException {
|
||||
if (scope.indexOf('/') > -1) {
|
||||
String[] splits = scope.split("/");
|
||||
String groupName = splits[splits.length-1];
|
||||
return groupName;
|
||||
}
|
||||
else {
|
||||
throw new IllegalArgumentException("Scope " + scope + " is not a vaild scope, it should start with '/' ");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,66 @@
|
|||
package org.gcube.applicationsupportlayer.social.shared;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class SocialNetworkingUser implements Serializable{
|
||||
|
||||
private String username;
|
||||
private String email;
|
||||
private String fullname;
|
||||
private String userAvatarId;
|
||||
|
||||
public SocialNetworkingUser() {
|
||||
super();
|
||||
}
|
||||
|
||||
public SocialNetworkingUser(String username, String email, String fullname,
|
||||
String userAvatarId) {
|
||||
super();
|
||||
this.username = username;
|
||||
this.email = email;
|
||||
this.fullname = fullname;
|
||||
this.userAvatarId = userAvatarId;
|
||||
}
|
||||
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
|
||||
public void setUsername(String username) {
|
||||
this.username = username;
|
||||
}
|
||||
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
public void setEmail(String email) {
|
||||
this.email = email;
|
||||
}
|
||||
|
||||
public String getFullname() {
|
||||
return fullname;
|
||||
}
|
||||
|
||||
public void setFullname(String fullname) {
|
||||
this.fullname = fullname;
|
||||
}
|
||||
|
||||
public String getUserAvatarId() {
|
||||
return userAvatarId;
|
||||
}
|
||||
|
||||
public void setUserAvatarId(String userAvatarId) {
|
||||
this.userAvatarId = userAvatarId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "SocialNetworkingUser [username=" + username + ", email=" + email
|
||||
+ ", fullname=" + fullname + ", userAvatarId=" + userAvatarId
|
||||
+ "]";
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue