From 9d3c72e0c421d86cb5d7d475b0eac06d957bf04b Mon Sep 17 00:00:00 2001 From: deuce <> Date: Fri, 3 Dec 2004 07:38:42 +0000 Subject: [PATCH] Full delete permission support... --- web/root/msgs/management.ssjs | 42 +++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/web/root/msgs/management.ssjs b/web/root/msgs/management.ssjs index f338e7209f..6ec7c31d32 100644 --- a/web/root/msgs/management.ssjs +++ b/web/root/msgs/management.ssjs @@ -14,25 +14,39 @@ if(http_request.query.Action=="Delete Message(s)") { var errors=0; errorlist=new Array; - if(sub!='mail' && !msg_area.grp_list[g].sub_list[s].is_operator) { - errorlist.push("Only operators can delete messages!"); - errors++; - } - else { - for(num in http_request.query.number) { - var mnum=parseInt(http_request.query.number[num]); - if(sub==mail && ((idx=get_msg_index(false,mnum))==null || idx.to!=user.number) { + for(num in http_request.query.number) { + var mnum=parseInt(http_request.query.number[num]); + + if(sub==mail && ((idx=get_msg_index(false,mnum))==null || idx.to!=user.number) { + errors++; + errorlist.push("Cannot delete message "+mnum); + continue; + } + if(sub!='mail' && !msg_area.grp_list[g].sub_list[s].is_operator) { + if(!msg_area.grp_list[g].sub_list[s].settings&SUB_DEL) { + errorlist.push("Only operators can delete messages!"); errors++; - errorlist.push("Cannot delete message "+mnum); + continue; } - else { - if(msgbase.remove_msg(false,mnum)) - deleted++; - else { + if(msg_area.grp_list[g].sub_list[s].settings&SUB_DELLAST) { + if(msgbase.last_msg!=mnum) { + errorlist.push("You can only delete the last post!"); errors++; - errorlist.push(msgbase.last_error); + continue; } } + if((hdr=get_msg_header(false,mnum))==null || hdr.from_ext!=user.number) { + errorlist.push("You can only delete your own messages!"); + errors++; + continue; + } + } + + if(msgbase.remove_msg(false,mnum)) + deleted++; + else { + errors++; + errorlist.push(msgbase.last_error); } } template.title=deleted+" Messages Deleted"; -- GitLab