解决方案如下:
User
类,包含name
、role
和permissions
属性。name
用于存储用户名称,role
用于存储用户角色,permissions
用于存储用户被授予的权限。class User:
def __init__(self, name, role):
self.name = name
self.role = role
self.permissions = []
def add_permission(self, permission):
self.permissions.append(permission)
def has_permission(self, permission):
return permission in self.permissions
Role
类,包含name
和permissions
属性。name
用于存储角色名称,permissions
用于存储角色拥有的权限。class Role:
def __init__(self, name):
self.name = name
self.permissions = []
def add_permission(self, permission):
self.permissions.append(permission)
def has_permission(self, permission):
return permission in self.permissions
Permission
类,包含name
属性用于存储权限名称。class Permission:
def __init__(self, name):
self.name = name
# 创建权限
read_permission = Permission("read")
write_permission = Permission("write")
# 创建角色
admin_role = Role("admin")
admin_role.add_permission(read_permission)
admin_role.add_permission(write_permission)
user_role = Role("user")
user_role.add_permission(read_permission)
# 创建用户并分配角色
user1 = User("Alice", user_role)
user2 = User("Bob", admin_role)
# 用户权限验证
print("User1 has read permission:", user1.has_permission(read_permission)) # True
print("User1 has write permission:", user1.has_permission(write_permission)) # False
print("User2 has read permission:", user2.has_permission(read_permission)) # True
print("User2 has write permission:", user2.has_permission(write_permission)) # True
以上代码示例演示了通过创建用户、角色和权限的方式来实现安全性的角色与被授予权限控制。每个用户可以被分配一个或多个角色,并且每个角色可以拥有一组权限。用户可以根据自己的角色和权限来验证是否具有特定的权限。