From b4951b3298ba644a2be1485ed5b8f6561a159c88 Mon Sep 17 00:00:00 2001 From: sudoforge Date: Fri, 27 Feb 2026 09:12:07 -0800 Subject: [PATCH] fix: categorize lecture as an enum This change categorizes the lecture setting as an enum to avoid a validation failure in sudoers configuration containing this setting (causing visudo to yell about an invalid configuration file). Closes: #399 --- src/defaults/mod.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/defaults/mod.rs b/src/defaults/mod.rs index c651833f7..4e5c188f3 100644 --- a/src/defaults/mod.rs +++ b/src/defaults/mod.rs @@ -33,7 +33,7 @@ defaults! { env_reset = true #ignored fqdn = false #ignored ignore_dot = true #ignored - lecture = false #ignored + lecture = never (!= never) [always, once, never] #ignored mailerpath = None (!= None) #ignored mail_badpass = true #ignored match_group_by_gid = false #ignored @@ -140,6 +140,18 @@ mod test { assert! { def.env_check.is_empty() }; assert_eq! { def.verifypw, enums::verifypw::never }; + let SettingKind::Text(f) = set("lecture").unwrap() else { + panic!() + }; + f("always").unwrap()(&mut def); + assert_eq! { def.lecture, enums::lecture::always }; + f("once").unwrap()(&mut def); + assert_eq! { def.lecture, enums::lecture::once }; + f("never").unwrap()(&mut def); + assert_eq! { def.lecture, enums::lecture::never}; + negate("lecture").unwrap()(&mut def); + assert_eq! { def.lecture, enums::lecture::never }; + let SettingKind::Flag(f) = set("env_reset").unwrap() else { panic!() };