diff options
author | 2023-09-21 12:12:04 +0200 | |
---|---|---|
committer | 2023-09-21 12:12:04 +0200 | |
commit | 183eaa5b298235acb8f25ba8f18b98e31471d965 (patch) | |
tree | 55f42887edeb5206122d92eb30e0eedf145a3615 /internal/api/model/domain.go | |
parent | [docs] Add a note on cluster support (#2214) (diff) | |
download | gotosocial-183eaa5b298235acb8f25ba8f18b98e31471d965.tar.xz |
[feature] Implement explicit domain allows + allowlist federation mode (#2200)
* love like winter! wohoah, wohoah
* domain allow side effects
* tests! logging! unallow!
* document federation modes
* linty linterson
* test
* further adventures in documentation
* finish up domain block documentation (i think)
* change wording a wee little bit
* docs, example
* consolidate shared domainPermission code
* call mode once
* fetch federation mode within domain blocked func
* read domain perm import in streaming manner
* don't use pointer to slice for domain perms
* don't bother copying blocks + allows before deleting
* admonish!
* change wording just a scooch
* update docs
Diffstat (limited to 'internal/api/model/domain.go')
-rw-r--r-- | internal/api/model/domain.go | 43 |
1 files changed, 25 insertions, 18 deletions
diff --git a/internal/api/model/domain.go b/internal/api/model/domain.go index c5f77c82f..a5e1ddf10 100644 --- a/internal/api/model/domain.go +++ b/internal/api/model/domain.go @@ -37,46 +37,53 @@ type Domain struct { PublicComment string `form:"public_comment" json:"public_comment,omitempty"` } -// DomainBlock represents a block on one domain +// DomainPermission represents a permission applied to one domain (explicit block/allow). // -// swagger:model domainBlock -type DomainBlock struct { +// swagger:model domainPermission +type DomainPermission struct { Domain - // The ID of the domain block. + // The ID of the domain permission entry. // example: 01FBW21XJA09XYX51KV5JVBW0F // readonly: true ID string `json:"id,omitempty"` - // Obfuscate the domain name when serving this domain block publicly. - // A useful anti-harassment tool. + // Obfuscate the domain name when serving this domain permission entry publicly. // example: false Obfuscate bool `json:"obfuscate,omitempty"` - // Private comment for this block, visible to our instance admins only. + // Private comment for this permission entry, visible to this instance's admins only. // example: they are poopoo PrivateComment string `json:"private_comment,omitempty"` - // The ID of the subscription that created/caused this domain block. + // If applicable, the ID of the subscription that caused this domain permission entry to be created. // example: 01FBW25TF5J67JW3HFHZCSD23K SubscriptionID string `json:"subscription_id,omitempty"` - // ID of the account that created this domain block. + // ID of the account that created this domain permission entry. // example: 01FBW2758ZB6PBR200YPDDJK4C CreatedBy string `json:"created_by,omitempty"` - // Time at which this block was created (ISO 8601 Datetime). + // Time at which the permission entry was created (ISO 8601 Datetime). // example: 2021-07-30T09:20:25+00:00 CreatedAt string `json:"created_at,omitempty"` } -// DomainBlockCreateRequest is the form submitted as a POST to /api/v1/admin/domain_blocks to create a new block. +// DomainPermissionRequest is the form submitted as a POST to create a new domain permission entry (allow/block). // -// swagger:model domainBlockCreateRequest -type DomainBlockCreateRequest struct { - // A list of domains to block. Only used if import=true is specified. +// swagger:model domainPermissionCreateRequest +type DomainPermissionRequest struct { + // A list of domains for which this permission request should apply. + // Only used if import=true is specified. Domains *multipart.FileHeader `form:"domains" json:"domains" xml:"domains"` - // hostname/domain to block + // A single domain for which this permission request should apply. + // Only used if import=true is NOT specified or if import=false. + // example: example.org Domain string `form:"domain" json:"domain" xml:"domain"` - // whether the domain should be obfuscated when being displayed publicly + // Obfuscate the domain name when displaying this permission entry publicly. + // Ie., instead of 'example.org' show something like 'e**mpl*.or*'. + // example: false Obfuscate bool `form:"obfuscate" json:"obfuscate" xml:"obfuscate"` - // private comment for other admins on why the domain was blocked + // Private comment for other admins on why this permission entry was created. + // example: don't like 'em!!!! PrivateComment string `form:"private_comment" json:"private_comment" xml:"private_comment"` - // public comment on the reason for the domain block + // Public comment on why this permission entry was created. + // Will be visible to requesters at /api/v1/instance/peers if this endpoint is exposed. + // example: foss dorks 😫 PublicComment string `form:"public_comment" json:"public_comment" xml:"public_comment"` } |