Ban certain users from posting by nickname and/or ID

darcs-hash:20081210191337-7b5ce-f9a083596b3f5627405c9e233c1994d8338f5731.gz
This commit is contained in:
Zach Copley 2008-12-10 14:13:37 -05:00
parent 8b15411865
commit 1e4e6eee32
3 changed files with 18 additions and 2 deletions

View File

@ -92,7 +92,10 @@ class Notice extends Memcached_DataObject
} }
static function saveNew($profile_id, $content, $source=NULL, $is_local=1, $reply_to=NULL, $uri=NULL) { static function saveNew($profile_id, $content, $source=NULL, $is_local=1, $reply_to=NULL, $uri=NULL) {
if (!Profile::staticGet($profile_id)) {
$profile = Profile::staticGet($profile_id);
if (!$profile) {
common_log(LOG_ERR, 'Problem saving notice. Unknown user.'); common_log(LOG_ERR, 'Problem saving notice. Unknown user.');
return _('Problem saving notice. Unknown user.'); return _('Problem saving notice. Unknown user.');
} }
@ -102,6 +105,13 @@ class Notice extends Memcached_DataObject
return _('Too many notices too fast; take a breather and post again in a few minutes.'); return _('Too many notices too fast; take a breather and post again in a few minutes.');
} }
$banned = common_config('profile', 'banned');
if ( in_array($profile_id, $banned) || in_array($profile->nickname, $banned)) {
common_log(LOG_WARNING, "Attempted post from banned user: $profile->nickname (user id = $profile_id).");
return _('You are banned from posting notices on this site.');
}
$notice = new Notice(); $notice = new Notice();
$notice->profile_id = $profile_id; $notice->profile_id = $profile_id;

View File

@ -130,3 +130,7 @@ $config['sphinx']['port'] = 3312;
#$config['throttle']['enabled'] = true; #$config['throttle']['enabled'] = true;
#$config['throttle']['count'] = 100; #$config['throttle']['count'] = 100;
#$config['throttle']['timespan'] = 3600; #$config['throttle']['timespan'] = 3600;
# List of users banned from posting (nicknames and/or IDs)
#$config['profile']['banned'][] = 'hacker';
#$config['profile']['banned'][] = 12345;

View File

@ -85,6 +85,8 @@ $config =
'nickname' => 'nickname' =>
array('blacklist' => array(), array('blacklist' => array(),
'featured' => array()), 'featured' => array()),
'profile' =>
array('banned' => array()),
'avatar' => 'avatar' =>
array('server' => NULL), array('server' => NULL),
'public' => 'public' =>