summaryrefslogtreecommitdiffstats
path: root/webapp/utils/post_utils.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/utils/post_utils.jsx')
-rw-r--r--webapp/utils/post_utils.jsx41
1 files changed, 41 insertions, 0 deletions
diff --git a/webapp/utils/post_utils.jsx b/webapp/utils/post_utils.jsx
index 88021c2a5..20993b95c 100644
--- a/webapp/utils/post_utils.jsx
+++ b/webapp/utils/post_utils.jsx
@@ -3,11 +3,19 @@
import Client from 'client/web_client.jsx';
import Constants from 'utils/constants.jsx';
+import * as Utils from 'utils/utils.jsx';
+
+import TeamStore from 'stores/team_store.jsx';
+import UserStore from 'stores/user_store.jsx';
export function isSystemMessage(post) {
return post.type && (post.type.lastIndexOf(Constants.SYSTEM_MESSAGE_PREFIX) === 0);
}
+export function isPostOwner(post) {
+ return UserStore.getCurrentId() === post.user_id;
+}
+
export function isComment(post) {
if ('root_id' in post) {
return post.root_id !== '' && post.root_id != null;
@@ -33,3 +41,36 @@ export function getProfilePicSrcForPost(post, timestamp) {
return src;
}
+
+export function canDeletePost(post) {
+ var isOwner = isPostOwner(post);
+ var isAdmin = TeamStore.isTeamAdminForCurrentTeam() || UserStore.isSystemAdminForCurrentUser();
+ var isSystemAdmin = UserStore.isSystemAdminForCurrentUser();
+
+ if (global.window.mm_license.IsLicensed === 'true') {
+ return (global.window.mm_config.RestrictPostDelete === Constants.PERMISSIONS_DELETE_POST_ALL && (isOwner || isAdmin)) ||
+ (global.window.mm_config.RestrictPostDelete === Constants.PERMISSIONS_DELETE_POST_TEAM_ADMIN && isAdmin) ||
+ (global.window.mm_config.RestrictPostDelete === Constants.PERMISSIONS_DELETE_POST_SYSTEM_ADMIN && isSystemAdmin);
+ }
+ return isOwner || isAdmin;
+}
+
+export function canEditPost(post, editDisableAction) {
+ var isOwner = isPostOwner(post);
+
+ var canEdit = isOwner && !isSystemMessage(post);
+
+ if (canEdit && global.window.mm_license.IsLicensed === 'true') {
+ if (global.window.mm_config.AllowEditPost === Constants.ALLOW_EDIT_POST_NEVER) {
+ canEdit = false;
+ } else if (global.window.mm_config.AllowEditPost === Constants.ALLOW_EDIT_POST_TIME_LIMIT) {
+ var timeLeft = (post.create_at + (global.window.mm_config.PostEditTimeLimit * 1000)) - Utils.getTimestamp();
+ if (timeLeft > 0) {
+ editDisableAction.fireAfter(timeLeft + 1000);
+ } else {
+ canEdit = false;
+ }
+ }
+ }
+ return canEdit;
+} \ No newline at end of file