diff options
author | Evan Prodromou <evan@status.net> | 2010-03-25 13:49:12 -0400 |
---|---|---|
committer | Evan Prodromou <evan@status.net> | 2010-03-25 13:49:12 -0400 |
commit | 6e644f77a43ea7028e0aafb2d83059d0f19db701 (patch) | |
tree | 57f7a05c8b6190c55613d7176ccf2a70d1df1bcd /plugins/Blacklist/blacklistadminpanel.php | |
parent | edee1fc09e304616fbce4ad1d1dae6097655c4e7 (diff) |
Store blacklist patterns in their own tables
We were bumping into limits on the config format in the Blacklist
plugin. So, added new tables for nickname and homepage blacklists, and
changed the plugin to use those instead of config file (actually,
still uses config file in addition, for compatibility).
Diffstat (limited to 'plugins/Blacklist/blacklistadminpanel.php')
-rw-r--r-- | plugins/Blacklist/blacklistadminpanel.php | 40 |
1 files changed, 17 insertions, 23 deletions
diff --git a/plugins/Blacklist/blacklistadminpanel.php b/plugins/Blacklist/blacklistadminpanel.php index 98d07080d..b996aba8d 100644 --- a/plugins/Blacklist/blacklistadminpanel.php +++ b/plugins/Blacklist/blacklistadminpanel.php @@ -88,35 +88,24 @@ class BlacklistadminpanelAction extends AdminPanelAction function saveSettings() { - static $settings = array( - 'blacklist' => array('nicknames', 'urls'), - ); + $nickPatterns = array(); - $values = array(); + $rawNickPatterns = explode("\n", $this->trimmed('blacklist-nicknames')); - foreach ($settings as $section => $parts) { - foreach ($parts as $setting) { - $values[$section][$setting] = $this->trimmed("$section-$setting"); - } + foreach ($rawNickPatterns as $raw) { + $nickPatterns[] = trim($raw); } - // This throws an exception on validation errors + Nickname_blacklist::saveNew($nickPatterns); - $this->validate($values); + $rawUrlPatterns = explode("\n", $this->trimmed('blacklist-urls')); + $urlPatterns = array(); - // assert(all values are valid); - - $config = new Config(); - - $config->query('BEGIN'); - - foreach ($settings as $section => $parts) { - foreach ($parts as $setting) { - Config::save($section, $setting, $values[$section][$setting]); - } + foreach ($rawUrlPatterns as $raw) { + $urlPatterns[] = trim($raw); } - $config->query('COMMIT'); + Homepage_blacklist::saveNew($urlPatterns); return; } @@ -191,14 +180,19 @@ class BlacklistAdminPanelForm extends Form $this->out->elementStart('ul', 'form_data'); $this->out->elementStart('li'); + + $nickPatterns = Nickname_blacklist::getPatterns(); + $this->out->textarea('blacklist-nicknames', _m('Nicknames'), - common_config('blacklist', 'nicknames'), + implode("\r\n", $nickPatterns), _('Patterns of nicknames to block, one per line')); $this->out->elementEnd('li'); + $urlPatterns = Homepage_blacklist::getPatterns(); + $this->out->elementStart('li'); $this->out->textarea('blacklist-urls', _m('URLs'), - common_config('blacklist', 'urls'), + implode("\r\n", $urlPatterns), _('Patterns of URLs to block, one per line')); $this->out->elementEnd('li'); |