summaryrefslogtreecommitdiff
path: root/raveos-calamares-module/raveusers/RaveUsersBackend.h
diff options
context:
space:
mode:
Diffstat (limited to 'raveos-calamares-module/raveusers/RaveUsersBackend.h')
-rw-r--r--raveos-calamares-module/raveusers/RaveUsersBackend.h89
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;
+};