Add member avatar privacy
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
-- Create new columns --
|
||||
alter table members add column description_privacy integer check (description_privacy in (1, 2)) not null default 1;
|
||||
alter table members add column name_privacy integer check (name_privacy in (1, 2)) not null default 1;
|
||||
alter table members add column avatar_privacy integer check (avatar_privacy in (1, 2)) not null default 1;
|
||||
alter table members add column birthday_privacy integer check (birthday_privacy in (1, 2)) not null default 1;
|
||||
alter table members add column pronoun_privacy integer check (pronoun_privacy in (1, 2)) not null default 1;
|
||||
alter table members add column metadata_privacy integer check (metadata_privacy in (1, 2)) not null default 1;
|
||||
@@ -10,6 +11,7 @@ alter table members add column metadata_privacy integer check (metadata_privacy
|
||||
-- Transfer existing settings --
|
||||
update members set description_privacy = member_privacy;
|
||||
update members set name_privacy = member_privacy;
|
||||
update members set avatar_privacy = member_privacy;
|
||||
update members set birthday_privacy = member_privacy;
|
||||
update members set pronoun_privacy = member_privacy;
|
||||
update members set metadata_privacy = member_privacy;
|
||||
|
@@ -4,5 +4,8 @@
|
||||
{
|
||||
public static string NameFor(this PKMember member, LookupContext ctx) =>
|
||||
member.NamePrivacy.CanAccess(ctx) ? member.Name : member.DisplayName ?? member.Name;
|
||||
|
||||
public static string AvatarFor(this PKMember member, LookupContext ctx) =>
|
||||
member.AvatarPrivacy.CanAccess(ctx) ? member.AvatarUrl : null;
|
||||
}
|
||||
}
|
@@ -25,6 +25,7 @@ namespace PluralKit.Core {
|
||||
|
||||
public PrivacyLevel MemberVisibility { get; set; }
|
||||
public PrivacyLevel DescriptionPrivacy { get; set; }
|
||||
public PrivacyLevel AvatarPrivacy { get; set; }
|
||||
public PrivacyLevel NamePrivacy { get; set; } //ignore setting if no display name is set
|
||||
public PrivacyLevel BirthdayPrivacy { get; set; }
|
||||
public PrivacyLevel PronounPrivacy { get; set; }
|
||||
|
@@ -150,7 +150,7 @@ namespace PluralKit.Core {
|
||||
|
||||
public async Task SaveMember(PKMember member) {
|
||||
using (var conn = await _conn.Obtain())
|
||||
await conn.ExecuteAsync("update members set name = @Name, display_name = @DisplayName, description = @Description, color = @Color, avatar_url = @AvatarUrl, birthday = @Birthday, pronouns = @Pronouns, proxy_tags = @ProxyTags, keep_proxy = @KeepProxy, member_visibility = @MemberVisibility, description_privacy = @DescriptionPrivacy, name_privacy = @NamePrivacy, birthday_privacy = @BirthdayPrivacy, pronoun_privacy = @PronounPrivacy, metadata_privacy = @MetadataPrivacy where id = @Id", member);
|
||||
await conn.ExecuteAsync("update members set name = @Name, display_name = @DisplayName, description = @Description, color = @Color, avatar_url = @AvatarUrl, birthday = @Birthday, pronouns = @Pronouns, proxy_tags = @ProxyTags, keep_proxy = @KeepProxy, member_visibility = @MemberVisibility, description_privacy = @DescriptionPrivacy, name_privacy = @NamePrivacy, avatar_privacy = @AvatarPrivacy, birthday_privacy = @BirthdayPrivacy, pronoun_privacy = @PronounPrivacy, metadata_privacy = @MetadataPrivacy where id = @Id", member);
|
||||
|
||||
_logger.Information("Updated member {@Member}", member);
|
||||
}
|
||||
|
@@ -6,6 +6,7 @@ namespace PluralKit.Core
|
||||
Visibility,
|
||||
Name,
|
||||
Description,
|
||||
Avatar,
|
||||
Birthday,
|
||||
Pronouns,
|
||||
Metadata
|
||||
@@ -17,6 +18,7 @@ namespace PluralKit.Core
|
||||
{
|
||||
MemberPrivacySubject.Name => "name",
|
||||
MemberPrivacySubject.Description => "description",
|
||||
MemberPrivacySubject.Avatar => "avatar",
|
||||
MemberPrivacySubject.Pronouns => "pronouns",
|
||||
MemberPrivacySubject.Birthday => "birthday",
|
||||
MemberPrivacySubject.Metadata => "metadata",
|
||||
@@ -31,6 +33,7 @@ namespace PluralKit.Core
|
||||
{
|
||||
MemberPrivacySubject.Name => member.NamePrivacy = level,
|
||||
MemberPrivacySubject.Description => member.DescriptionPrivacy = level,
|
||||
MemberPrivacySubject.Avatar => member.AvatarPrivacy = level,
|
||||
MemberPrivacySubject.Pronouns => member.PronounPrivacy = level,
|
||||
MemberPrivacySubject.Birthday => member.BirthdayPrivacy= level,
|
||||
MemberPrivacySubject.Metadata => member.MetadataPrivacy = level,
|
||||
@@ -43,6 +46,7 @@ namespace PluralKit.Core
|
||||
{
|
||||
member.NamePrivacy = level;
|
||||
member.DescriptionPrivacy = level;
|
||||
member.AvatarPrivacy = level;
|
||||
member.PronounPrivacy = level;
|
||||
member.BirthdayPrivacy = level;
|
||||
member.MetadataPrivacy = level;
|
||||
@@ -62,6 +66,12 @@ namespace PluralKit.Core
|
||||
case "info":
|
||||
subject = MemberPrivacySubject.Description;
|
||||
break;
|
||||
case "avatar":
|
||||
case "pfp":
|
||||
case "pic":
|
||||
case "icon":
|
||||
subject = MemberPrivacySubject.Avatar;
|
||||
break;
|
||||
case "birthday":
|
||||
case "birth":
|
||||
case "bday":
|
||||
|
Reference in New Issue
Block a user