mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-20 05:15:16 +00:00
provide a global way of enforcing name policy restrictions, but only enforce empty names or length > storage size. Allow plugins to set other policies. In particular, you can't have an empty channel name now, but one char is legal ;-)
This commit is contained in:
parent
bf4b964aeb
commit
82ed07baa1
2 changed files with 31 additions and 4 deletions
|
@ -24,6 +24,25 @@ function identity_check_service_class($account_id) {
|
|||
return $ret;
|
||||
}
|
||||
|
||||
// Return an error message if the name is not valid. We're currently only checking
|
||||
// for an empty name or one that exceeds our storage limit (255 chars).
|
||||
// 255 chars is probably going to create a mess on some pages.
|
||||
// Plugins can set additional policies such as full name requirements, character sets, multi-byte
|
||||
// length, etc.
|
||||
|
||||
function validate_channelname($name) {
|
||||
|
||||
if(! $name)
|
||||
return t('Empty name');
|
||||
if(strlen($name) > 255)
|
||||
return t('Name too long');
|
||||
$arr = array('name' => $name);
|
||||
call_hooks('validate_channelname',$arr);
|
||||
if(x($arr,'message'))
|
||||
return $arr['message'];
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Required: name, nickname, account_id
|
||||
|
||||
|
@ -43,6 +62,12 @@ function create_identity($arr) {
|
|||
$name = escape_tags($arr['name']);
|
||||
$pageflags = ((x($arr,'pageflags')) ? intval($arr['pageflags']) : PAGE_NORMAL);
|
||||
|
||||
$name_error = validate_channelname($arr['name']);
|
||||
if($name_error) {
|
||||
$ret['message'] = $name_error;
|
||||
return $ret;
|
||||
}
|
||||
|
||||
if(check_webbie(array($nick)) !== $nick) {
|
||||
$ret['message'] = t('Nickname has unsupported characters or is already being used on this site.');
|
||||
return $ret;
|
||||
|
|
|
@ -429,10 +429,12 @@ function settings_post(&$a) {
|
|||
|
||||
if($username != $channel['channel_name']) {
|
||||
$name_change = true;
|
||||
if(mb_strlen($username) > 40)
|
||||
$err .= t(' Please use a shorter name.');
|
||||
if(mb_strlen($username) < 3)
|
||||
$err .= t(' Name too short.');
|
||||
require_once('include/identity.php');
|
||||
$err = validate_channelname($username);
|
||||
if($err) {
|
||||
notice($err);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue