diff options
author | 2022-05-23 11:46:50 +0200 | |
---|---|---|
committer | 2022-05-23 11:46:50 +0200 | |
commit | 469da93678b3f738f65372d13dcd1ea7de390063 (patch) | |
tree | 33d6b5b9facd3cf242235fbfb5f9275051864923 /internal/util/unique.go | |
parent | [docs] Add Caddy instructions to the documentation (#594) (diff) | |
download | gotosocial-469da93678b3f738f65372d13dcd1ea7de390063.tar.xz |
[security] Check all involved IRIs during block checking (#593)
* tidy up context keys, add otherInvolvedIRIs
* add ReplyToable interface
* skip block check if we own the requesting domain
* add block check for other involved IRIs
* use cacheable status fetch
* remove unused ContextActivity
* remove unused ContextActivity
* add helper for unique URIs
* check through CCs and clean slice
* add GetAccountIDForStatusURI
* add GetAccountIDForAccountURI
* check blocks on involved account
* add statuses to tests
* add some blocked tests
* go fmt
* extract Tos as well as CCs
* test PostInboxRequestBodyHook
* add some more testActivities
* deduplicate involvedAccountIDs
* go fmt
* use cacheable db functions, remove new functions
Diffstat (limited to 'internal/util/unique.go')
-rw-r--r-- | internal/util/unique.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/internal/util/unique.go b/internal/util/unique.go index be97a57b0..364c935b7 100644 --- a/internal/util/unique.go +++ b/internal/util/unique.go @@ -18,6 +18,8 @@ package util +import "net/url" + // UniqueStrings returns a deduplicated version of a given string slice. func UniqueStrings(s []string) []string { keys := make(map[string]bool, len(s)) @@ -30,3 +32,16 @@ func UniqueStrings(s []string) []string { } return list } + +// UniqueURIs returns a deduplicated version of a given *url.URL slice. +func UniqueURIs(s []*url.URL) []*url.URL { + keys := make(map[string]bool, len(s)) + list := []*url.URL{} + for _, entry := range s { + if _, value := keys[entry.String()]; !value { + keys[entry.String()] = true + list = append(list, entry) + } + } + return list +} |