From 6f41949bba9db4d0e48bba6a2aa3be341e8289c8 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 6 Nov 2020 14:38:12 +0100 Subject: [PATCH 1/3] [users] Log when sudo is skipped --- src/modules/users/MiscJobs.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/users/MiscJobs.cpp b/src/modules/users/MiscJobs.cpp index a62ada6d7..c1c1d5d25 100644 --- a/src/modules/users/MiscJobs.cpp +++ b/src/modules/users/MiscJobs.cpp @@ -38,6 +38,7 @@ SetupSudoJob::exec() { if ( m_sudoGroup.isEmpty() ) { + cDebug() << "Skipping sudo 10-installer because the sudoGroup is empty."; return Calamares::JobResult::ok(); } From 8e53b83f9f156f0d427e5672f1ad0c38607799c2 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 6 Nov 2020 22:27:34 +0100 Subject: [PATCH 2/3] [users] Test for setting / resetting sudo settings --- src/modules/users/TestGroupInformation.cpp | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/src/modules/users/TestGroupInformation.cpp b/src/modules/users/TestGroupInformation.cpp index 9fc1e1c35..9efb6f72f 100644 --- a/src/modules/users/TestGroupInformation.cpp +++ b/src/modules/users/TestGroupInformation.cpp @@ -34,6 +34,8 @@ private Q_SLOTS: void testReadGroup(); void testCreateGroup(); + + void testSudoGroup(); }; GroupTests::GroupTests() {} @@ -98,6 +100,47 @@ GroupTests::testCreateGroup() QVERIFY( !j.exec() ); // running as regular user this should fail } +void GroupTests::testSudoGroup() +{ + // Test programmatic changes + { + Config c; + QSignalSpy spy(&c, &Config::sudoersGroupChanged); + QCOMPARE( c.sudoersGroup(), QString() ); + c.setSudoersGroup( QStringLiteral( "wheel" ) ); + QCOMPARE( c.sudoersGroup(), QStringLiteral( "wheel" ) ); + QCOMPARE( spy.count(), 1); // Changed to wheel + // Do it again, no change + c.setSudoersGroup( QStringLiteral( "wheel" ) ); + QCOMPARE( c.sudoersGroup(), QStringLiteral( "wheel" ) ); + QCOMPARE( spy.count(), 1); + c.setSudoersGroup( QStringLiteral( "roue" ) ); + QCOMPARE( c.sudoersGroup(), QStringLiteral( "roue" ) ); + QCOMPARE( spy.count(), 2); + } + + + // Test config loading + { + Config c; + QSignalSpy spy(&c, &Config::sudoersGroupChanged); + QCOMPARE( c.sudoersGroup(), QString() ); + + QVariantMap m; + c.setConfigurationMap( m ); + QCOMPARE( c.sudoersGroup(), QString() ); + QCOMPARE( spy.count(), 0); // Unchanged + + const auto key = QStringLiteral( "sudoersGroup" ); + const auto v0 = QStringLiteral( "wheel" ); + const auto v1 = QStringLiteral( "roue" ); + m.insert( key, v0 ); + c.setConfigurationMap( m ); + QCOMPARE( c.sudoersGroup(), v0 ); + QCOMPARE( spy.count(), 1); + } +} + QTEST_GUILESS_MAIN( GroupTests ) From 43e271dfec6fc11fdd52b0c5de97f17ddbe98070 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 6 Nov 2020 22:27:46 +0100 Subject: [PATCH 3/3] [users] Missing negation --- src/modules/users/Config.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/users/Config.cpp b/src/modules/users/Config.cpp index 0e70cc215..77f52b466 100644 --- a/src/modules/users/Config.cpp +++ b/src/modules/users/Config.cpp @@ -815,7 +815,7 @@ Config::createJobs() const Calamares::Job* j; - if ( m_sudoersGroup.isEmpty() ) + if ( !m_sudoersGroup.isEmpty() ) { j = new SetupSudoJob( m_sudoersGroup ); jobs.append( Calamares::job_ptr( j ) );