summaryrefslogtreecommitdiff
path: root/internal/api
diff options
context:
space:
mode:
Diffstat (limited to 'internal/api')
-rw-r--r--internal/api/client/accounts/accountupdate.go12
-rw-r--r--internal/api/model/account.go3
-rw-r--r--internal/api/model/source.go5
-rw-r--r--internal/api/model/status.go2
4 files changed, 21 insertions, 1 deletions
diff --git a/internal/api/client/accounts/accountupdate.go b/internal/api/client/accounts/accountupdate.go
index f81f54db0..5d3a3da5f 100644
--- a/internal/api/client/accounts/accountupdate.go
+++ b/internal/api/client/accounts/accountupdate.go
@@ -145,6 +145,15 @@ import (
// description: Hide the account's following/followers collections.
// type: boolean
// -
+// name: web_visibility
+// in: formData
+// description: |-
+// Posts to show on the web view of the account.
+// "public": default, show only Public visibility posts on the web.
+// "unlisted": show Public *and* Unlisted visibility posts on the web.
+// "none": show no posts on the web, not even Public ones.
+// type: string
+// -
// name: fields_attributes[0][name]
// in: formData
// description: Name of 1st profile field to be added to this account's profile.
@@ -339,7 +348,8 @@ func parseUpdateAccountForm(c *gin.Context) (*apimodel.UpdateCredentialsRequest,
form.Theme == nil &&
form.CustomCSS == nil &&
form.EnableRSS == nil &&
- form.HideCollections == nil) {
+ form.HideCollections == nil &&
+ form.WebVisibility == nil) {
return nil, errors.New("empty form submitted")
}
diff --git a/internal/api/model/account.go b/internal/api/model/account.go
index 0eaf52734..d34d7d519 100644
--- a/internal/api/model/account.go
+++ b/internal/api/model/account.go
@@ -227,6 +227,9 @@ type UpdateCredentialsRequest struct {
EnableRSS *bool `form:"enable_rss" json:"enable_rss"`
// Hide this account's following/followers collections.
HideCollections *bool `form:"hide_collections" json:"hide_collections"`
+ // Visibility of statuses to show via the web view.
+ // "none", "public" (default), or "unlisted" (which includes public as well).
+ WebVisibility *string `form:"web_visibility" json:"web_visibility"`
}
// UpdateSource is to be used specifically in an UpdateCredentialsRequest.
diff --git a/internal/api/model/source.go b/internal/api/model/source.go
index 3b57f8565..cc3eb78ee 100644
--- a/internal/api/model/source.go
+++ b/internal/api/model/source.go
@@ -26,6 +26,11 @@ type Source struct {
// private = Followers-only post
// direct = Direct post
Privacy Visibility `json:"privacy"`
+ // Visibility level(s) of posts to show for this account via the web api.
+ // "public" = default, show only Public visibility posts on the web.
+ // "unlisted" = show Public *and* Unlisted visibility posts on the web.
+ // "none" = show no posts on the web, not even Public ones.
+ WebVisibility Visibility `json:"web_visibility"`
// Whether new statuses should be marked sensitive by default.
Sensitive bool `json:"sensitive"`
// The default posting language for new statuses.
diff --git a/internal/api/model/status.go b/internal/api/model/status.go
index d0acafae8..9b83fa582 100644
--- a/internal/api/model/status.go
+++ b/internal/api/model/status.go
@@ -232,6 +232,8 @@ type StatusCreateRequest struct {
type Visibility string
const (
+ // VisibilityNone is visible to nobody. This is only used for the visibility of web statuses.
+ VisibilityNone Visibility = "none"
// VisibilityPublic is visible to everyone, and will be available via the web even for nonauthenticated users.
VisibilityPublic Visibility = "public"
// VisibilityUnlisted is visible to everyone, but only on home timelines, lists, etc.