forked from tecladocode/python-refresher
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcode.py
35 lines (27 loc) · 1.05 KB
/
code.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import functools
user1 = {"name":"Josh","access_level": "admin", "password": "1234"}
user2 = {"name":"Diana","access_level": "user", "password": "4321"}
def make_secure(access_level):
def decorator(func):
@functools.wraps(func)
def secure_function(*args, **kwargs):
if args:
user_temp = args[0]
if user_temp["access_level"] == access_level or user_temp["access_level"] == "admin":
return func(*args, **kwargs)
else:
return f"User {user_temp['name']} doesn't have the {access_level} access level."
else:
return f"Guest access is not allowed."
return secure_function
return decorator
@make_secure("admin")
def get_admin_password(user: dict):
return user["name"]+user["password"]
@make_secure("user")
def get_user_password(user: dict):
return user["name"]+user["password"]
print(get_admin_password(user1))
print(get_admin_password(user2))
print(get_user_password(user1))
print(get_user_password(user2))