Files
cours-420-320-ah/solid/single_responsability/simple_function.py
T
2023-12-01 08:13:14 -05:00

38 lines
860 B
Python

class User:
def __init__(self, name):
self.name = name
self.isAdmin = False
class User2:
def __init__(self, name):
self.name = name
self.is_admin = False
class Admin(User2):
def __init__(self, name):
super().__init__(name)
self.is_admin = True
users = [
User2('walid'),
User2('haikel'),
User2('manel'),
Admin('tristan'),
Admin('didier'),
User('jonathan'),
User('samuel'),
]
def get_user(user_name: str, is_admin: bool = False, consider_old_users: bool=False) -> User | User2 | Admin | None:
for user in users:
if user_name == user.name:
if isinstance(user, User) and not consider_old_users:
continue
if isinstance(user, User2) and user.is_admin and not is_admin:
continue
return user