summaryrefslogtreecommitdiff
path: root/internal/processing
diff options
context:
space:
mode:
Diffstat (limited to 'internal/processing')
-rw-r--r--internal/processing/account/update.go46
-rw-r--r--internal/processing/timeline/public_test.go6
2 files changed, 34 insertions, 18 deletions
diff --git a/internal/processing/account/update.go b/internal/processing/account/update.go
index f0e3b790b..99dd074a5 100644
--- a/internal/processing/account/update.go
+++ b/internal/processing/account/update.go
@@ -212,6 +212,37 @@ func (p *Processor) Update(ctx context.Context, account *gtsmodel.Account, form
}
}
+ if form.WebVisibility != nil {
+ switch apimodel.Visibility(*form.WebVisibility) {
+
+ // Show none.
+ case apimodel.VisibilityNone:
+ account.HidesToPublicFromUnauthedWeb = util.Ptr(true)
+ account.HidesCcPublicFromUnauthedWeb = util.Ptr(true)
+
+ // Show public only (GtS default).
+ case apimodel.VisibilityPublic:
+ account.HidesToPublicFromUnauthedWeb = util.Ptr(false)
+ account.HidesCcPublicFromUnauthedWeb = util.Ptr(true)
+
+ // Show public and unlisted (Masto default).
+ case apimodel.VisibilityUnlisted:
+ account.HidesToPublicFromUnauthedWeb = util.Ptr(false)
+ account.HidesCcPublicFromUnauthedWeb = util.Ptr(false)
+
+ default:
+ const text = "web_visibility must be one of public, unlisted, or none"
+ err := errors.New(text)
+ return nil, gtserror.NewErrorBadRequest(err, text)
+ }
+
+ acctColumns = append(
+ acctColumns,
+ "hides_to_public_from_unauthed_web",
+ "hides_cc_public_from_unauthed_web",
+ )
+ }
+
// Account settings flags.
if form.Source != nil {
@@ -287,21 +318,6 @@ func (p *Processor) Update(ctx context.Context, account *gtsmodel.Account, form
settingsColumns = append(settingsColumns, "hide_collections")
}
- if form.WebVisibility != nil {
- apiVis := apimodel.Visibility(*form.WebVisibility)
- webVisibility := typeutils.APIVisToVis(apiVis)
- if webVisibility != gtsmodel.VisibilityPublic &&
- webVisibility != gtsmodel.VisibilityUnlocked &&
- webVisibility != gtsmodel.VisibilityNone {
- const text = "web_visibility must be one of public, unlocked, or none"
- err := errors.New(text)
- return nil, gtserror.NewErrorBadRequest(err, text)
- }
-
- account.Settings.WebVisibility = webVisibility
- settingsColumns = append(settingsColumns, "web_visibility")
- }
-
if form.WebLayout != nil {
webLayout := gtsmodel.ParseWebLayout(*form.WebLayout)
if webLayout == gtsmodel.WebLayoutUnknown {
diff --git a/internal/processing/timeline/public_test.go b/internal/processing/timeline/public_test.go
index 3320a45da..cf3ade7e5 100644
--- a/internal/processing/timeline/public_test.go
+++ b/internal/processing/timeline/public_test.go
@@ -67,7 +67,7 @@ func (suite *PublicTestSuite) TestPublicTimelineGetNotEmpty() {
ctx = suite.T().Context()
requester = suite.testAccounts["local_account_1"]
// Select 1 *just above* a status we know should
- // not be in the public timeline -- a public
+ // not be in the public timeline -- an unlisted
// reply to one of admin's statuses.
maxID = "01HE7XJ1CG84TBKH5V9XKBVGF6"
sinceID = ""
@@ -91,9 +91,9 @@ func (suite *PublicTestSuite) TestPublicTimelineGetNotEmpty() {
// some other statuses were filtered out.
suite.NoError(errWithCode)
suite.Len(resp.Items, 1)
- suite.Equal(`<http://localhost:8080/api/v1/timelines/public?limit=1&local=false&max_id=01F8MHCP5P2NWYQ416SBA0XSEV>; rel="next", <http://localhost:8080/api/v1/timelines/public?limit=1&local=false&min_id=01HE7XJ1CG84TBKH5V9XKBVGF5>; rel="prev"`, resp.LinkHeader)
+ suite.Equal(`<http://localhost:8080/api/v1/timelines/public?limit=1&local=false&max_id=01F8MHCP5P2NWYQ416SBA0XSEV>; rel="next", <http://localhost:8080/api/v1/timelines/public?limit=1&local=false&min_id=01FF25D5Q0DH7CHD57CTRS6WK0>; rel="prev"`, resp.LinkHeader)
suite.Equal(`http://localhost:8080/api/v1/timelines/public?limit=1&local=false&max_id=01F8MHCP5P2NWYQ416SBA0XSEV`, resp.NextLink)
- suite.Equal(`http://localhost:8080/api/v1/timelines/public?limit=1&local=false&min_id=01HE7XJ1CG84TBKH5V9XKBVGF5`, resp.PrevLink)
+ suite.Equal(`http://localhost:8080/api/v1/timelines/public?limit=1&local=false&min_id=01FF25D5Q0DH7CHD57CTRS6WK0`, resp.PrevLink)
}
// A timeline containing a status hidden due to filtering should return other statuses with no error.