Add team roles and content management updates

This commit is contained in:
AzuTear
2026-06-25 19:52:46 +02:00
parent 54293f4c45
commit 693769e5a8
126 changed files with 6966 additions and 738 deletions
@@ -9,8 +9,11 @@ public sealed record AdminSiteSettingsResponse(
string? PrivacyPolicyUpdatedBy,
DateTimeOffset? PrivacyPolicyUpdatedAt,
string ImprintUrl,
string ImprintContent,
string ContactUrl,
string ContactContent,
string SponsorsUrl,
string SponsorsContent,
IEnumerable<PublicSocialLinkDto> SocialLinks,
IEnumerable<FaqItemDto> Faq);
@@ -21,8 +24,11 @@ public sealed record UpdateSiteSettingsRequest(
string PrivacyEmail,
string PrivacyPolicyContent,
string ImprintUrl,
string ImprintContent,
string ContactUrl,
string ContactContent,
string SponsorsUrl,
string SponsorsContent,
PublicSocialLinkDto[] SocialLinks,
FaqItemDto[] Faq);
@@ -33,6 +39,12 @@ public sealed record AdminOperationalSettingsResponse(
bool DemoLoginPasswordSet,
string DemoLoginTwitchUserId,
string DemoLoginDisplayName,
bool TwitchAuthManagedByDatabase,
bool TwitchAuthConfigured,
string TwitchClientId,
bool TwitchClientSecretSet,
string TwitchRedirectUri,
string TwitchScope,
bool MaintenanceModeEnabled,
string MaintenanceTitle,
string MaintenanceMessage);
@@ -43,6 +55,10 @@ public sealed record UpdateOperationalSettingsRequest(
string? DemoLoginPassword,
string DemoLoginTwitchUserId,
string DemoLoginDisplayName,
string TwitchClientId,
string? TwitchClientSecret,
string TwitchRedirectUri,
string TwitchScope,
bool MaintenanceModeEnabled,
string MaintenanceTitle,
string MaintenanceMessage);
+63
View File
@@ -0,0 +1,63 @@
namespace Backend.Contracts;
public sealed record AdminTeamResponse(
IEnumerable<AdminTeamMemberDto> Members,
IEnumerable<AdminTeamRoleDto> Roles,
IEnumerable<AdminTeamPermissionDto> Permissions);
public sealed record AdminTeamMemberDto(
int Id,
string Login,
string DisplayName,
string Role,
string? BoundTwitchUserId,
string? BoundTwitchDisplayName,
bool IsActive,
bool MustChangePassword,
DateTimeOffset CreatedAt,
DateTimeOffset? UpdatedAt,
DateTimeOffset? LastLoginAt,
DateTimeOffset? TwitchBoundAt,
DateTimeOffset? PasswordResetAt);
public sealed record AdminTeamRoleDto(
string Key,
string Label,
string Description,
bool IsSystemRole,
IEnumerable<string> PermissionKeys);
public sealed record AdminTeamPermissionDto(
string Key,
string Label,
string Description,
string MenuPath,
bool ReadOnlySupported);
public sealed record CreateTeamMemberRequest(
string Login,
string DisplayName,
string Role);
public sealed record UpdateTeamMemberRequest(
string Login,
string DisplayName,
string Role,
bool IsActive);
public sealed record UpdateTeamRolesRequest(
AdminTeamRoleUpdateDto[] Roles);
public sealed record AdminTeamRoleUpdateDto(
string Key,
string[] PermissionKeys);
public sealed record TeamMemberPasswordResponse(
bool Saved,
int MemberId,
string GeneratedPassword,
bool MustChangePassword);
public sealed record DeleteTeamMemberResponse(
bool Deleted,
int MemberId);
+30 -1
View File
@@ -10,8 +10,37 @@ public sealed record DemoLoginRequest(
string? Email,
string? Password);
public sealed record TeamLoginRequest(
string Login,
string Password);
public sealed record TeamTwitchLoginRequest(
string TwitchUserId,
string? DisplayName);
public sealed record ChangePasswordRequest(
string CurrentPassword,
string NewPassword);
public sealed record BindTeamTwitchRequest(
string TwitchUserId,
string? DisplayName);
public sealed record TwitchAuthorizeRequest(
string Purpose,
string? ReturnUrl,
string? FrontendOrigin);
public sealed record TwitchAuthorizeResponse(
string AuthorizationUrl);
public sealed record AuthSessionDto(
string SessionToken,
string TwitchUserId,
string DisplayName,
string Role);
string Role,
IEnumerable<string> PermissionKeys,
bool MustChangePassword = false,
string? TeamLogin = null,
string? BoundTwitchUserId = null,
string? BoundTwitchDisplayName = null);
+8 -1
View File
@@ -22,6 +22,10 @@ public sealed record WinnerPreviewDto(
string WinnerPlatform,
string WinnerUrl);
public sealed record ArchiveYearDto(
int Year,
int WinnerCount);
public sealed record FaqItemDto(string Question, string Answer);
public sealed record PublicSocialLinkDto(
@@ -33,8 +37,10 @@ public sealed record PublicSocialLinkDto(
bool ShowOnCommunity = true);
public sealed record FooterLinkDto(
string Key,
string Label,
string Url);
string Url,
string Content);
public sealed record PublicSiteContentDto(
string HostDisplayName,
@@ -64,5 +70,6 @@ public sealed record OverviewResponse(
IEnumerable<TimelineItem> Timeline,
IEnumerable<FeaturedCategoryDto> FeaturedCategories,
IEnumerable<WinnerPreviewDto> WinnersPreview,
IEnumerable<ArchiveYearDto> ArchiveYears,
PublicSiteContentDto SiteContent,
IEnumerable<FaqItemDto> Faq);
+1 -1
View File
@@ -1,7 +1,7 @@
namespace Backend.Contracts;
public sealed record NominationEntryRequest(
string Name,
string? Name,
string StreamUrl);
public sealed record CreateNominationRequest(