blob: 4e06f47e6bc6a4499c1d8443a53272c5cc3296f1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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;
};
|