def checkMovieSets(self): # Check if the user has navigated into a movie set navPath = xbmc.getInfoLabel("Container.FolderPath") if 'videodb://movies/sets/' not in navPath: # Not in a Movie Set view, so nothing to do if 'videodb://' in navPath: self.lastMovieSetChecked = "" return # Get the name of the movie set moveSetName = xbmc.getInfoLabel("Container.FolderName") if moveSetName in [None, "", self.lastMovieSetChecked]: # No Movie Set currently set - this can take a little time # So do nothing this time and wait until the next time # or this is a Movie set that has already been checked return # If we reach here we have a Movie Set that we need to check log("NavigationRestrictions: Checking access to view Movie Set: %s" % moveSetName) self.lastMovieSetChecked = moveSetName # Check to see if the user should have access to this set pinDB = PinSentryDB() securityLevel = pinDB.getMovieSetSecurityLevel(moveSetName) if securityLevel < 1: log("NavigationRestrictions: No security enabled for movie set %s" % moveSetName) return del pinDB # Check if we have already cached the pin number and at which level if PinSentry.getCachedPinLevel() >= securityLevel: log("NavigationRestrictions: Already cached pin at level %d, allowing access" % PinSentry.getCachedPinLevel()) return # Prompt the user for the pin, returns True if they knew it if PinSentry.promptUserForPin(securityLevel): log("NavigationRestrictions: Allowed access to movie set %s" % moveSetName) else: log("NavigationRestrictions: Not allowed access to movie set %s which has security level %d" % (moveSetName, securityLevel)) # Move back to the Movie Section as they are not allowed where they are at the moment xbmc.executebuiltin( "ActivateWindow(Videos,videodb://movies/titles/)", True) # Clear the previous Movie Set as we will want to prompt for the pin again if the # user navigates there again self.lastMovieSetChecked = "" PinSentry.displayInvalidPinMessage(securityLevel)
def checkMovieSets(self): # Check if the user has navigated into a movie set navPath = xbmc.getInfoLabel("Container.FolderPath") if 'videodb://movies/sets/' not in navPath: # Not in a Movie Set view, so nothing to do if 'videodb://' in navPath: self.lastMovieSetChecked = "" return # Get the name of the movie set moveSetName = xbmc.getInfoLabel("Container.FolderName") if moveSetName in [None, "", self.lastMovieSetChecked]: # No Movie Set currently set - this can take a little time # So do nothing this time and wait until the next time # or this is a Movie set that has already been checked return # If we reach here we have a Movie Set that we need to check log("NavigationRestrictions: Checking access to view Movie Set: %s" % moveSetName) self.lastMovieSetChecked = moveSetName # Check to see if the user should have access to this set pinDB = PinSentryDB() securityLevel = pinDB.getMovieSetSecurityLevel(moveSetName) if securityLevel < 1: log("NavigationRestrictions: No security enabled for movie set %s" % moveSetName) return del pinDB # Check if we have already cached the pin number and at which level if PinSentry.getCachedPinLevel() >= securityLevel: log("NavigationRestrictions: Already cached pin at level %d, allowing access" % PinSentry.getCachedPinLevel()) return # Prompt the user for the pin, returns True if they knew it if PinSentry.promptUserForPin(securityLevel): log("NavigationRestrictions: Allowed access to movie set %s" % moveSetName) else: log("NavigationRestrictions: Not allowed access to movie set %s which has security level %d" % (moveSetName, securityLevel)) # Move back to the Movie Section as they are not allowed where they are at the moment xbmc.executebuiltin("ActivateWindow(Videos,videodb://movies/titles/)", True) # Clear the previous Movie Set as we will want to prompt for the pin again if the # user navigates there again self.lastMovieSetChecked = "" PinSentry.displayInvalidPinMessage(securityLevel)