.. _permissions: =========== 权限 =========== Wagtail 采用并扩展 :ref:`Django 权限管理系统 ` 用以控制网站内容创建、审核权限。结合网站内容管理不同区块的访问权限以实现不同工作组有不同的内容管理权限。 Wagtail 通过"设置"菜单下的群组管理界面提供权限管理功能。 页面权限 ---------------- 权限可以在页面树的任何结点上进行配置。例如,网站有如下页面层级结构:: MegaCorp/ About us Offices/ UK France Germany 一个对 'Offices' 页面有'编辑(edit)' 权限的组,也自动获得了对 'UK', 'France' 及 'Germany' 页面的编辑权限。要赋予全局权限,可以在'根(root)'结点上进行赋权,因为所有页面都是在根页面下的,根结点不能删除,而且未来新增页面也都是在根结点下的。 一个用户通过 Wagtail 后台管理界面创建页面时,这个用户就是这个页面的所有者,拥有'新增(add)'权限的用户只能对他自已创建的页面进行编辑或新增子页面。能让拥有者编辑的原因是,在创建页面过程中由于编辑内容较多,通常不会编辑完成页面,如果不允许作者 进行编辑,则'新增(add)'权限没有太多实用价值。能免编辑页面的用户也可以删除页面,这与 Django 的标准权限模型不同,所以 Wagtail 没有提供'删除(delete)' 权限。 整个可用的权限类型说明如下: * **Add** - 授予在当前页面创建子页面的权限 (假定页面模型允许 add 操作 - 参考 :ref:`page_type_business_rules`), 如果用户是当前所用者,还可以编辑、删除此页面。如果用户没有'发布(publish)' 权限,将不能删除已发布的页面。 * **Edit** - 授予编辑或删除当前页面及下属页面的权限,当前用户是不是页面的所有者。 regardless of ownership. 只有'编辑(edit)'权限的用户不能新创建页面,只能编辑已存在的页面。如果用户没有'发布(publish)' 权限,将不能删除已发布的页面。 * **Publish** - 授予发布或撤消发布当前页面及下属页面的权限。只有'发布(publish)' 权限的用户不能改变页面及子页面任何内容。没有'发布(publish)' 权限的用户不能将编辑的内容展示给普通的网站访问者,只有发布的页面才能被外部访问到。只有'发布(publish)' 权限的用户即使页面的所有者也不能编辑。 * **Bulk delete** - 允许用户一次批量删除下属页面。如果没有这个权限,下属页面只能一次一个的进行删除,这主要考虑偶然发生的误删除操作。这个权限需要结合 新增(add) / 编辑(edit)权限使用,只设置这个权限,不会拥有删除权限。例如一个用户只拥有新增(add)和批量删除(bulk delete)权限, 只能批量删除用户自已的未发布的页面。 * **Lock** - 授予锁定/解锁当前页面下(包括页面的子页面)权限,锁定后不允许用户对页面做任何编辑。 草稿只能被拥有编辑和发布权限的人进行查看。 .. _image_document_permissions: 图片/文档的权限管理 ---------------------------- 图片和文档的权限管理类似于页面。图片和文档的所有者是上传图片的人,用户拥有'新增(add)'权限时可以对其自已上传的图片/文档进行编辑。删除权限与融入编辑权限之中,未单独定义类型。 存取特定图片/文档的权限需要结合分类 *collections* 完成。在 '根' 上设置的权限会应用到全部分类,所在拥有图片'根'目录'编辑(edit)权限'可以对所有分类中的图片进行编辑。在每个分类设置的权限只对设置的分类下内容有效。