Téléverser les fichiers vers "workstation-setup/src"

This commit is contained in:
2026-08-19 09:37:38 +02:00
parent 7b8f329cab
commit 17da13144b
2 changed files with 19 additions and 6 deletions
+18 -4
View File
@@ -36,13 +36,12 @@ ProvisioningBackend::ProvisioningBackend(QString targetUser, QObject *parent)
: QObject(parent)
, m_currentUser(effectiveUserName())
, m_targetUser(std::move(targetUser))
, m_authorizedUser(!m_targetUser.isEmpty() && m_currentUser == m_targetUser)
{
refreshState();
appendLog(QStringLiteral("START currentUser=%1 targetUser=%2 authorized=%3 passwordDone=%4 pinDone=%5")
.arg(m_currentUser,
m_targetUser,
m_authorizedUser ? QStringLiteral("yes") : QStringLiteral("no"),
authorizedUser() ? QStringLiteral("yes") : QStringLiteral("no"),
m_passwordDone ? QStringLiteral("yes") : QStringLiteral("no"),
m_pinDone ? QStringLiteral("yes") : QStringLiteral("no")));
}
@@ -65,6 +64,21 @@ QString ProvisioningBackend::effectiveUserName()
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
{
const QByteArray xdgState = qgetenv("XDG_STATE_HOME");
@@ -223,7 +237,7 @@ void ProvisioningBackend::changePassword(const QString &currentPassword,
const QString &newPassword,
const QString &confirmation)
{
if (!m_authorizedUser) {
if (!authorizedUser()) {
appendLog(QStringLiteral("PASSWORD refused: unauthorized user"));
emit passwordChangeFinished(false,
QStringLiteral("Cette opération n'est pas autorisée pour cet utilisateur."));
@@ -279,7 +293,7 @@ void ProvisioningBackend::changePin(const QString &currentPin,
const QString &newPin,
const QString &confirmation)
{
if (!m_authorizedUser) {
if (!authorizedUser()) {
appendLog(QStringLiteral("PIN refused: unauthorized user"));
emit pinChangeFinished(false,
QStringLiteral("Cette opération n'est pas autorisée pour cet utilisateur."));