sciactive/tilmeld-server

此包已废弃,不再维护。未建议替代包。

Nymph用户和组管理,带有访问控制。


README

Nymph用户和组管理,带有访问控制。

弃用通知

Nymph/Tilmeld的PHP实现已弃用。它将不再添加任何新功能。取而代之的是,将使用Node.js运行的新版Nymph,完全用TypeScript编写,以替代PHP实现。您可以在Nymph.js仓库找到它。

安装

自动设置

使用Nymph App Template是开始构建Nymph应用最快的方式。

手动安装

composer require sciactive/tilmeld-server

工作原理

Tilmeld使用Nymph实体存储用户和组。它允许用户使用Nymph REST端点注册和登录。

Tilmeld方法在Tilmeld\Tilmeld类中可用。(它们都是静态方法。)

用户

用户帐户可以在设置应用中创建,或者通过PHP中的register函数或JS中的$register函数注册。在tilmeld-components包中有一个TilmeldLogin组件,可以为您构建登录/注册表单。在Tilmeld中注册的第一个用户帐户将获得带有system/admin能力的管理员权限。

用户作为Tilmeld\Entities\User类可用。

组作为Tilmeld\Entities\Group类可用。

主组

用户只能有一个主组。它成为他们创建的任何实体的组。默认情况下,Tilmeld将为每个用户创建一个新的主组。

次组

次组用于授予用户额外权限或给予访问实体。

访问控制

Tilmeld会过滤所有对Nymph的调用,以允许用户仅查看和修改他们有权访问的实体。当用户创建实体时,他们的用户成为该实体的user属性,他们的主组成为该实体的group属性。默认情况下,实体将允许对其用户具有读写/删除访问权限,对其组具有读取访问权限,对其他用户没有访问权限。

您可以使用以下常量进行访问控制

  • Tilmeld::FULL_ACCESS - 读取/编辑/保存/更改AC/删除访问。
  • Tilmeld::WRITE_ACCESS - 读取/编辑/保存访问。
  • Tilmeld::READ_ACCESS - 读取访问。
  • Tilmeld::NO_ACCESS - 无访问。

以下属性用于实体,以控制谁有访问权限

  • $entity->user - 拥有实体的 User
  • $entity->group - 拥有实体的 Group
  • $entity->acUser - 拥有者的访问控制级别。默认为 Tilmeld::FULL_ACCESS
  • $entity->acGroup - 拥有者的访问控制级别。默认为 Tilmeld::READ_ACCESS
  • $entity->acOther - 其他人的访问控制级别。默认为 Tilmeld::NO_ACCESS
  • $entity->acRead - 被授予 Tilmeld::READ_ACCESS 的用户/组的数组。
  • $entity->acWrite - 被授予 Tilmeld::WRITE_ACCESS 的用户/组的数组。
  • $entity->acFull - 被授予 Tilmeld::FULL_ACCESS 的用户/组的数组。

权限

权限可以授予用户和/或其组。当你调用 gatekeeper 时,它会检查给定的权限。

system/admin 权限是特殊的,它会导致 gatekeeper 对于具有此权限的用户始终返回 true。它还会让用户查看、修改和删除所有实体,就像它们有 Tilmeld::FULL_ACCESS 一样。

tilmeld/admin 权限允许用户查看设置应用并修改所有用户/组(不包括具有 system/admin 权限的用户/组)。Tilmeld 管理员对用户电子邮件的更改不需要验证。Tilmeld 管理员不能将 system/admin 授予用户或组,但他们可以分配组,因此不要授予组 system/admin 权限。

生成的首要组

默认情况下,Tilmeld 为每个新用户生成一个首要组。当用户信息更改时,该信息将传播到组中。

API 文档

请参阅完整的 API 文档,网址为 https://tilmeld.org/api/server/latest