from menu1 import Menu, ListMenu import os, security, logger class SecureMenu(Menu): def __init__(self): self.user = os.environ['USER'] # call 'Menu.__init__' here?... def run(self): for tool in self.menu.keys(): # add a pre-validation step if security.allow(tool, self.user): break else: print "You're not authorized for any menu selections" return Menu.run(self) def validate(self, tool, verbose=0): # where do I get called?... if not security.allow(tool, self.user): # what's 'tool' here?... if verbose: print "unauthorized - try again" return 0 return tool def input(self): option = Menu.input(self) # where do I get called?... return self.validate(option, 1) # add post-validation class ListLogMenu(ListMenu): def __init__(self): self.user = os.environ['USER'] # 'ListMenu.__init__' here?... def runCommand(self, cmd): logger.record(self.user, cmd) # add pre-logging ListMenu.runCommand(self, cmd) # do normal list runCommand