subiquity/subiquity
Ryan Harper 1de06aa63e Implement username field protection
man 8 useradd says:

    It is usually recommended to only use usernames that begin with a
    lower case letter or an underscore, followed by lower case
    letters, digits, underscores, or dashes. They can end with a
    dollar sign. In regular expression terms: [a-z_][a-z0-9_-]*[$]?

    On Debian, the only constraints are that usernames must neither
    start with a dash ('-') nor plus ('+') nor tilde ('~') nor
    contain a colon (':'), a comma (','), or a whitespace (space: ' ',
    end of line: '\n', tabulation: '\t', etc.).  Note that using a
    slash ('/') may break the default algorithm for the definition
    of the user's home directory.

    Usernames may only be up to 32 characters long.

In this patch we implement most of this.  Subset of the regular
expression suggested above is used to limit input into the username
field.  We've not yet determined how to provide a fixed width widget
so at this time, user can input more than 32 characters, but upon
selectin done, we raise and error and reset the state.

Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
2015-10-23 15:21:13 -05:00
..
controllers Implement ErrorView 2015-10-22 16:12:59 -05:00
models Implement ErrorView 2015-10-22 16:12:59 -05:00
tests Introduce safer loading of machine configs 2015-10-23 10:03:04 -05:00
ui Implement username field protection 2015-10-23 15:21:13 -05:00
__init__.py Release 0.0.2 2015-10-20 18:26:02 -05:00
async.py Fix up async install commands 2015-09-21 16:40:35 -05:00
controller.py Additional UI notifications and consolidate common attrs 2015-08-31 11:55:46 -04:00
core.py Introduce safer loading of machine configs 2015-10-23 10:03:04 -05:00
curtin.py Ensure install progress fails with missing curtin 2015-10-20 16:21:32 -05:00
log.py Add environment check on startup 2015-10-22 14:39:25 -05:00
meta.py Add futures/promises thread executors 2015-08-10 09:57:43 -04:00
model.py Inherit from ViewPolicy on all toplevel panels 2015-07-22 22:31:21 -04:00
palette.py Add password match validator 2015-09-28 11:03:01 -04:00
prober.py Introduce safer loading of machine configs 2015-10-23 10:03:04 -05:00
signals.py Add initial add disk partition view 2015-07-21 22:51:06 -04:00
utils.py Add environment check on startup 2015-10-22 14:39:25 -05:00
view.py Safe exit only on control-x 2015-10-21 13:03:15 -05:00