]> git.ipfire.org Git - ipfire.org.git/commitdiff
accounts: Use regex to enforce correct length of usernames
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 18 Nov 2019 11:18:55 +0000 (11:18 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 18 Nov 2019 11:18:55 +0000 (11:18 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/backend/accounts.py
src/templates/auth/register.html

index 67bb18943e473f0d2447d9b5d2d29097f647cdc4..5251ef331589baa0ea3a5b1e02be42aedf4c3ff7 100644 (file)
@@ -127,12 +127,8 @@ class Accounts(Object):
                        return result
 
        def uid_is_valid(self, uid):
-               # UID must be at least four characters
-               if len(uid) < 4:
-                       return False
-
                # https://unix.stackexchange.com/questions/157426/what-is-the-regex-to-validate-linux-users
-               m = re.match(r"^[a-z_][a-z0-9_-]{0,31}$", uid)
+               m = re.match(r"^[a-z_][a-z0-9_-]{3,31}$", uid)
                if m:
                        return True
 
index 6b2527849907693279f40b6b4eb8982e769743b1..c72607a19c3ec292edc7b16c9ee512860beb0d74 100644 (file)
                                                </div>
                                                <input type="text" class="form-control form-control-lg"
                                                        name="uid" placeholder="{{ _("Username") }}" required autofocus
-                                                       pattern="[a-z_][a-z0-9_-]{0,31}">
+                                                       pattern="[a-z_][a-z0-9_-]{3,31}">
                                        </div>
                                        <div id="uid-invalid" class="invalid-feedback">
-                                               {{ _("Please choose a username in UNIX format: Starting with a lowercase letter, followed by only lowercase ASCII characters and digits only.") }}
+                                               {{ _("Please choose a username in UNIX format with at least four characters, starting with a lowercase letter, followed by only lowercase letters, digits, dash and underscore.") }}
                                        </div>
                                        <div id="uid-taken" class="invalid-feedback">
                                                {{ _("This username is not available.") }}