[feature] Implement Mastodon-compatible roles (#3136)

* Implement Mastodon-compatible roles

- `Account.role` should only be available through verify_credentials for checking current user's permissions
- `Account.role` now carries a Mastodon-compatible permissions bitmap and a marker for whether it should be shown to the public
- `Account.roles` added for *public* display roles (undocumented but stable since Mastodon 4.1)
- Web template now uses only public display roles (no user-visible change here, we already special-cased the `user` role)

* Handle verify_credentials case for default role

* Update JSON exact-match tests

* Address review comments

* Add blocks bit to admin permissions bitmap
This commit is contained in:
Vyr Cossont
2024-07-31 09:26:09 -07:00
committed by GitHub
parent 2f7d654380
commit fd837776e2
12 changed files with 765 additions and 209 deletions

View File

@ -118,10 +118,7 @@ func (suite *StatusHistoryTestSuite) TestGetHistory() {
"last_status_at": "2024-01-10T09:24:00.000Z",
"emojis": [],
"fields": [],
"enable_rss": true,
"role": {
"name": "user"
}
"enable_rss": true
},
"poll": null,
"media_attachments": [],