聚焦:访问控制
丰富细致的基于用户、角色和权限的访问控制系统是Drupal最为强大的特征之一。
用户(User)
网站的访问者。用户可以是任何一个人:一个贸然来访者,天天在站上发博文的总裁,站点管理员,或者某个虽不在你公司工作但也来发布内容的人(比如社交网站sns)。
角色(role)
用户分组,如“管理员”或者“销售团队成员”。Drupal默认有两种角色——匿名用户(未登录者)和认证用户(登陆者),但是你可以随意创建多个不同角色。
权限(Permission)
权限是规定某类角色用户能做(或不能做)什么的东西。每个模块都可以设定其权限。比如“访问站点内容”或者“编辑自己的博客”即是权限之一种。如果用户没权而去访问某个特定页面时,系统会反馈给他一个“访问禁止”错误提示页面。

在Administer→Site configuration→Error reporting (admin/set-
tings/error-reporting)中,你可以自定义“访问禁止”页和“页面未找到”页。
在开始一个项目之前,坐下来考虑清楚那些用户将来访问你的站点以及他们来站上想干什么,是非常值得的。这决定你系统中的角色与权限设置。把你的用户在各个方面尽量想的广一些。特别是在一些小站或者小组织中,你可能想为每一个用户创立一个角色(例如,Greg角色)。但是这样做非常麻烦,更别说容易混淆,你想象一下假设后来Susan取代了Greg。所以先考虑好了Greg会在站上做些什么,是站点配置,还是升级还是备份,然后再去命名角色。
用户访问权配置
用户访问控制包含两部分:(可选)创立一个或多个角色来匹配你站点的来访用户;给这些角色分配权限。
在Administer→User management→Roles (admin/user/roles)下,如图2-31,你可以创立、编辑、或者删除角色。在这里,角色仅一名称而已。单个用户归于角色或者通过他们的用 户资料,或者通过用户管理页Administer→User management→Users (admin/user/user)。无论是创立还是分配角色都需要取得“管理用户”的权限。

点击屏幕中角色右边的“edit permissions”连接,将会显示这个角色的所有权限。这个功能在假设你需要给某个单一角色分配多种权限时很有用处。
图2-31,角色管理页

当您第一次创建角色时,角色将不会被指派任何权限。网站管理员最初负责界定权限和分派用户到这个角色中去。
在Administer→User management→Permissions (admin/user/permissions),独立的权限被分配给角色,如图2-32。进入这个界面是由“administer user permissions”权限控制的,所以不同的用户不需要提高他们在系统中的权限,而只需要关注用户自己相关的日常管理任务。

除了匿名用户,所有角色都取得“认证用户”外加所指派其他角色的权限。图2-32中,编辑(editor)和管理员(site administrator)自然要继承“访问评论”(access comments)的权限,因为他们登陆进来就是来使用站点的。但是,因“管理评论”(administer comments)是个更高一级的没有授予认证用户的权限,所以需要给编辑和管理员选上以便他们取得这个权限。
图2-32,权限管理页
|
测试访问控制的重要性 一 定为你定义的每一个角色最起码创立一个“测试”(test)用户,并且在你完成站点的一小节后,用他们浏览一遍。安装过程中创立的那个用户,叫做“1号 ”,取得了系统的全部权限。尽管最初建站时,这个特点带来了不少便利。但是用它来测试的话,会掩盖普通用户将可能遇到的“访问禁止”等错误情况。 新 用户测试,先从原来的用户退出,然后用你想测试的角色用户登陆。你也可以打开多个浏览器,每个浏览器登陆不同的测试用户。开发模块(Devel module http://drupal.org/project/devel) 中的“用户切换”(Switch user) 区块,可以让你无需退出登陆就可在多个用户之间切换。 同时还要注意,每一次开启或者禁止一个模块时,用户的权限都可能发生变化,所以安装或者更新模块后,通常要回到权限管理页面看看。另外,你还想保证有些人不会获得多余它们该有的权限。 |
用户资料
Drupal中,每个用户都有一个叫做“用户资料”的专门页面。这个页面你可以通过登陆后点击“我的帐户”进入。其他用户也可能通过点击显示在你所发布的 博客或者评论旁的用户名进入。默认情况下,用户资料页显示一些关于这个用户的一些简单信息,比如用户名和注册时长。但是通过附加模块,包括核心中的资料模 块,你可以给它添加额外的域,如图2-33,甚至可以完全改变页面的外观。用户在其资料页中,可以完成一些基本设置的修改,比如密码和时区,这里同样可以 使用其他模块来添加更多的特性,比如语言选择或者用户头像。
图2-33,用户资料演示
用户设置
进入Administer→User management→User settings (admin/user/settings),这里有多种可定义用户选项,包括:
- 注册选项,包括是否允许用户自己注册还是仅允许管理员注册
- 系统邮件,比如当用户注册时,或者当用户的帐号被锁定时,系统发给用户的邮件文本
- 签名支持,允许用户在评论下面显示文字签名
- 头像支持,允许用户上传图片或者头像,头像将在用户发布的内容页或者评论中显示
对付违规用户
有一定规模和普及的社区最终都会吸引一些有着不良意图的访问者。
有着“管理用户”权限的管理员可以锁定用户,防止他们登陆。被锁定的用户仅具有匿名用户的权利。也可以直接删除用户,但是最好是锁定而不是删除用户,因为锁定用户的用户名还将保存在其原先发布内容之上。
通过配置访问规则,还可以设定更多的自动锁定,来帮助通过用户名、email、或者主机名来剔除(或者特许)某些用户。最常用的例子就是禁止那些用户名中含侮辱性词语的用户注册,或者禁止使用一些免费邮件如Hotmail来注册。




Comments
Post new comment