aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2017-08-31 09:29:30 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2017-08-31 09:29:30 +0200
commit511230599cd558c56bd5526ec89a9b3b8def95c2 (patch)
treebffef0368dd47442a9dd3f66dfdac0fb61e1b42a
parent710988ccd5e60087f390d34a33956a2aa6b9596e (diff)
downloadsavane-gray-511230599cd558c56bd5526ec89a9b3b8def95c2.tar.gz
savane-gray-511230599cd558c56bd5526ec89a9b3b8def95c2.tar.bz2
Improve spam management interface.
* frontend/php/include/spam.php (spam_get_user_score): Read spamscore column from the user's entry instead of recomputing it each time. * frontend/php/siteadmin/spamlist.php: Preserve list position upon washing score or banning users.
-rw-r--r--frontend/php/include/spam.php24
-rw-r--r--frontend/php/siteadmin/spamlist.php25
2 files changed, 28 insertions, 21 deletions
diff --git a/frontend/php/include/spam.php b/frontend/php/include/spam.php
index 6028be7..515af51 100644
--- a/frontend/php/include/spam.php
+++ b/frontend/php/include/spam.php
@@ -217,24 +217,12 @@ function spam_get_user_score ($user_id=0, $set_by_user_id=0)
if ($user_id == 100)
return 3;
- $set_by_user_id_sql = '';
- $set_by_user_id_params = array();
- if ($set_by_user_id)
- {
- $set_by_user_id_sql = " AND reporter_user_id=?";
- $set_by_user_id_params = array($set_by_user_id);
- }
-
- # We cannot do a count because it does not allow us to use GROUP BY
- $userscore = 0;
- $result = db_execute("SELECT score, artifact FROM trackers_spamscore WHERE affected_user_id=? $set_by_user_id_sql GROUP BY reporter_user_id",
- array_merge(array($user_id), $set_by_user_id_params));
- while ($entry = db_fetch_array($result))
- {
- $userscore++;
- if ($entry['artifact'] == 'resume')
- $userscore += 8;
- }
+ $result = db_execute("SELECT spamscore FROM user WHERE user_id=?",
+ array($user_id));
+ if ($entry = db_fetch_array($result))
+ $userscore = $entry['spamscore'];
+ else
+ $userscore = 0;
return $userscore;
}
diff --git a/frontend/php/siteadmin/spamlist.php b/frontend/php/siteadmin/spamlist.php
index 454ac91..7539cea 100644
--- a/frontend/php/siteadmin/spamlist.php
+++ b/frontend/php/siteadmin/spamlist.php
@@ -90,6 +90,25 @@ else
$users_offset = intval($users_offset);
$result = db_execute("SELECT user_name,realname,user_id,spamscore FROM user WHERE status='A' AND spamscore > 0 ORDER BY spamscore DESC LIMIT ?,?", array($users_offset,($users_max_rows+1)));
+
+function mkurl($q)
+{
+ $url = $_SERVER['PHP_SELF'];
+ $delim = '?';
+ foreach (array('users_max_rows', 'users_offset',
+ 'ip_max_rows', 'ip_offset') as $kw)
+ {
+ global ${$kw};
+ if (${$kw})
+ {
+ $url .= $delim . $kw . '=' . ${$kw};
+ $delim = '&';
+ }
+ }
+ $url .= $delim . $q;
+ return $url;
+}
+
if (!db_numrows($result))
{
print '<p>'._("No suspects found").'</p>';
@@ -158,8 +177,8 @@ else
print '<tr class="'.utils_get_alt_row_color($i).'">';
print '<td width="25%">'.utils_user_link($entry['user_name'], $entry['realname']).'</td>';
print '<td width="5%" class="center">'.$entry['spamscore'].'</td>';
- print '<td width="5%" class="center">'.utils_link($_SERVER['PHP_SELF'].'?ban_user_id='.$entry['user_id'].'#users_results', '<img src="'.$GLOBALS['sys_home'].'images/'.SV_THEME.'.theme/misc/trash.png" alt="'._("Ban user").'" />').'</td>';
- print '<td width="5%" class="center">'.utils_link($_SERVER['PHP_SELF'].'?wash_user_id='.$entry['user_id'].'#users_results', '<img src="'.$GLOBALS['sys_home'].'images/'.SV_THEME.'.theme/bool/ok.png" alt="'._("Wash score").'" />').'</td>';
+ print '<td width="5%" class="center">'.utils_link(mkurl('ban_user_id='.$entry['user_id'].'#users_results'), '<img src="'.$GLOBALS['sys_home'].'images/'.SV_THEME.'.theme/misc/trash.png" alt="'._("Ban user").'" />').'</td>';
+ print '<td width="5%" class="center">'.utils_link(mkurl('wash_user_id='.$entry['user_id'].'#users_results'), '<img src="'.$GLOBALS['sys_home'].'images/'.SV_THEME.'.theme/bool/ok.png" alt="'._("Wash score").'" />').'</td>';
print '<td width="30%">'.$incriminated_content.'</td>';
print '<td width="30%">'.$flagged_by.'</td>';
print '</tr>';
@@ -197,7 +216,7 @@ else
if ($i > 1)
print ', ';
- print utils_link($_SERVER['PHP_SELF'].'?wash_ip='.$entry['ip'].'#ip_results',
+ print utils_link(mkurl('wash_ip='.$entry['ip'].'#ip_results'),
$entry['ip'].' <img src="'.$GLOBALS['sys_home'].'images/'.SV_THEME.'.theme/bool/ok.png" alt="'._("Wash IP").'" />');
}

Return to:

Send suggestions and report system problems to the System administrator.