parent
ab9ffc715a
commit
514edb984f
|
@ -137,6 +137,32 @@ module.exports = class Message {
|
||||||
return null !== _.get(this, 'meta.System.remote_from_user', null);
|
return null !== _.get(this, 'meta.System.remote_from_user', null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
:TODO: finish me
|
||||||
|
static checkUserHasDeleteRights(user, messageIdOrUuid, cb) {
|
||||||
|
const isMessageId = _.isNumber(messageIdOrUuid);
|
||||||
|
const getMetaName = isMessageId ? 'getMetaValuesByMessageId' : 'getMetaValuesByMessageUuid';
|
||||||
|
|
||||||
|
Message[getMetaName](messageIdOrUuid, 'System', Message.SystemMetaNames.LocalToUserID, (err, localUserId) => {
|
||||||
|
if(err) {
|
||||||
|
return cb(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
// expect single value
|
||||||
|
if(!_.isString(localUserId)) {
|
||||||
|
return cb(Errors.Invalid(`Invalid ${Message.SystemMetaNames.LocalToUserID} value: ${localUserId}`));
|
||||||
|
}
|
||||||
|
|
||||||
|
localUserId = parseInt(localUserId);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
userHasDeleteRights(user) {
|
||||||
|
const messageLocalUserId = parseInt(this.meta.System[Message.SystemMetaNames.LocalToUserID]);
|
||||||
|
return (this.isPrivate() && user.userId === messageLocalUserId) || user.isSysOp();
|
||||||
|
}
|
||||||
|
|
||||||
static get WellKnownAreaTags() {
|
static get WellKnownAreaTags() {
|
||||||
return WELL_KNOWN_AREA_TAGS;
|
return WELL_KNOWN_AREA_TAGS;
|
||||||
}
|
}
|
||||||
|
@ -660,6 +686,21 @@ module.exports = class Message {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
deleteMessage(requestingUser, cb) {
|
||||||
|
if(!this.userHasDeleteRights(requestingUser)) {
|
||||||
|
return cb(Errors.AccessDenied('User does not have rights to delete this message'));
|
||||||
|
}
|
||||||
|
|
||||||
|
msgDb.run(
|
||||||
|
`DELETE FROM message
|
||||||
|
WHERE message_uuid = ?;`,
|
||||||
|
[ this.messageUuid ],
|
||||||
|
err => {
|
||||||
|
return cb(err);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// :TODO: FTN stuff doesn't have any business here
|
// :TODO: FTN stuff doesn't have any business here
|
||||||
getFTNQuotePrefix(source) {
|
getFTNQuotePrefix(source) {
|
||||||
source = source || 'fromUserName';
|
source = source || 'fromUserName';
|
||||||
|
|
Loading…
Reference in New Issue