|
|
- import auth
-
-
- # setup a test user & permission
- auth.authenticator.add_user("joe", "joepassword")
- auth.authorizor.add_permission("test program")
- auth.authorizor.add_permission("change program")
- auth.authorizor.permit_user("test program", "joe")
-
-
- class Editor:
-
- def __init__(self):
- self.username = None
- self.menu_map = {
- "login": self.login,
- "test": self.test,
- "change": self.change,
- "quit": self.quit
- }
-
- def login(self):
- logged_in = False
- while not logged_in:
- username = input("username: ")
- password = input("password: ")
- try:
- logged_in = auth.authenticator.login(username, password)
- except auth.InvalidUsername:
- print("Sorry, that username doesn't exist")
- except auth.InvalidPassword:
- print("Sorry, incorrect password")
- else:
- self.username = username
-
- def is_permitted(self, permission):
- try:
- auth.authorizor.check_permission(permission, self.username)
- except auth.NotLoggedInError as e:
- print("{} is not logged in".format(e.username))
- except auth.NotPermittedError as e:
- print("{} cannot {}".format(e.username, permission))
- else:
- return True
-
- def test(self):
- if self.is_permitted("test program"):
- print("Testing program now...")
-
- def change(self):
- if self.is_permitted("change program"):
- print("Changing program now...")
-
- def quit(self):
- raise SystemExit()
-
- def menu(self):
- try:
- answer = ""
- while True:
- print("""
- Please enter a command:
- \tlogin\tLogin
- \ttest\tTest the program
- \tchange\tChange the program
- \tquit\tQuit
- """)
- answer = input("enter a command: ").lower()
- try:
- func = self.menu_map[answer]
- except KeyError:
- print("{} isn't a valid option".format(answer))
- else:
- func()
- finally:
- print("Thank you for testing the auth module")
-
-
- Editor().menu()
|