# Exercise 9-8 Privileges # Learning Objective: Compostition class Users: def __init__(self, first_name, last_name, dob, state, hair_color): """Initialize User Profile variables""" self.first_name = first_name self.last_name = last_name self.dob = dob self.state = state self.hair_color = hair_color self.login_attempts = 0 def describe_user(self): """Prints descriptions of user based on inputs""" print(f"{self.first_name} {self.last_name} was born on {self.dob}, they live in {self.state} and they have {self.hair_color}") def greet_user(self): """Prints personalized greeting to user specified""" print(f"Welcome to this python program, {self.first_name} {self.last_name}!") def increment_login_attempts(self): """Increments Login Attempts by one""" self.login_attempts += 1 def reset_login_attempts(self): """Resets login attempts to zero""" self.login_attempts = 0 class Privileges: def __init__(self, privileges=[]): """Create separate class for privileges """ self.privileges = privileges def show_privileges(self): """ Print Privileges list """ print(f"This user has the following privileges:\n") if self.privileges: for privilege in self.privileges: print(f" - {privilege}") else: print(" - This user has no privileges.") class Admin(Users): def __init__(self, first_name, last_name, dob, state, hair_color): """ Initialize Users the add sepeicifc Admin attributes/methods """ super().__init__(first_name, last_name, dob, state, hair_color) self.privileges = Privileges() super_stan = Admin("Stan", "Gerk", "07/02/1954", "GA", "Blonde") super_stan.describe_user() super_stan.privileges.show_privileges() print("Adding privileges...") super_stan_privileges = ["can add post", "can delete post", "can ban user", "can unban user", "can create user", "can delete user", "can modify site contents"] super_stan.privileges.privileges = super_stan_privileges super_stan.privileges.show_privileges() ### Needed tremendous helps with this one. Much of this code is taken from Author's solution here: https://ehmatthes.github.io/pcc_3e/solutions/chapter_9/#9-8-privileges