summaryrefslogtreecommitdiff
path: root/Property/Sudo.hs
diff options
context:
space:
mode:
authorJoey Hess2014-03-30 23:37:54 -0400
committerJoey Hess2014-03-30 23:37:54 -0400
commit380c1b0fd6c25dec3c924b82f1d721aa91a001da (patch)
tree7d5b73309b73f13ac2be3f911318fe6a126264ff /Property/Sudo.hs
parent02a7bf5f0e2de1d0dea71781ed0c1ae3a50e6425 (diff)
prepare for hackage
Diffstat (limited to 'Property/Sudo.hs')
-rw-r--r--Property/Sudo.hs34
1 files changed, 0 insertions, 34 deletions
diff --git a/Property/Sudo.hs b/Property/Sudo.hs
deleted file mode 100644
index f341a3eb..00000000
--- a/Property/Sudo.hs
+++ /dev/null
@@ -1,34 +0,0 @@
-module Property.Sudo where
-
-import Data.List
-
-import Common
-import Property.File
-import qualified Property.Apt as Apt
-import Property.User
-
-{- Allows a user to sudo. If the user has a password, sudo is configured
- - to require it. If not, NOPASSWORD is enabled for the user.
- -
- - TOOD: Full sudoers file format parse..
- -}
-enabledFor :: UserName -> Property
-enabledFor user = Property desc go `requires` Apt.installed ["sudo"]
- where
- go = do
- locked <- isLockedPassword user
- ensureProperty $
- fileProperty desc
- (modify locked . filter (wanted locked))
- "/etc/sudoers"
- desc = user ++ " is sudoer"
- sudobaseline = user ++ " ALL=(ALL:ALL)"
- sudoline True = sudobaseline ++ " NOPASSWD:ALL"
- sudoline False = sudobaseline ++ " ALL"
- wanted locked l
- | not (sudobaseline `isPrefixOf` l) = True
- | "NOPASSWD" `isInfixOf` l = locked
- | otherwise = True
- modify locked ls
- | sudoline locked `elem` ls = ls
- | otherwise = ls ++ [sudoline locked]