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

65 lines
1.4 KiB
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 verify_admin(user: User2 | User) -> bool:
return isinstance(user, User2) and user.is_admin
def verify_regular_user(user: User2 | User) -> bool:
return isinstance(user, User2) and user.is_admin is False
def get_admin(user_name: str) -> Admin | None:
for user in users:
if verify_admin(user) and user.name == user_name:
return user
def get_old_user(user_name: str) -> User:
for user in users:
if isinstance(user, User) and user.name == user_name:
return user
def get_regular_user(user_name: str) -> User2:
for user in users:
if verify_regular_user(user) and user.name == user_name:
return user
def get_user(user_name: str,
is_admin: bool = False,
consider_old_users: bool = False) -> User | User2 | Admin | None:
if is_admin:
return get_admin(user_name)
if consider_old_users:
return get_old_user(user_name)
return get_regular_user(user_name)