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!