Rework the handling of storage/auth backends and config
authorManuel Nickschas <sputnick@quassel-irc.org>
Tue, 1 Nov 2016 16:34:16 +0000 (17:34 +0100)
committerManuel Nickschas <sputnick@quassel-irc.org>
Wed, 30 Aug 2017 21:55:08 +0000 (23:55 +0200)
commitcfbd4daee17dbb3c4052d938bf33edd08711d728
treef63d051c79d6cc911d27cb5006540b9b809ca74d
parent46f20e19a343ad0fa17dde6c32f17e60fc682c9b
Rework the handling of storage/auth backends and config

The legacy way of transmitting backend settings to the client
for initial core configuration was pretty weird, especially regarding
the setupKeys/setupDefaults mess that required guesswork on the
client side as of the property types. With the introduction of
authenticators, an opportunity presented itself to improve this.

Upon fixing this, I realized that lots of pretty crazy legacy code
was involved, and partially even duplicated for authenticator
handling. I could not keep myself from cleaning that up.
In the process, the affected parts of the code were modernized too,
leveraging Modern C++ and the STL where possible.

The setupKeys/setupDefaults properties of the backend info structs
are now deprecated and replaced by a setupData list of field IDs,
translatable display names, and default values/types. To keep
legacy clients working, the old properties are still transmitted
until the next protocol break.
20 files changed:
src/core/abstractsqlstorage.cpp
src/core/abstractsqlstorage.h
src/core/authenticator.cpp
src/core/authenticator.h
src/core/core.cpp
src/core/core.h
src/core/ldapauthenticator.cpp
src/core/ldapauthenticator.h
src/core/postgresqlstorage.cpp
src/core/postgresqlstorage.h
src/core/sqlauthenticator.cpp
src/core/sqlauthenticator.h
src/core/sqlitestorage.cpp
src/core/sqlitestorage.h
src/core/storage.h
src/qtui/coreconfigwizard.cpp
src/qtui/coreconfigwizard.h
src/qtui/ui/coreconfigwizardauthenticationselectionpage.ui
src/qtui/ui/coreconfigwizardstorageselectionpage.ui
src/qtui/ui/coreconfigwizardsyncpage.ui