我使用Yii在我的应用程序中实现了基本的RBAC功能。有角色,任务和操作设置和工作正常。
我要完成的工作如下:在用户登录时,检查用户是否有权登录我的应用程序的这个特定区域。有一个操作分配给这个特定的任务。但问题是,首选的检查方法是允许用户使用 CWebUser :: checkAccess 操作,该操作在登录时不可用,因为Yii登录工作流程是这样的:
通过 Yii :: app() - >用户全局可用的CWebUser实例在登录状态时不会传播(列出第二项和第三项),这对我来说非常有意义。但是,为了调用checkAccess,我需要一个CWebUser实例。 CAuthManager似乎没有提供我需要的功能(没有方法可以检查用户是否具有某个原子权限(操作)或列出所有这些功能)。 在我的示例中,所需的操作通常总是与角色一起分配,但是谁知道 - 有人可能只能访问这一个登录操作,这是我想要覆盖的情况。
非常感谢!