summaryrefslogtreecommitdiff
path: root/hplip-check-userperms.patch
blob: 9204c0bc6fcea53248bd09311d611a989ab977b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
diff --git a/base/password.py b/base/password.py
index bd68f2a..bff9f80 100644
--- a/base/password.py
+++ b/base/password.py
@@ -157,6 +157,28 @@ class Password(object):
                 log.warn("%s distro is not found in AUTH_TYPES" % distro_name)
                 self.__authType = 'su'
 
+        # check if caller is in wheel group - use 'su' if he isnt -
+        # or if the caller is root (just for showing 'root' username)
+        # in the prompt
+        import os
+        from grp import getgrnam
+
+        user = os.getenv('USER')
+
+        try:
+            members = getgrnam('wheel').gr_mem
+        except KeyError:
+            try:
+                members = getgrnam('sudo').gr_mem
+            except:
+                return
+
+        if user in members:
+            self.__authType = 'sudo'
+        else:
+            self.__authType = 'su'
+
+
     def __getPasswordDisplayString(self):
         if self.__authType == "su":
             return "Please enter the root/superuser password: "