当前位置: 首页 > 工具软件 > SRBAC > 使用案例 >

yii 中srbac的一些说明

邓昊天
2023-12-01

注意,除非你设置 srbac debug 属性为 false ,否则任何人均可以管理 srbac, 同时,除非你分配 Authorizer 角色到至少一个用户,否则任何人均可以管理srbac。

在分配 Authorizer 角色到一个用户后,设置 srbac debug 属性为false 是明智的。同时你也可以删除或重命名 srbac/views/authitem/install 目录。

srbac 主要的管理页面是:path/to/application/index.php?r=srbac/authitem/frontpage。

自动创建和访问检查(Autocreation and access checking)

自版本 1.02 开始,你可以为你的控制器自动创建 操作/任务。 操作的命名格式是:[ModuleId_][Subdirectory.][ContollerId][Action]。例如:

posts_PostView : 模块 posts , 控制器 Post, 动作 View
posts_admin.PostDelete : 模块 posts, 子目录 admin, 控制器 Post, 动作 delete
SiteIndex : 控制器 Site , 动作 Index.

你也可以创建 2 个任务,格式是 [ControllerId]Viewing, [ControllerId]Administrating (例如PostViewing, PostAdministrating).

所有操作被分配到 administrating 任务,通过在 srbac 配置中编辑 userActions 属性,你可以选择哪些操作被分配到viewing 任务。

若你也想要 srbac 在控制器中自动检查访问权限,你的控制器应当扩展 srbac 模块中的 SBaseController 类或其子类。

SbaseController 重写 beforeAction($action) 方法并检查当前用户是否有权限访问当前的 controller/action。

要决定一个用户没有权限访问页面后的要做的事情,你可以重写 SBaseController 中的 onUnauthorizedAccess 方法。 这样你可以显示一个未授权信息页面,转向到登录页面等。

国际化

若你想要翻译 srbac 文本,你应当在 Yii 配置文件中设置目标语言:'language'=>'fr',

然后创建如下包含翻译信息的文件:
srbac/messages/fr/srbac.php (你可以复制 el_gr/srbac.php 并翻译其中的信息)。
srbac/views/install/fr/installText.php (你应当翻译 srbac/views/install/installText.php)

 类似资料: