Implement a class Authorization with private attributes for roles and permissions. Include methods to grant and revoke permissions, ensuring that only valid roles can have certain permissions.
Example 1:
Input: Grant: "admin", "write" Output: "Permission granted"
Example 2:
Input: Grant: "user", "write" Output: "Permission denied"
Maintain a dictionary for roles and their permissions. Check the role before granting permissions.
class Authorization:
def __init__(self):
self._roles = {'admin': set(), 'user': set()}
def grant(self, role, permission):
if role in self._roles and (role == 'admin' or permission == 'read'):
self._roles[role].add(permission)
return "Permission granted"
else:
return "Permission denied"
def revoke(self, role, permission):
if role in self._roles and permission in self._roles[role]:
self._roles[role].remove(permission)
# Test the class
authorization = Authorization()
authorization.grant('admin', 'write') # Output: Permission granted
authorization.grant('user', 'write') # Output: Permission denied
Unlock AI & Data Science treasures. Log in!