Warning, /frameworks/kdesu/autotests/sudo is written in an unsupported language. File is not indexed.

0001 #!/usr/bin/env python3
0002 
0003 import sys
0004 import getpass
0005 from enum import Enum, unique
0006 from subprocess import call
0007 
0008 
0009 @unique
0010 class State(Enum):
0011      NEW = 1
0012      SECOND = 2
0013      THIRD = 3
0014      GOOD = 4
0015      FAIL = 5
0016 
0017 class Sudo:
0018 
0019     def __init__(self):
0020         self.state = State.NEW
0021         self.read = None
0022         self.password = 'ilovekde'
0023 
0024     def process(self):
0025         if self.state == State.NEW:
0026             self.read = getpass.getpass('[sudo] password for jr: ')
0027             if self.read == self.password:
0028                 self.state = State.GOOD
0029                 call([sys.argv[3]])
0030                 exit(0)
0031             else:
0032                 self.state = State.SECOND
0033         elif self.state == State.SECOND:
0034             print('Sorry, try again.')
0035             self.read = getpass.getpass('[sudo] password for jr: ')
0036             if self.read == self.password:
0037                 self.state = State.GOOD
0038                 exit(0)
0039             else:
0040                 self.state = State.THIRD
0041         elif self.state == State.THIRD:
0042             print('Sorry, try again.')
0043             self.read = getpass.getpass('[sudo] password for jr: ')
0044             if self.read == self.password:
0045                 self.state = State.GOOD
0046                 exit(0)
0047             else:
0048                 print("sudo: 3 incorrect password attempts")
0049                 self.state = State.FAIL
0050                 exit(1)
0051 
0052 sudo = Sudo()
0053 while True:
0054     sudo.process()