Téléverser les fichiers vers "workstation-setup/src"
This commit is contained in:
@@ -36,13 +36,12 @@ ProvisioningBackend::ProvisioningBackend(QString targetUser, QObject *parent)
|
|||||||
: QObject(parent)
|
: QObject(parent)
|
||||||
, m_currentUser(effectiveUserName())
|
, m_currentUser(effectiveUserName())
|
||||||
, m_targetUser(std::move(targetUser))
|
, m_targetUser(std::move(targetUser))
|
||||||
, m_authorizedUser(!m_targetUser.isEmpty() && m_currentUser == m_targetUser)
|
|
||||||
{
|
{
|
||||||
refreshState();
|
refreshState();
|
||||||
appendLog(QStringLiteral("START currentUser=%1 targetUser=%2 authorized=%3 passwordDone=%4 pinDone=%5")
|
appendLog(QStringLiteral("START currentUser=%1 targetUser=%2 authorized=%3 passwordDone=%4 pinDone=%5")
|
||||||
.arg(m_currentUser,
|
.arg(m_currentUser,
|
||||||
m_targetUser,
|
m_targetUser,
|
||||||
m_authorizedUser ? QStringLiteral("yes") : QStringLiteral("no"),
|
authorizedUser() ? QStringLiteral("yes") : QStringLiteral("no"),
|
||||||
m_passwordDone ? QStringLiteral("yes") : QStringLiteral("no"),
|
m_passwordDone ? QStringLiteral("yes") : QStringLiteral("no"),
|
||||||
m_pinDone ? QStringLiteral("yes") : QStringLiteral("no")));
|
m_pinDone ? QStringLiteral("yes") : QStringLiteral("no")));
|
||||||
}
|
}
|
||||||
@@ -65,6 +64,21 @@ QString ProvisioningBackend::effectiveUserName()
|
|||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool ProvisioningBackend::authorizedUser() const
|
||||||
|
{
|
||||||
|
if (m_targetUser.isEmpty()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
const QByteArray targetName = m_targetUser.toLocal8Bit();
|
||||||
|
if (passwd *entry = getpwnam(targetName.constData())) {
|
||||||
|
return entry->pw_uid == geteuid();
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
QString ProvisioningBackend::stateDirectory() const
|
QString ProvisioningBackend::stateDirectory() const
|
||||||
{
|
{
|
||||||
const QByteArray xdgState = qgetenv("XDG_STATE_HOME");
|
const QByteArray xdgState = qgetenv("XDG_STATE_HOME");
|
||||||
@@ -223,7 +237,7 @@ void ProvisioningBackend::changePassword(const QString ¤tPassword,
|
|||||||
const QString &newPassword,
|
const QString &newPassword,
|
||||||
const QString &confirmation)
|
const QString &confirmation)
|
||||||
{
|
{
|
||||||
if (!m_authorizedUser) {
|
if (!authorizedUser()) {
|
||||||
appendLog(QStringLiteral("PASSWORD refused: unauthorized user"));
|
appendLog(QStringLiteral("PASSWORD refused: unauthorized user"));
|
||||||
emit passwordChangeFinished(false,
|
emit passwordChangeFinished(false,
|
||||||
QStringLiteral("Cette opération n'est pas autorisée pour cet utilisateur."));
|
QStringLiteral("Cette opération n'est pas autorisée pour cet utilisateur."));
|
||||||
@@ -279,7 +293,7 @@ void ProvisioningBackend::changePin(const QString ¤tPin,
|
|||||||
const QString &newPin,
|
const QString &newPin,
|
||||||
const QString &confirmation)
|
const QString &confirmation)
|
||||||
{
|
{
|
||||||
if (!m_authorizedUser) {
|
if (!authorizedUser()) {
|
||||||
appendLog(QStringLiteral("PIN refused: unauthorized user"));
|
appendLog(QStringLiteral("PIN refused: unauthorized user"));
|
||||||
emit pinChangeFinished(false,
|
emit pinChangeFinished(false,
|
||||||
QStringLiteral("Cette opération n'est pas autorisée pour cet utilisateur."));
|
QStringLiteral("Cette opération n'est pas autorisée pour cet utilisateur."));
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ public:
|
|||||||
bool complete() const { return m_passwordDone && m_pinDone; }
|
bool complete() const { return m_passwordDone && m_pinDone; }
|
||||||
QString currentUser() const { return m_currentUser; }
|
QString currentUser() const { return m_currentUser; }
|
||||||
QString targetUser() const { return m_targetUser; }
|
QString targetUser() const { return m_targetUser; }
|
||||||
bool authorizedUser() const { return m_authorizedUser; }
|
bool authorizedUser() const;
|
||||||
|
|
||||||
QString stateDirectory() const;
|
QString stateDirectory() const;
|
||||||
QString diagnosticLogPath() const;
|
QString diagnosticLogPath() const;
|
||||||
@@ -79,7 +79,6 @@ private:
|
|||||||
bool m_busy = false;
|
bool m_busy = false;
|
||||||
bool m_passwordDone = false;
|
bool m_passwordDone = false;
|
||||||
bool m_pinDone = false;
|
bool m_pinDone = false;
|
||||||
bool m_authorizedUser = false;
|
|
||||||
bool m_helperTimedOut = false;
|
bool m_helperTimedOut = false;
|
||||||
QString m_currentUser;
|
QString m_currentUser;
|
||||||
QString m_targetUser;
|
QString m_targetUser;
|
||||||
|
|||||||
Reference in New Issue
Block a user