diff options
author | Christopher Speller <crspeller@gmail.com> | 2017-09-06 23:04:13 -0700 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2017-09-06 23:11:58 -0700 |
commit | d8bd57901e33a7057e26e782e295099ffcc0da89 (patch) | |
tree | e12dfc8cad42b1576756d19d7fbfd82646a009bf /webapp/utils/post_utils.jsx | |
parent | 7bc8e9a08dfde56387f946fdf5086252aa4d0491 (diff) | |
download | chat-d8bd57901e33a7057e26e782e295099ffcc0da89.tar.gz chat-d8bd57901e33a7057e26e782e295099ffcc0da89.tar.bz2 chat-d8bd57901e33a7057e26e782e295099ffcc0da89.zip |
Removing webapp
Diffstat (limited to 'webapp/utils/post_utils.jsx')
-rw-r--r-- | webapp/utils/post_utils.jsx | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/webapp/utils/post_utils.jsx b/webapp/utils/post_utils.jsx deleted file mode 100644 index 670dfbaaf..000000000 --- a/webapp/utils/post_utils.jsx +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -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'; -import ChannelStore from 'stores/channel_store.jsx'; - -export function isSystemMessage(post) { - return Boolean(post.type && (post.type.lastIndexOf(Constants.SYSTEM_MESSAGE_PREFIX) === 0)); -} - -export function isFromWebhook(post) { - return post.props && post.props.from_webhook === 'true'; -} - -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; - } - return false; -} - -export function isEdited(post) { - return post.edit_at > 0; -} - -export function getProfilePicSrcForPost(post, user) { - let src = ''; - if (user && user.id === post.user_id) { - src = Utils.imageURLForUser(user); - } else { - src = Utils.imageURLForUser(post.user_id); - } - - if (post.props && post.props.from_webhook && !post.props.use_user_icon && global.window.mm_config.EnablePostIconOverride === 'true') { - if (post.props.override_icon_url) { - src = post.props.override_icon_url; - } else { - src = Constants.DEFAULT_WEBHOOK_LOGO; - } - } else if (isSystemMessage(post)) { - src = Constants.SYSTEM_MESSAGE_PROFILE_IMAGE; - } - - return src; -} - -export function canDeletePost(post) { - const isOwner = isPostOwner(post); - const isSystemAdmin = UserStore.isSystemAdminForCurrentUser(); - const isTeamAdmin = TeamStore.isTeamAdminForCurrentTeam() || isSystemAdmin; - const isChannelAdmin = ChannelStore.isChannelAdminForCurrentChannel() || isTeamAdmin; - const isAdmin = isChannelAdmin || isTeamAdmin || isSystemAdmin; - - if (global.window.mm_license.IsLicensed === 'true') { - return (global.window.mm_config.RestrictPostDelete === Constants.PERMISSIONS_DELETE_POST_ALL && (isOwner || isChannelAdmin)) || - (global.window.mm_config.RestrictPostDelete === Constants.PERMISSIONS_DELETE_POST_TEAM_ADMIN && isTeamAdmin) || - (global.window.mm_config.RestrictPostDelete === Constants.PERMISSIONS_DELETE_POST_SYSTEM_ADMIN && isSystemAdmin); - } - - return isOwner || isAdmin; -} - -export function canEditPost(post, editDisableAction) { - const isOwner = isPostOwner(post); - let 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) { - const timeLeft = (post.create_at + (global.window.mm_config.PostEditTimeLimit * 1000)) - Utils.getTimestamp(); - if (timeLeft > 0) { - editDisableAction.fireAfter(timeLeft + 1000); - } else { - canEdit = false; - } - } - } - return canEdit; -} - -export function shouldShowDotMenu(post) { - if (Utils.isMobile()) { - return true; - } - - if (!isSystemMessage(post)) { - return true; - } - - if (canDeletePost(post)) { - return true; - } - - if (canEditPost(post)) { - return true; - } - - return false; -} - -export function containsAtMention(text, key) { - if (!text || !key) { - return false; - } - - // This doesn't work for at mentions containing periods or hyphens - return new RegExp(`\\B${key}\\b`, 'i').test(removeCode(text)); -} - -// Returns a given text string with all Markdown code replaced with whitespace. -export function removeCode(text) { - // These patterns should match the ones in app/notification.go, except JavaScript doesn't - // support \z for the end of the text in multiline mode, so we use $(?![\r\n]) - const codeBlockPattern = /^[^\S\n]*[`~]{3}.*$[\s\S]+?(^[^\S\n]*[`~]{3}$|$(?![\r\n]))/m; - const inlineCodePattern = /`+(?:.+?|.*?\n(.*?\S.*?\n)*.*?)`+/m; - - return text.replace(codeBlockPattern, '').replace(inlineCodePattern, ' '); -} |