Build / Build (push) Successful in 1m3s
A singleton ServerSettings (title, descriptions, contact, thumbnail, privacy policy, terms, rules, relays, media overrides, PublishActivity), cached by InstanceSettings and read by the instance API, NodeInfo, the instance actor, the web pages and the mailer; its defaults are the old literals, so nothing changes until an administrator edits. /clientapi/admin/settings (and /thumbnail), /announcements, /relays for administrators; /clientapi/moderator/log, the staff's log (AdminAction, written by domain blocks, backups, settings and the CLI; no IP, never a root paired with its personas). The Mastodon API's rules, extended description, privacy policy, terms of service, domain blocks (Published, Obfuscate), announcements (dismiss, reactions, streaming) and activity (only when published). Reports carry rule ids. Media overrides clamped to hard caps. Relays named by the settings reconcile next to the configured ones. Verified: interop.sh instance accounts relay with mastodon, relay, aoderelay and mailpit, 119 passed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WpVCoDeM1qUTRp4fXQdfof
39 lines
1.5 KiB
C#
39 lines
1.5 KiB
C#
using PrivaPub.ClientModels.Resources;
|
|
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
namespace PrivaPub.ClientModels.Admin
|
|
{
|
|
public class DomainBlockForm
|
|
{
|
|
[Required(ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(ErrorsResource)),
|
|
StringLength(253, MinimumLength = 3, ErrorMessageResourceName = "StringLengthMinMax", ErrorMessageResourceType = typeof(ErrorsResource))]
|
|
public string Domain { get; set; }
|
|
|
|
public bool Suspend { get; set; } = true;
|
|
public bool RejectMedia { get; set; }
|
|
// listed at /api/v1/instance/domain_blocks (off by default: it tells the blocked server, and everyone, of the block)
|
|
public bool Published { get; set; } = false;
|
|
public bool Obfuscate { get; set; } = false;//listed with part of its name hidden
|
|
|
|
[StringLength(1000, ErrorMessageResourceName = "MaxLengthString", ErrorMessageResourceType = typeof(ErrorsResource))]
|
|
public string PublicComment { get; set; }
|
|
|
|
[StringLength(1000, ErrorMessageResourceName = "MaxLengthString", ErrorMessageResourceType = typeof(ErrorsResource))]
|
|
public string PrivateComment { get; set; }
|
|
}
|
|
|
|
public class ViewDomainBlock
|
|
{
|
|
public string Id { get; set; }
|
|
public string Domain { get; set; }
|
|
public string Severity { get; set; }
|
|
public bool RejectMedia { get; set; }
|
|
public string PublicComment { get; set; }
|
|
public string PrivateComment { get; set; }
|
|
public bool Published { get; set; } = false;
|
|
public bool Obfuscate { get; set; } = false;
|
|
public DateTime CreatedAt { get; set; }
|
|
}
|
|
}
|