Commit Graph

40 Commits

Author SHA1 Message Date
Adriaan de Groot
1dcf56761f [users] Apply validation to the passwords config knows about
- avoid update loops by checking values before emitting *Changed()
- check validity of user and root passwords when asked
- if root isn't going to be written, or re-uses the user password,
  defer to those status checks.
2020-08-17 12:48:43 +02:00
Adriaan de Groot
b49b9a66e6 [users] Drop data-access from the Page
- get username, password etc. from the config object, not the page
- jobs now depend entirely on config
- handle logic of "what's the root password" in Config
2020-08-05 13:42:18 +02:00
Adriaan de Groot
900deb5dc8 [users] Move the configuration of password checks to Config
- the Widget (Page) does not need to know the password checks,
  that's business logic that belongs to Config.
2020-08-05 13:03:18 +02:00
Adriaan de Groot
35dff4d12c [users] Migrate reuse-password and password-strength to Config
- add the "reuse user password for root" setting to Config,
  make the UI page follow that setting.
- add the require-strong-password default and toggle settings to
  Config; this is not well-checked yet.

On the widget / UI side, connect checkboxes only if they are
visible; refactor reuse-user-password-for-root settings.
2020-08-04 22:40:27 +02:00
Adriaan de Groot
cc2e3f79ff [users] Move job creation from widget to viewstep
- This is a half-step: the ViewStep shouldn't do job creation either,
  eventually it needs to be the Config object, but this is better
  than asking the widget (UI) to create some jobs.
- When updating login- or host-name, or the autologin setting,
  set it in GS as well. This is a minor improvement over doing
  it only when leaving the page.
- Since the Config object isn't complete, there are leftovers in
  the widget, which has a fillGlobalStorage() for the not-jobs-related
  bits previously in createJobs().
2020-07-28 12:16:03 +02:00
Adriaan de Groot
6a03bcb25e [users] Move setRootPassword to Config
- this really controls whether a root password is written during installtion,
  so rename to writeRootPassword in the code.
2020-07-28 11:59:53 +02:00
Adriaan de Groot
45b71c24e7 [users] Move autologin setting to Config 2020-07-28 11:41:52 +02:00
Adriaan de Groot
9018913af5 [users] Move hostname validation to Config 2020-07-28 10:45:38 +02:00
Adriaan de Groot
40d7d1baac [users] Move login validation to Config object
- add a loginNameStatus which is a QString (empty if things are ok)
  stating what's wrong with the loginName, if anything.
2020-07-28 10:21:23 +02:00
Adriaan de Groot
8a14cc7ffc [users] Move some configuration from Page to Config object
- make the HostName textbox just a view on the Config's HostName
- make the username and login textboxes view onto Config
- query the Config rather than the UI for job data
2020-07-27 17:26:46 +02:00
Adriaan de Groot
f9b114a67a [users] Pass the Config object to the Page
- delay construction of the Page (widget) until it's needed
- hand the Config object to the Page on construction

This is prep-work for putting the configuration information into the
Config object, rather than in the UI elements.
2020-07-27 17:26:46 +02:00
Adriaan de Groot
2471e74aab [users] Provide some accessors to the UI-page data 2020-02-17 15:50:22 +01:00
Adriaan de Groot
e11c9a049f [users] Sort the password checks before applying them 2019-11-08 13:21:37 +01:00
Adriaan de Groot
a4e3ea2a86 [users] Refactor retranslation
- move retranslation to a method so that code-formatting doesn't
   get confused by it.
2019-11-01 13:55:32 +01:00
Adriaan de Groot
9fa817a244 [users] Refactor password-validation
- add a method that does the work and sets UI strings for a
   generic double-field password entry
 - use that for user and root passwords
2019-11-01 13:55:32 +01:00
Adriaan de Groot
8232ca626c [users] Refactor constants 2019-10-29 16:21:26 +01:00
Adriaan de Groot
eb90757063 [users] Apply coding style (lots of churn) 2019-10-21 17:21:33 +02:00
bill-auger
1513934a57
add checkbox to disable password validations 2019-08-30 08:13:33 -04:00
Adriaan de Groot
9331a25905 [libcalamares] Remove Typedefs.h
- This small header file contained a few unrelated typedefs.
   Move those typedefs to the classes they relate to. This
   **does** mean that some consumers need to #include something
   else instead.
 - Use type names more consistently.

