Message Editing and Deleting permissions (#4692)
Этот коммит содержится в:
коммит произвёл
Joram Wilander
родитель
8f0175e15c
Коммит
99cf08ac38
@@ -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;
|
||||
}
|
||||
Ссылка в новой задаче
Block a user