001
014
015 package com.liferay.portlet.journal.social;
016
017 import com.liferay.portal.kernel.util.Validator;
018 import com.liferay.portal.model.Layout;
019 import com.liferay.portal.security.permission.ActionKeys;
020 import com.liferay.portal.security.permission.PermissionChecker;
021 import com.liferay.portal.service.ServiceContext;
022 import com.liferay.portal.util.PortalUtil;
023 import com.liferay.portlet.journal.model.JournalArticle;
024 import com.liferay.portlet.journal.model.JournalArticleConstants;
025 import com.liferay.portlet.journal.service.JournalArticleLocalServiceUtil;
026 import com.liferay.portlet.journal.service.permission.JournalArticlePermission;
027 import com.liferay.portlet.journal.service.permission.JournalFolderPermission;
028 import com.liferay.portlet.social.model.BaseSocialActivityInterpreter;
029 import com.liferay.portlet.social.model.SocialActivity;
030 import com.liferay.portlet.social.model.SocialActivityConstants;
031
032
036 public class JournalArticleActivityInterpreter
037 extends BaseSocialActivityInterpreter {
038
039 @Override
040 public String[] getClassNames() {
041 return _CLASS_NAMES;
042 }
043
044 @Override
045 protected String getPath(
046 SocialActivity activity, ServiceContext serviceContext)
047 throws Exception {
048
049 JournalArticle article =
050 JournalArticleLocalServiceUtil.getLatestArticle(
051 activity.getClassPK());
052
053 Layout layout = article.getLayout();
054
055 if (layout != null) {
056 String groupFriendlyURL = PortalUtil.getGroupFriendlyURL(
057 layout.getGroup(), layout.isPrivateLayout(),
058 serviceContext.getThemeDisplay());
059
060 return groupFriendlyURL.concat(
061 JournalArticleConstants.CANONICAL_URL_SEPARATOR).concat(
062 article.getUrlTitle());
063 }
064
065 return null;
066 }
067
068 @Override
069 protected String getTitlePattern(
070 String groupName, SocialActivity activity) {
071
072 int activityType = activity.getType();
073
074 if (activityType == JournalActivityKeys.ADD_ARTICLE) {
075 if (Validator.isNull(groupName)) {
076 return "activity-journal-article-add-web-content";
077 }
078 else {
079 return "activity-journal-article-add-web-content-in";
080 }
081 }
082 else if (activityType == JournalActivityKeys.UPDATE_ARTICLE) {
083 if (Validator.isNull(groupName)) {
084 return "activity-journal-article-update-web-content";
085 }
086 else {
087 return "activity-journal-article-update-web-content-in";
088 }
089 }
090 else if (activityType == SocialActivityConstants.TYPE_MOVE_TO_TRASH) {
091 if (Validator.isNull(groupName)) {
092 return "activity-journal-article-move-to-trash";
093 }
094 else {
095 return "activity-journal-article-move-to-trash-in";
096 }
097 }
098 else if (activityType ==
099 SocialActivityConstants.TYPE_RESTORE_FROM_TRASH) {
100
101 if (Validator.isNull(groupName)) {
102 return "activity-journal-article-restore-from-trash";
103 }
104 else {
105 return "activity-journal-article-restore-from-trash-in";
106 }
107 }
108
109 return null;
110 }
111
112 @Override
113 protected boolean hasPermissions(
114 PermissionChecker permissionChecker, SocialActivity activity,
115 String actionId, ServiceContext serviceContext)
116 throws Exception {
117
118 int activityType = activity.getType();
119
120 if (activityType == JournalActivityKeys.ADD_ARTICLE) {
121 JournalArticle article =
122 JournalArticleLocalServiceUtil.getLatestArticle(
123 activity.getClassPK());
124
125 return JournalFolderPermission.contains(
126 permissionChecker, article.getGroupId(), article.getFolderId(),
127 ActionKeys.ADD_ARTICLE);
128 }
129 else if (activityType == JournalActivityKeys.UPDATE_ARTICLE) {
130 return JournalArticlePermission.contains(
131 permissionChecker, activity.getClassPK(), ActionKeys.UPDATE);
132 }
133
134 return JournalArticlePermission.contains(
135 permissionChecker, activity.getClassPK(), actionId);
136 }
137
138 private static final String[] _CLASS_NAMES =
139 {JournalArticle.class.getName()};
140
141 }