mirror of
https://github.com/PluralKit/PluralKit.git
synced 2026-02-04 04:56:49 +00:00
feat: config setting to automatically set members/groups to private when creating
This commit is contained in:
parent
7c37726afb
commit
1ff6bb76cd
10 changed files with 140 additions and 24 deletions
7
PluralKit.Core/Database/Migrations/22.sql
Normal file
7
PluralKit.Core/Database/Migrations/22.sql
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
-- schema version 22
|
||||
-- automatically set members/groups as private when creating
|
||||
|
||||
alter table system_config add column member_default_private bool not null default false;
|
||||
alter table system_config add column group_default_private bool not null default false;
|
||||
|
||||
update info set schema_version = 22;
|
||||
|
|
@ -9,7 +9,7 @@ namespace PluralKit.Core;
|
|||
internal class DatabaseMigrator
|
||||
{
|
||||
private const string RootPath = "PluralKit.Core.Database"; // "resource path" root for SQL files
|
||||
private const int TargetSchemaVersion = 21;
|
||||
private const int TargetSchemaVersion = 22;
|
||||
private readonly ILogger _logger;
|
||||
|
||||
public DatabaseMigrator(ILogger logger)
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@ public class SystemConfigPatch: PatchObject
|
|||
public Partial<string> UiTz { get; set; }
|
||||
public Partial<bool> PingsEnabled { get; set; }
|
||||
public Partial<int?> LatchTimeout { get; set; }
|
||||
public Partial<bool> MemberDefaultPrivate { get; set; }
|
||||
public Partial<bool> GroupDefaultPrivate { get; set; }
|
||||
public Partial<int?> MemberLimitOverride { get; set; }
|
||||
public Partial<int?> GroupLimitOverride { get; set; }
|
||||
|
||||
|
|
@ -18,6 +20,8 @@ public class SystemConfigPatch: PatchObject
|
|||
.With("ui_tz", UiTz)
|
||||
.With("pings_enabled", PingsEnabled)
|
||||
.With("latch_timeout", LatchTimeout)
|
||||
.With("member_default_private", MemberDefaultPrivate)
|
||||
.With("group_default_private", GroupDefaultPrivate)
|
||||
.With("member_limit_override", MemberLimitOverride)
|
||||
.With("group_limit_override", GroupLimitOverride)
|
||||
);
|
||||
|
|
@ -41,6 +45,12 @@ public class SystemConfigPatch: PatchObject
|
|||
if (LatchTimeout.IsPresent)
|
||||
o.Add("latch_timeout", LatchTimeout.Value);
|
||||
|
||||
if (MemberDefaultPrivate.IsPresent)
|
||||
o.Add("member_default_private", MemberDefaultPrivate.Value);
|
||||
|
||||
if (GroupDefaultPrivate.IsPresent)
|
||||
o.Add("group_default_private", GroupDefaultPrivate.Value);
|
||||
|
||||
if (MemberLimitOverride.IsPresent)
|
||||
o.Add("member_limit", MemberLimitOverride.Value);
|
||||
|
||||
|
|
@ -63,6 +73,12 @@ public class SystemConfigPatch: PatchObject
|
|||
if (o.ContainsKey("latch_timeout"))
|
||||
patch.LatchTimeout = o.Value<int>("latch_timeout");
|
||||
|
||||
if (o.ContainsKey("member_default_private"))
|
||||
patch.MemberDefaultPrivate = o.Value<bool>("member_default_private");
|
||||
|
||||
if (o.ContainsKey("group_default_private"))
|
||||
patch.GroupDefaultPrivate = o.Value<bool>("group_default_private");
|
||||
|
||||
return patch;
|
||||
}
|
||||
}
|
||||
|
|
@ -10,6 +10,8 @@ public class SystemConfig
|
|||
public string UiTz { get; set; }
|
||||
public bool PingsEnabled { get; }
|
||||
public int? LatchTimeout { get; }
|
||||
public bool MemberDefaultPrivate { get; }
|
||||
public bool GroupDefaultPrivate { get; }
|
||||
public int? MemberLimitOverride { get; }
|
||||
public int? GroupLimitOverride { get; }
|
||||
|
||||
|
|
@ -25,6 +27,8 @@ public static class SystemConfigExt
|
|||
o.Add("timezone", cfg.UiTz);
|
||||
o.Add("pings_enabled", cfg.PingsEnabled);
|
||||
o.Add("latch_timeout", cfg.LatchTimeout);
|
||||
o.Add("member_default_private", cfg.MemberDefaultPrivate);
|
||||
o.Add("group_default_private", cfg.GroupDefaultPrivate);
|
||||
o.Add("member_limit", cfg.MemberLimitOverride ?? Limits.MaxMemberCount);
|
||||
o.Add("group_limit", cfg.GroupLimitOverride ?? Limits.MaxGroupCount);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue