1
0
mirror of https://codeberg.org/fediverse/fep.git synced 2026-08-06 04:05:53 +00:00

FEP-5219: Update proposal (#895)

- Added `attributedTo` and `object` fields to `Relationship` object.
- Allowed to hide `affiliations` collection.

Reviewed-on: https://codeberg.org/fediverse/fep/pulls/895
This commit is contained in:
silverpill
2026-08-01 20:15:48 +02:00
committed by silverpill
parent 50097303b1
commit 5fb4c27e9a
+12 -1
View File
@@ -42,12 +42,17 @@ The group actor itself is considered to have an `admin` affiliation.
Affiliations can be specified using the `affiliations` collection attached to a `Group` actor. It is an ordered collection where each item is a `Relationship` object that represents a relationship between a user and a group. This object has the following fields:
- `id`: the identifier of the object.
- `type`: the `Relationship` string.
- `subject`: the identifier of an actor.
- `attributedTo`: the identifier of the group actor.
- `subject`: the identifier of the affiliated actor.
- `object`: the identifier of the group actor.
- [`relationship`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-relationship-term): the affiliation name (`admin`, `moderator`, `member`, `outcast` or a custom affiliation identifier).
The `affiliations` collection is sorted from most privilege to least privilege. When two actors have the same privileges but different power levels, the actor with the higher power level MUST be placed first.
Access to the `affiliations` collection MAY be limited if the group is not public.
When adding a `Relationship` for a custom affiliation, a fallback representation SHOULD also be included. This fallback representation MUST specify an affiliation from the default set that has equal or fewer privileges compared to the custom affiliation.
Consumers MUST ignore relationships that represent unsupported affiliations.
@@ -61,13 +66,19 @@ Example of an `affiliations` collection:
"attributedTo": "https://social.example/group",
"items": [
{
"id": "https://social.example/group/affiliations/1",
"type": "Relationship",
"attributedTo": "https://social.example/group",
"subject": "https://social.example/alice",
"object": "https://social.example/group",
"relationship": "admin"
},
{
"id": "https://social.example/group/affiliations/2",
"type": "Relationship",
"attributedTo": "https://social.example/group",
"subject": "https://social.example/bob",
"object": "https://social.example/group",
"relationship": "member"
}
]