From: djmcgrath Date: Wed, 16 Apr 2008 03:12:54 +0000 (+0000) Subject: * Correction to factoid updates to treat appending as a modification X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=511dfa664e5f5fc35ab3345147fa8b29132b9624;p=infobot.git * Correction to factoid updates to treat appending as a modification git-svn-id: https://svn.code.sf.net/p/infobot/code/trunk@1662 c11ca15a-4712-0410-83d8-924469b57eb5 --- diff --git a/src/Factoids/Update.pl b/src/Factoids/Update.pl index 9ee8e22..75714da 100644 --- a/src/Factoids/Update.pl +++ b/src/Factoids/Update.pl @@ -52,6 +52,26 @@ sub update { my $also = ($rhs =~ s/^-?also //i); my $also_or = ($also and $rhs =~ s/\s+(or|\|\|)\s+//); + if ($also or $also_or) { + my $author = &getFactInfo($from, 'created_by'); + $author =~ /^(.*)!/; + my $created_by = $1; + + # Can they even modify factoids? + if (&IsFlag('m') ne 'm' and &IsFlag('M') ne 'M' and &IsFlag('o') ne 'o') { + &performReply("You do not have permission to modify factoids"); + return 1; + + # If they have +M but they didnt create the factoid + } elsif (&IsFlag('M') eq 'M' and + $who !~ /^\Q$created_by\E$/i + &IsFlag('m') ne 'm' + &IsFlag('o') ne 'o') { + &performReply("factoid '$lhs' is not yours to modify."); + return 1; + } + } + # factoid arguments handler. # must start with a non-variable if (&IsChanConf('factoidArguments') > 0 and $lhs =~ /^[^\$]+.*\$/) {