def promptUserForPin(): userHasAccess = True # Set the background background = Background.createBackground() if background is not None: background.show() # Prompt the user to enter the pin numberpad = NumberPad.createNumberPad() numberpad.doModal() # Remove the background if we had one if background is not None: background.close() del background # Get the code that the user entered enteredPin = numberpad.getPin() del numberpad # Check to see if the pin entered is correct if Settings.isPinCorrect(enteredPin): log("PinSentry: Pin entered Correctly") userHasAccess = True # Check if we are allowed to cache the pin level PinSentry.setCachedPinLevel(1) else: log("PinSentry: Incorrect Pin Value Entered") userHasAccess = False return userHasAccess
def setPin(pinLevel=1): okToChangePin = True # Check if the pin is already set, if it is, then we need to prompt for that first # before we allow the user to just change it if Settings.isPinSet(pinLevel): log("SetPin: Existing pin set, prompting for it") # Prompt the user for the pin numberpad = NumberPad.createNumberPad(32105) numberpad.doModal() # Get the code that the user entered enteredPin = numberpad.getPin() del numberpad if not Settings.isPinCorrect(enteredPin, pinLevel): log("SetPin: Incorrect Existing Pin Entered") okToChangePin = False xbmcgui.Dialog().ok(__addon__.getLocalizedString(32001).encode('utf-8'), __addon__.getLocalizedString(32104).encode('utf-8')) else: log("SetPin: Correct Existing Pin Entered") # If we are OK to change the pin, prompt the user if okToChangePin: # Prompt the user for the pin numberpad = NumberPad.createNumberPad(32106) numberpad.doModal() # Get the code that the user entered enteredPin = numberpad.getPin() del numberpad # Check to ensure the user has either set no password or one the correct length if (len(enteredPin) > 0) and (Settings.getPinLength() > len(enteredPin)): log("SetPin: Incorrect length pin entered, expecting %d digits" % Settings.getPinLength()) xbmcgui.Dialog().ok(__addon__.getLocalizedString(32001).encode('utf-8'), __addon__.getLocalizedString(32109).encode('utf-8')) elif Settings.checkPinClash(enteredPin, pinLevel): # This pin clashes with an existing pin log("SetPin: Entered pin clashes with an existing pin") xbmcgui.Dialog().ok(__addon__.getLocalizedString(32001).encode('utf-8'), __addon__.getLocalizedString(32112).encode('utf-8')) else: # Now double check the value the user entered numberpad = NumberPad.createNumberPad(32107) numberpad.doModal() # Get the code that the user entered enteredPin2 = numberpad.getPin() del numberpad if enteredPin == enteredPin2: Settings.setPinValue(enteredPin, pinLevel) else: log("SetPin: Pin entry different, first: %s, second %s" % (enteredPin, enteredPin2)) xbmcgui.Dialog().ok(__addon__.getLocalizedString(32001).encode('utf-8'), __addon__.getLocalizedString(32108).encode('utf-8'))
okToChangePin = True # Check if the pin is already set, if it is, then we need to prompt for that first # before we allow the user to just change it if Settings.isPinSet(): log("SetPin: Existing pin set, prompting for it") # Prompt the user for the pin numberpad = NumberPad.createNumberPad(32105) numberpad.doModal() # Get the code that the user entered enteredPin = numberpad.getPin() del numberpad if not Settings.isPinCorrect(enteredPin): log("SetPin: Incorrect Existing Pin Entered") okToChangePin = False xbmcgui.Dialog().ok(__addon__.getLocalizedString(32001).encode('utf-8'), __addon__.getLocalizedString(32104).encode('utf-8')) else: log("SetPin: Correct Existing Pin Entered") # If we are OK to change the pin, prompt the user if okToChangePin: # Prompt the user for the pin numberpad = NumberPad.createNumberPad(32106) numberpad.doModal() # Get the code that the user entered enteredPin = numberpad.getPin() del numberpad