import plistlib import subprocess from SystemConfiguration import SCDynamicStoreCopyConsoleUser factoid = "console_user_is_admin" def fact(): """Returns whether current console user is an admin""" result = False cmd = ["/usr/bin/dscl", "-plist", ".", "read", "/Groups/admin"] output = subprocess.check_output(cmd) d = plistlib.readPlistFromString(output)["dsAttrTypeStandard:GroupMembership"] console_user = SCDynamicStoreCopyConsoleUser(None, None, None)[0] if console_user in d: result = True return {factoid: result} if __name__ == "__main__": print("<result>%s</result>" % fact()[factoid])