Magnolia 的 AccessDefinition class 中弃用的角色
Deprecated roles from AccessDefinition class of Magnolia
我正在检查 AppDescriptor
的权限 属性,发现 AccessDefinition
中的 getRoles
实际上已被弃用。有谁知道为什么它被弃用?这是否意味着我们不应该在应用程序中设置权限角色?我问这个是因为我的代码想要获取应用程序中定义的角色,我不知道我是否可以使用这个角色,即使它已经被弃用了。
来自AccessDefinition.java的代码:
/** @deprecated */
@Deprecated
Collection<String> getRoles();
您应该通过相同的方法签名在 User
下设置它们。
User.getRoles();
Does it mean that we shouldn't be setting the permission roles in the app?
不,您可以设置 运行 应用所需的角色。
方法已被弃用,因为它只会 return 角色配置为 运行 应用程序所必需的角色,而不管是否设置了超级用户使用该应用程序的覆盖权限。
hasAccess(User user)
方法的引入是为了允许对更复杂的规则进行此类检查(例如,考虑超级用户覆盖权限或 AccessDefinition
的自定义实现可能想要引入的任何其他规则),并在同时保持 getRoles()
方法普通(如 returning 用 setRoles(Collection<String> roles)
设置的)。
这就是原因。
我正在检查 AppDescriptor
的权限 属性,发现 AccessDefinition
中的 getRoles
实际上已被弃用。有谁知道为什么它被弃用?这是否意味着我们不应该在应用程序中设置权限角色?我问这个是因为我的代码想要获取应用程序中定义的角色,我不知道我是否可以使用这个角色,即使它已经被弃用了。
来自AccessDefinition.java的代码:
/** @deprecated */
@Deprecated
Collection<String> getRoles();
您应该通过相同的方法签名在 User
下设置它们。
User.getRoles();
Does it mean that we shouldn't be setting the permission roles in the app?
不,您可以设置 运行 应用所需的角色。
方法已被弃用,因为它只会 return 角色配置为 运行 应用程序所必需的角色,而不管是否设置了超级用户使用该应用程序的覆盖权限。
hasAccess(User user)
方法的引入是为了允许对更复杂的规则进行此类检查(例如,考虑超级用户覆盖权限或 AccessDefinition
的自定义实现可能想要引入的任何其他规则),并在同时保持 getRoles()
方法普通(如 returning 用 setRoles(Collection<String> roles)
设置的)。
这就是原因。