diff options
Diffstat (limited to 'raveos-calamares-module/raveusers/RaveUsersBackend.h')
| -rw-r--r-- | raveos-calamares-module/raveusers/RaveUsersBackend.h | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/raveos-calamares-module/raveusers/RaveUsersBackend.h b/raveos-calamares-module/raveusers/RaveUsersBackend.h new file mode 100644 index 0000000..4e06f47 --- /dev/null +++ b/raveos-calamares-module/raveusers/RaveUsersBackend.h @@ -0,0 +1,89 @@ +#pragma once + +#include <QObject> +#include <QString> +#include <QStringList> + +class RaveUsersBackend : public QObject +{ + Q_OBJECT + + Q_PROPERTY( QString username READ username NOTIFY usernameChanged ) + Q_PROPERTY( QString hostname READ hostname NOTIFY hostnameChanged ) + Q_PROPERTY( QString usernameStatus READ usernameStatus NOTIFY statusChanged ) + Q_PROPERTY( QString hostnameStatus READ hostnameStatus NOTIFY statusChanged ) + Q_PROPERTY( QString passwordStatus READ passwordStatus NOTIFY statusChanged ) + Q_PROPERTY( QString rootPasswordStatus READ rootPasswordStatus NOTIFY statusChanged ) + Q_PROPERTY( bool ready READ isReady NOTIFY readyChanged ) + Q_PROPERTY( bool reuseRootPassword READ reuseRootPassword NOTIFY reuseRootPasswordChanged ) + Q_PROPERTY( bool rootReuseVisible READ rootReuseVisible CONSTANT ) + +public: + explicit RaveUsersBackend( QObject* parent = nullptr ); + + QString username() const { return m_username; } + QString hostname() const { return m_hostname; } + QString usernameStatus() const; + QString hostnameStatus() const; + QString passwordStatus() const; + QString rootPasswordStatus() const; + bool isReady() const; + bool reuseRootPassword() const { return m_reuseRootPassword; } + bool rootReuseVisible() const { return m_setRootPassword; } + + QString userPassword() const { return m_password; } + QString rootPassword() const { return m_reuseRootPassword ? m_password : m_rootPassword; } + + QString userShell() const { return m_userShell; } + QStringList groupsForThisUser() const; + QString sudoersGroup() const { return m_sudoersGroup; } + bool sudoersConfigureWithGroup() const { return m_sudoersConfigureWithGroup; } + int homeUMask() const { return m_homeUMask; } + QStringList defaultGroups() const { return m_defaultGroups; } + + Q_INVOKABLE void setUsername( const QString& s ); + Q_INVOKABLE void setHostname( const QString& s ); + Q_INVOKABLE void setPassword( const QString& s ); + Q_INVOKABLE void setPasswordSecondary( const QString& s ); + Q_INVOKABLE void setRootPasswordText( const QString& s ); + Q_INVOKABLE void setRootPasswordSecondaryText( const QString& s ); + Q_INVOKABLE void setReuseRootPassword( bool b ); + + void setForbiddenLoginNames( const QStringList& names ) { m_forbiddenLoginNames = names; } + void setForbiddenHostNames( const QStringList& names ) { m_forbiddenHostNames = names; } + void setUserShell( const QString& shell ) { m_userShell = shell; } + void setSudoersGroup( const QString& group ) { m_sudoersGroup = group; } + void setSudoersConfigureWithGroup( bool b ) { m_sudoersConfigureWithGroup = b; } + void setSetRootPassword( bool b ) { m_setRootPassword = b; } + void setHomeUMask( int umask ) { m_homeUMask = umask; } + void setDefaultGroups( const QStringList& groups ) { m_defaultGroups = groups; } + +signals: + void usernameChanged(); + void hostnameChanged(); + void statusChanged(); + void readyChanged(); + void reuseRootPasswordChanged(); + +private: + void checkReady(); + + QString m_username; + QString m_hostname; + QString m_password; + QString m_passwordSecondary; + QString m_rootPassword; + QString m_rootPasswordSecondary; + bool m_customHostname = false; + bool m_reuseRootPassword = true; + bool m_setRootPassword = true; + + QStringList m_forbiddenLoginNames; + QStringList m_forbiddenHostNames; + QString m_userShell = QStringLiteral( "/bin/bash" ); + QString m_sudoersGroup; + bool m_sudoersConfigureWithGroup = true; + int m_homeUMask = -1; + QStringList m_defaultGroups; + bool m_lastReady = false; +}; |