[TikiWiki-commits] [Git][tikiwiki/tiki][28.x] [ENH] Prevent adding spaces in the username
"Adrien Mbuya Maloba \(@adrienmaloba\) via TikiWiki-cvs" <[email protected]>
| Newsgroups | gmane.comp.cms.tiki.cvs |
|---|---|
| Message-ID | <692221ce27e0f_2a458d06458494@gitlab-sidekiq-low-urgency-cpu-bound-v2-5d57c968f-v7cff.mail> |
Adrien Mbuya Maloba pushed to branch 28.x at Tiki Wiki CMS Groupware / Tiki
Commits:
7b712d66 by Adrien Mbuya Maloba at 2025-11-22T22:41:49+02:00
[ENH] Prevent adding spaces in the username
---
* [ENH] Prevent adding spaces in the username
---
* [ENH] Prevent adding spaces in the username
See merge request tikiwiki/tiki!9040
See merge request tikiwiki/tiki!9096
- - - - -
6 changed files:
- lib/prefs/username.php
- lib/registration/registrationlib.php
- lib/userslib.php
- lib/validators/validator_username.php
- tiki-adminusers.php
- tiki-login.php
Changes:
=====================================
lib/prefs/username.php
=====================================
@@ -13,7 +13,7 @@ function prefs_username_list()
'type' => 'text',
'size' => 25,
'perspective' => false,
- 'default' => '/^[ \'\-_a-zA-Z0-9@\.]*$/',
+ 'default' => '/^[\'\-_a-zA-Z0-9@\.]*$/',
],
];
}
=====================================
lib/registration/registrationlib.php
=====================================
@@ -263,6 +263,10 @@ class RegistrationLib extends TikiLib
$errors[] = new RegistrationError('name', tra('Username is too long'));
}
+ if (! preg_match($userlib::USERNAME_MANDATORY_VALIDATION_PATTERN, $registration['name'])) {
+ return tra("Username cannot contain any spaces");
+ }
+
if ($prefs['login_is_email'] != 'y') {
if ($this->merged_prefs['lowercase_username'] == 'y' && $validateName) {
if (preg_match('/[[:upper:]]/', $registration['name'])) {
@@ -296,6 +300,10 @@ class RegistrationLib extends TikiLib
$errors[] = new RegistrationError('name', tra('Invalid username'));
}
+ if (! preg_match($userlib::USERNAME_MANDATORY_VALIDATION_PATTERN, $registration['name'])) {
+ return tra("Username cannot contain any spaces.");
+ }
+
// Check the mode
if ($this->local_prefs['useRegisterPasscode'] == 'y') {
if ($registration['passcode'] != $prefs['registerPasscode']) {
=====================================
lib/userslib.php
=====================================
@@ -59,6 +59,7 @@ class UsersLib extends TikiLib
public $get_object_permissions_for_user_cache;
public static $cas_initialized = false;
public static $userexists_cache = [];
+ public const USERNAME_MANDATORY_VALIDATION_PATTERN = '/^\S*$/';
public function __construct()
{
@@ -7074,6 +7075,7 @@ class UsersLib extends TikiLib
global $prefs;
$cachelib = TikiLib::lib('cache');
$tikilib = TikiLib::lib('tiki');
+ $userlib = TikiLib::lib('user');
$autogenerate_uname = false;
if ($prefs['login_autogenerate'] == 'y' && $user == '') {
@@ -7084,11 +7086,11 @@ class UsersLib extends TikiLib
}
$user = trim($user);
-
if (
$this->user_exists($user)
|| empty($user)
|| (! empty($prefs['username_pattern']) && ! preg_match($prefs['username_pattern'], $user))
+ || (! preg_match($userlib::USERNAME_MANDATORY_VALIDATION_PATTERN, $user))
|| strtolower($user) == 'anonymous'
|| strtolower($user) == 'registered'
) {
=====================================
lib/validators/validator_username.php
=====================================
@@ -22,6 +22,9 @@ function validator_username($input, $parameter = '', $message = '')
if (! empty($prefs['username_pattern']) && ! preg_match($prefs['username_pattern'], $input)) {
return tra("Invalid character combination for username");
}
+ if (! preg_match($userlib::USERNAME_MANDATORY_VALIDATION_PATTERN, $input)) {
+ return tra("Username cannot contain any spaces");
+ }
if (strtolower($input) == 'anonymous' || strtolower($input) == 'registered') {
return tra("Invalid username");
}
=====================================
tiki-adminusers.php
=====================================
@@ -294,6 +294,9 @@ if (isset($_REQUEST['batch']) && is_uploaded_file($_FILES['csvlist']['tmp_name']
$errors[] = sprintf(tra('User %s already exists'), $_REQUEST['login']);
$AddUser = false;
}
+ if (! preg_match($userlib::USERNAME_MANDATORY_VALIDATION_PATTERN, $_REQUEST['login'])) {
+ return tra("Username cannot contain any spaces");
+ }
if ($prefs['login_is_email'] == 'y' && ! validate_email($_REQUEST['login'])) {
$errors[] = tra('Invalid email') . ' ' . $_REQUEST['login'];
$AddUser = false;
@@ -467,6 +470,8 @@ if (isset($_REQUEST['user']) and $_REQUEST['user']) {
if ($userinfo['login'] != $_POST['login'] && $userinfo['login'] != 'admin') {
if ($userlib->user_exists($_POST['login'])) {
$errors[] = tra('User already exists');
+ } elseif (! preg_match($userlib::USERNAME_MANDATORY_VALIDATION_PATTERN, $_POST['login'])) {
+ $errors[] = tra('Username cannot contain any spaces');
} elseif (! empty($prefs['username_pattern']) && ! preg_match($prefs['username_pattern'], $_POST['login'])) {
$errors[] = tra('User login contains invalid characters.');
} elseif ($userlib->change_login($userinfo['login'], $_POST['login'])) {
=====================================
tiki-login.php
=====================================
@@ -258,7 +258,7 @@ if (
if (! $username && $email && $oicLib->canCreateUserTiki()) {
// Remove invalid characters, based on username_pattern pref
- $username = preg_replace('/[^ \'\-_a-zA-Z0-9@\.]/', '_', $name);
+ $username = preg_replace('/[^\'\-_a-zA-Z0-9@\.]/', '_', $name);
$user = $userlib->add_user($username, '', $email);
if (! $user) {
View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/7b712d6696c03495ed20a60239699febb1b6a0e6
--
View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/7b712d6696c03495ed20a60239699febb1b6a0e6
You're receiving this email because of your account on gitlab.com.
_______________________________________________
TikiWiki-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tikiwiki-cvs