class User:
def __init__(self, username, permission_level):
self.username = username
self.permission_level = permission_level
def check_permission(required_permission):
"""
Ein Decorator, der das Berechtigungslevel des Benutzers überprüft.
Druckt f'{user.username} hat nicht genügend Berechtigungen.', wenn das Berechtigungslevel nicht ausreicht.
Args:
required_permission (int): Das erforderliche Berechtigungslevel.
Returns:
function: Eine dekorierte Funktion, die nur ausgeführt wird, wenn das Berechtigungslevel ausreicht.
"""
def decorator(original_function):
def wrapper(user, *args, **kwargs):
if user.permission_level >= required_permission:
return original_function(user, *args, **kwargs)
else:
print(f'{user.username} hat nicht genügend Berechtigungen.')
return wrapper
return decorator
@check_permission(2)
def view_profile(user):
print(f"{user.username} kann das Profil anzeigen.")
@check_permission(4)
def edit_profile(user):
print(f"{user.username} kann das Profil bearbeiten.")
# Testen Sie Ihren Decorator
if __name__ == '__main__':
alice = User('Alice', 3)
bob = User('Bob', 1)
view_profile(alice)
edit_profile(alice)
view_profile(bob)
edit_profile(bob)