Editorial: why are **pages** responsible for creating the jobs?
2019-05-07 09:51:23 -04:00
Adriaan de Groot
dd8e53dc22 Copyright: update copyright lines on files touched in 2018
Contributions from:
  Adriaan de Groot <groot@kde.org>
  Gabriel Craciunescu <crazy@frugalware.org>
  AlmAck <gluca86@gmail.com>
  Andrius Štikonas <andrius@stikonas.eu>
  Caio Carvalho <caiojcarvalho@gmail.com>
  Raul Rodrigo Segura <raurodse@gmail.com>
2018-06-15 05:59:11 -04:00
Adriaan de Groot
ed15edabf9 [users] Document passwordRequirements and code 2018-05-23 04:37:18 -04:00
Adriaan de Groot
27e1de6548 [users] Use libpwquality for additional password checks
- add cmake module to find libpwquality
 - move checking functions to their own file
 - some Transifex hackery
 - stub out the libpwquality check
2018-01-24 14:13:50 +01:00
Adriaan de Groot
762ad54344 Documentation: change http links to GitHub to https 2017-12-20 08:39:09 -05:00
Adriaan de Groot
d839f8e0b3 Passwords: introduce password-checking
- Introduce a map 'passwordRequirements' in users.conf,
   which is a list of named requirements. There are only
   two settings right now, min and max length, but
   additional checks can easily be added in UsersPage.cpp
   by defining additional lambda's to check the given
   password string.
 - Add PasswordCheck instances as needed, with functions
   to check acceptability and to produce messages on rejection.
 - Documentation in the users.conf file itself.

 - In passing, refactor setting of pixmaps on labels.

FIXES #790
2017-09-19 00:12:44 +02:00
Adriaan de Groot
8ea14d7957 Release: add copyright to files I've touched 2017-06-21 08:27:10 -04:00
Adriaan de Groot
444aa24a04 Increate the maximum allowed length of a hostname.
The hostname madagascarsteenplaatschildpad (.uva.nl) doesn't fit in 24,
and hostname(1) accepts up to 64 characters. The RFCs vary, but 63 +
terminating NUL or length-octet + data maximum 64 bytes seen to be
the common ground.

FIXES #514
2017-06-19 05:16:54 -04:00
Tith Chantara
80864bdf27 Modify Hostname input validation to accept number as first character
Input validation for Hostname accept a letter or a digit as the first character to conform to [rfc1123](http://tools.ietf.org/html/rfc1123#page-13 ) . Fixing [CAL-346](https://calamares.io/bugs/browse/CAL-346)
2016-02-23 15:32:29 +07:00
Teo Mrnjavac
22470ba4af Disallow next if the root password is not reused or provided.
CAL-344 #close
2015-12-30 17:27:02 +01:00
demmm
f267410dbb different names 2015-12-30 17:27:02 +01:00
demmm
c89bd1db23 implement https://calamares.io/bugs/browse/CAL-341 2015-12-30 17:27:02 +01:00
codeworkx
b412937699 don't set default "users" group on home dirs
Fixes CAL-345.

Changing group of home dir to the default "users" group might be a security risk
because every user which belongs to the default "users" group
might be able to access private data on home dirs of other users.
2015-11-29 11:10:01 +01:00
Teo Mrnjavac
4ae55d0108 Allow setting the default for autologin/no autologin. 2015-08-19 12:51:06 +02:00
Teo Mrnjavac
46e90ccda2 Add setRootPassword option to the Users module.
If set to true, the user must set a root password. Otherwise, the
user won't be asked and a root password will not be set.
2015-06-11 04:02:06 +02:00
Teo Mrnjavac
8ad507e379 Improve input validation in UsersPage.
CAL-190 #close
2015-02-17 20:20:20 +01:00
Teo Mrnjavac
e258f0b5a9 Use onActivate instead of focusInEvent for page focus control. 2014-11-26 18:41:35 +01:00
Teo Mrnjavac
fb37a0bf2f Fix focus in UsersPage. 2014-11-18 15:57:07 +01:00
Teo Mrnjavac
ad68ce0187 Make default groups, users group and autologin group configurable. 2014-10-08 15:05:23 +02:00
Teo Mrnjavac
ee4a0f1cba Add support for full name, and user/host autocompletion and validation. 2014-08-13 17:16:54 +02:00
Teo Mrnjavac
b111027d57 Add SetPasswordJob in Users module, hook it all up. 2014-07-31 19:06:31 +02:00
Teo Mrnjavac
fb32432548 UI for users viewmodule. 2014-07-31 14:52:40 +02:00