7.1 简介

通常来说你会想在你的应用中识别不同的用户,基于单个用户和/或该用户角色来限制用户对系统某个部分的访问。

当我们提到用户和访问控制时,我们要记住这个话题由三方面组成:

  • 用户验证:通过登陆(login或sign-in)过程来识别用户(或者识别出不明身份/匿名用户)。

  • 用户角色:系统中用户扮演的角色或参加的组。

  • 用户访问:用户可以访问系统的哪部分取决于他在系统中的身份或角色。

在Solar中,上面提到的每一方面都有和其关联的适配器类:

  • Solar_Auth 提供一个适配器,允许用户验证不同身份的存储后端:SQL表、LDAP服务和电子邮件服务等。验证系统是全自动化的,无需控制器激活或维持。

  • Solar_Role 提供一个适配器,给定一个用户名(也即:一个用户“句柄”),就能找出该用户属于哪个组(即:用户角色)。适配器括括基于文件和基于SQL表的存储后端。

  • Solar_Access 提供一个适配器,基于用户句柄和角色,查找哪些控制器和动作是允许用户访问的。访问控制后端包括基于文件和基于SQL表的存储后端。

因为以上三个方面是相互关联的,所以Solar提供Solar_User类把每个适配器的实例整合到一个对象中。这提供了当前用户的信息收集站:用户的身份验证状态、身份认证(如果有的话)、用户角色和用户的访问控制权限。