From f0789b238de1ceff7838c7691057b8da67d54d99 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Sat, 7 Mar 2026 13:25:31 +0800 Subject: [PATCH] :truck: Rename project Pass to Passport --- DysonNetwork.Control/AppHost.cs | 2 +- .../DysonNetwork.Control.csproj | 2 +- DysonNetwork.Control/aspire-manifest.json | 4 +- .../MiChan/Plugins/AccountPlugin.cs | 16 +-- .../Account/AccountServiceGrpc.cs | 40 +++++++ .../Startup/ApplicationConfiguration.cs | 2 + .../Localization/AccountEventResource.cs | 6 - .../Localization/EmailResource.cs | 5 - .../Localization/NotificationResource.cs | 6 - .../Localization/SharedResource.cs | 6 - .../.dockerignore | 0 .../.gitignore | 0 .../Account/AccountAdminController.cs | 6 +- .../Account/AccountController.cs | 6 +- .../Account/AccountCurrentController.cs | 112 ++++-------------- .../Account/AccountEventService.cs | 2 +- .../Account/AccountPublicController.cs | 7 +- .../Account/AccountService.cs | 15 +-- .../Account/AccountServiceGrpc.cs | 46 ++++++- .../Account/AccountUsernameService.cs | 2 +- .../Account/ActionLogService.cs | 2 +- .../Account/ActionLogServiceGrpc.cs | 2 +- .../Account/BotAccountReceiverGrpc.cs | 4 +- .../Account/FortuneSayingController.cs | 2 +- .../Account/FriendsController.cs | 2 +- .../Account/MagicSpellController.cs | 2 +- .../Account/MagicSpellService.cs | 6 +- .../Account/NotableDay.cs | 2 +- .../Account/NotableDaysController.cs | 2 +- .../Account/NotableDaysService.cs | 2 +- .../Account/PadlockAccountContactService.cs | 45 +++++++ .../Account/PresenceActivityController.cs | 2 +- .../Account/Presences/IPresenceService.cs | 2 +- .../Account/Presences/PresenceUpdateJob.cs | 2 +- .../Account/Presences/PresenceUpdateStage.cs | 2 +- .../Presences/SpotifyPresenceService.cs | 2 +- .../Account/Presences/SteamPresenceService.cs | 2 +- .../Account/RelationshipController.cs | 2 +- .../Account/RelationshipService.cs | 4 +- .../Affiliation/AffiliationSpellController.cs | 2 +- .../Affiliation/AffiliationSpellService.cs | 2 +- .../AppDatabase.cs | 4 +- .../Auth/ApiKeyController.cs | 2 +- .../Auth/AuthCacheConstants.cs | 2 +- .../Auth/AuthController.cs | 8 +- .../Auth/AuthService.cs | 2 +- .../Auth/AuthTokenKeyProvider.cs | 2 +- .../Auth/CaptchaController.cs | 2 +- .../Auth/CheckpointModel.cs | 2 +- .../Controllers/OidcProviderController.cs | 16 ++- .../Models/AuthorizationCodeInfo.cs | 2 +- .../OidcProvider/Models/ExternalUserInfo.cs | 2 +- .../Options/OidcProviderOptions.cs | 2 +- .../Responses/AuthorizationResponse.cs | 2 +- .../Responses/ClientInfoResponse.cs | 2 +- .../OidcProvider/Responses/ErrorResponse.cs | 2 +- .../OidcProvider/Responses/TokenResponse.cs | 2 +- .../Services/OidcProviderService.cs | 15 +-- .../Auth/OpenId/AfdianOidcService.cs | 2 +- .../Auth/OpenId/AppleMobileSignInRequest.cs | 2 +- .../Auth/OpenId/AppleOidcService.cs | 2 +- .../Auth/OpenId/ConnectionController.cs | 4 +- .../Auth/OpenId/DiscordOidcService.cs | 2 +- .../Auth/OpenId/GitHubOidcService.cs | 6 +- .../Auth/OpenId/GoogleOidcService.cs | 2 +- .../Auth/OpenId/MicrosoftOidcService.cs | 2 +- .../Auth/OpenId/OidcController.cs | 4 +- .../Auth/OpenId/OidcService.cs | 2 +- .../Auth/OpenId/OidcState.cs | 2 +- .../Auth/OpenId/OidcUserInfo.cs | 2 +- .../Auth/OpenId/SpotifyOidcService.cs | 2 +- .../Auth/OpenId/SteamOidcService.cs | 2 +- .../Auth/OpenId/UserInfoStrategies.cs | 2 +- .../Auth/TokenAuthService.cs | 2 +- .../Credit/SocialCreditService.cs | 2 +- .../Credit/SocialCreditServiceGrpc.cs | 2 +- .../Credit/SocialCreditValidationJob.cs | 2 +- .../Dockerfile | 0 .../DysonNetwork.Pass.sln | 0 .../DysonNetwork.Passport.csproj | 0 .../Handlers/ActionLogFlushHandler.cs | 2 +- .../Handlers/LastActiveFlushHandler.cs | 2 +- .../IpCheckController.cs | 2 +- .../Leveling/ExperienceService.cs | 2 +- .../Leveling/ExperienceServiceGrpc.cs | 2 +- .../Localization/AccountEventResource.cs | 6 + .../Localization/EmailResource.cs | 5 + .../Localization/NotificationResource.cs | 6 + .../Localization/SharedResource.cs | 6 + .../Mailart/.editorconfig | 0 .../Mailart/.gitignore | 0 .../Mailart/bun.lock | 0 .../Mailart/components/button.html | 0 .../Mailart/components/divider.html | 0 .../Mailart/components/spacer.html | 0 .../Mailart/components/v-fill.html | 0 .../Mailart/config.js | 0 .../Mailart/config.production.js | 0 .../Mailart/emails/confirm-alt.html | 0 .../Mailart/emails/confirm.html | 0 .../Mailart/emails/factor-code.html | 0 .../Mailart/layouts/main.html | 0 .../Mailart/package.json | 0 .../Mailart/tailwind.config.js | 0 .../Mailer/EmailService.cs | 2 +- .../Mailer/RazorViewRenderer.cs | 2 +- ...0251214092550_InitialMigration.Designer.cs | 4 +- .../20251214092550_InitialMigration.cs | 2 +- .../20251225145146_AddRewindPoint.Designer.cs | 4 +- .../20251225145146_AddRewindPoint.cs | 2 +- ...7062459_AddSharableRewindPoint.Designer.cs | 4 +- .../20251227062459_AddSharableRewindPoint.cs | 2 +- ...203153052_PendingWalletRemoval.Designer.cs | 4 +- .../20260203153052_PendingWalletRemoval.cs | 2 +- .../20260214164044_AddTickets.Designer.cs | 4 +- .../Migrations/20260214164044_AddTickets.cs | 2 +- ...60215072352_UpdateTicketSystem.Designer.cs | 4 +- .../20260215072352_UpdateTicketSystem.cs | 2 +- ...260228130901_AddE2eeCoreModule.Designer.cs | 4 +- .../20260228130901_AddE2eeCoreModule.cs | 2 +- ...stE2eeEnvelopeIdempotencyIndex.Designer.cs | 4 +- ...1014_AdjustE2eeEnvelopeIdempotencyIndex.cs | 2 +- ...01084247_AddE2eeDeviceScopedV2.Designer.cs | 4 +- .../20260301084247_AddE2eeDeviceScopedV2.cs | 2 +- .../20260302164333_AddMlsSupport.Designer.cs | 4 +- .../20260302164333_AddMlsSupport.cs | 2 +- .../Migrations/AppDatabaseModelSnapshot.cs | 4 +- .../Permission/LocalPermissionMiddleware.cs | 2 +- .../Permission/PermissionService.cs | 2 +- .../Permission/PermissionServiceGrpc.cs | 2 +- .../PermissionController.cs | 4 +- .../Program.cs | 8 +- .../Properties/launchSettings.json | 0 .../Realm/RealmController.cs | 8 +- .../Realm/RealmPublicController.cs | 2 +- .../Realm/RealmService.cs | 4 +- .../Realm/RealmServiceGrpc.cs | 4 +- .../Resources/Locales/en.json | 0 .../Resources/Locales/zh-hans.json | 0 .../Templates/en/AccountDeletion.liquid | 0 .../Templates/en/ContactVerification.liquid | 0 .../Resources/Templates/en/FactorCode.liquid | 0 .../Templates/en/PasswordReset.liquid | 0 .../Resources/Templates/en/Welcome.liquid | 0 .../Templates/zh-hans/AccountDeletion.liquid | 0 .../zh-hans/ContactVerification.liquid | 0 .../Templates/zh-hans/FactorCode.liquid | 0 .../Templates/zh-hans/PasswordReset.liquid | 0 .../Templates/zh-hans/Welcome.liquid | 0 .../Rewind/AccountRewindController.cs | 2 +- .../Rewind/AccountRewindService.cs | 2 +- .../Rewind/PassRewindService.cs | 4 +- .../Safety/AbuseReportController.cs | 4 +- .../Safety/SafetyService.cs | 2 +- .../Startup/ApplicationConfiguration.cs | 12 +- .../Startup/BroadcastEventHandler.cs | 2 +- .../Startup/ScheduledJobsConfiguration.cs | 10 +- .../Startup/ServiceCollectionExtensions.cs | 45 +++---- .../Ticket/TicketController.cs | 6 +- .../Ticket/TicketService.cs | 5 +- .../appsettings.json | 0 .../Auth/PerkSubscriptionPrivilege.cs | 2 +- .../Localization/JsonLocalizationService.cs | 2 +- DysonNetwork.Shared/Models/Account.cs | 2 +- .../Templating/DotLiquidTemplateService.cs | 2 +- DysonNetwork.sln | 2 +- 166 files changed, 394 insertions(+), 340 deletions(-) create mode 100644 DysonNetwork.Padlock/Account/AccountServiceGrpc.cs delete mode 100644 DysonNetwork.Pass/Localization/AccountEventResource.cs delete mode 100644 DysonNetwork.Pass/Localization/EmailResource.cs delete mode 100644 DysonNetwork.Pass/Localization/NotificationResource.cs delete mode 100644 DysonNetwork.Pass/Localization/SharedResource.cs rename {DysonNetwork.Pass => DysonNetwork.Passport}/.dockerignore (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/.gitignore (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/AccountAdminController.cs (97%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/AccountController.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/AccountCurrentController.cs (92%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/AccountEventService.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/AccountPublicController.cs (97%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/AccountService.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/AccountServiceGrpc.cs (90%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/AccountUsernameService.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/ActionLogService.cs (97%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/ActionLogServiceGrpc.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/BotAccountReceiverGrpc.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/FortuneSayingController.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/FriendsController.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/MagicSpellController.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/MagicSpellService.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/NotableDay.cs (97%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/NotableDaysController.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/NotableDaysService.cs (99%) create mode 100644 DysonNetwork.Passport/Account/PadlockAccountContactService.cs rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/PresenceActivityController.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/Presences/IPresenceService.cs (92%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/Presences/PresenceUpdateJob.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/Presences/PresenceUpdateStage.cs (87%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/Presences/SpotifyPresenceService.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/Presences/SteamPresenceService.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/RelationshipController.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Account/RelationshipService.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Affiliation/AffiliationSpellController.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Affiliation/AffiliationSpellService.cs (97%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/AppDatabase.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/ApiKeyController.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/AuthCacheConstants.cs (69%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/AuthController.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/AuthService.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/AuthTokenKeyProvider.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/CaptchaController.cs (97%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/CheckpointModel.cs (68%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OidcProvider/Controllers/OidcProviderController.cs (97%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OidcProvider/Models/AuthorizationCodeInfo.cs (89%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OidcProvider/Models/ExternalUserInfo.cs (78%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OidcProvider/Options/OidcProviderOptions.cs (95%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OidcProvider/Responses/AuthorizationResponse.cs (88%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OidcProvider/Responses/ClientInfoResponse.cs (91%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OidcProvider/Responses/ErrorResponse.cs (86%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OidcProvider/Responses/TokenResponse.cs (91%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OidcProvider/Services/OidcProviderService.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OpenId/AfdianOidcService.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OpenId/AppleMobileSignInRequest.cs (90%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OpenId/AppleOidcService.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OpenId/ConnectionController.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OpenId/DiscordOidcService.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OpenId/GitHubOidcService.cs (96%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OpenId/GoogleOidcService.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OpenId/MicrosoftOidcService.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OpenId/OidcController.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OpenId/OidcService.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OpenId/OidcState.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OpenId/OidcUserInfo.cs (97%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OpenId/SpotifyOidcService.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OpenId/SteamOidcService.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/OpenId/UserInfoStrategies.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Auth/TokenAuthService.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Credit/SocialCreditService.cs (97%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Credit/SocialCreditServiceGrpc.cs (96%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Credit/SocialCreditValidationJob.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Dockerfile (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/DysonNetwork.Pass.sln (100%) rename DysonNetwork.Pass/DysonNetwork.Pass.csproj => DysonNetwork.Passport/DysonNetwork.Passport.csproj (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Handlers/ActionLogFlushHandler.cs (95%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Handlers/LastActiveFlushHandler.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/IpCheckController.cs (97%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Leveling/ExperienceService.cs (97%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Leveling/ExperienceServiceGrpc.cs (93%) create mode 100644 DysonNetwork.Passport/Localization/AccountEventResource.cs create mode 100644 DysonNetwork.Passport/Localization/EmailResource.cs create mode 100644 DysonNetwork.Passport/Localization/NotificationResource.cs create mode 100644 DysonNetwork.Passport/Localization/SharedResource.cs rename {DysonNetwork.Pass => DysonNetwork.Passport}/Mailart/.editorconfig (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Mailart/.gitignore (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Mailart/bun.lock (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Mailart/components/button.html (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Mailart/components/divider.html (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Mailart/components/spacer.html (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Mailart/components/v-fill.html (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Mailart/config.js (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Mailart/config.production.js (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Mailart/emails/confirm-alt.html (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Mailart/emails/confirm.html (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Mailart/emails/factor-code.html (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Mailart/layouts/main.html (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Mailart/package.json (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Mailart/tailwind.config.js (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Mailer/EmailService.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Mailer/RazorViewRenderer.cs (96%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Migrations/20251214092550_InitialMigration.Designer.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Migrations/20251214092550_InitialMigration.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Migrations/20251225145146_AddRewindPoint.Designer.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Migrations/20251225145146_AddRewindPoint.cs (97%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Migrations/20251227062459_AddSharableRewindPoint.Designer.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Migrations/20251227062459_AddSharableRewindPoint.cs (94%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Migrations/20260203153052_PendingWalletRemoval.Designer.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Migrations/20260203153052_PendingWalletRemoval.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Migrations/20260214164044_AddTickets.Designer.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Migrations/20260214164044_AddTickets.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Migrations/20260215072352_UpdateTicketSystem.Designer.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Migrations/20260215072352_UpdateTicketSystem.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Migrations/20260228130901_AddE2eeCoreModule.Designer.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Migrations/20260228130901_AddE2eeCoreModule.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Migrations/20260228131014_AdjustE2eeEnvelopeIdempotencyIndex.Designer.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Migrations/20260228131014_AdjustE2eeEnvelopeIdempotencyIndex.cs (97%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Migrations/20260301084247_AddE2eeDeviceScopedV2.Designer.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Migrations/20260301084247_AddE2eeDeviceScopedV2.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Migrations/20260302164333_AddMlsSupport.Designer.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Migrations/20260302164333_AddMlsSupport.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Migrations/AppDatabaseModelSnapshot.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Permission/LocalPermissionMiddleware.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Permission/PermissionService.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Permission/PermissionServiceGrpc.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/PermissionController.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Program.cs (90%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Properties/launchSettings.json (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Realm/RealmController.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Realm/RealmPublicController.cs (96%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Realm/RealmService.cs (97%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Realm/RealmServiceGrpc.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Resources/Locales/en.json (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Resources/Locales/zh-hans.json (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Resources/Templates/en/AccountDeletion.liquid (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Resources/Templates/en/ContactVerification.liquid (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Resources/Templates/en/FactorCode.liquid (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Resources/Templates/en/PasswordReset.liquid (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Resources/Templates/en/Welcome.liquid (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Resources/Templates/zh-hans/AccountDeletion.liquid (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Resources/Templates/zh-hans/ContactVerification.liquid (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Resources/Templates/zh-hans/FactorCode.liquid (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Resources/Templates/zh-hans/PasswordReset.liquid (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Resources/Templates/zh-hans/Welcome.liquid (100%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Rewind/AccountRewindController.cs (97%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Rewind/AccountRewindService.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Rewind/PassRewindService.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Safety/AbuseReportController.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Safety/SafetyService.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Startup/ApplicationConfiguration.cs (83%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Startup/BroadcastEventHandler.cs (91%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Startup/ScheduledJobsConfiguration.cs (94%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Startup/ServiceCollectionExtensions.cs (92%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Ticket/TicketController.cs (99%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/Ticket/TicketService.cs (98%) rename {DysonNetwork.Pass => DysonNetwork.Passport}/appsettings.json (100%) diff --git a/DysonNetwork.Control/AppHost.cs b/DysonNetwork.Control/AppHost.cs index 0c9822bd..32d96b2e 100644 --- a/DysonNetwork.Control/AppHost.cs +++ b/DysonNetwork.Control/AppHost.cs @@ -10,7 +10,7 @@ var queue = builder.AddNats("Queue").WithJetStream(); var ringService = builder.AddProject("ring"); var padlockService = builder.AddProject("padlock") .WithReference(ringService); -var passService = builder.AddProject("pass") +var passService = builder.AddProject("passport") .WithReference(ringService) .WithReference(padlockService); var driveService = builder.AddProject("drive") diff --git a/DysonNetwork.Control/DysonNetwork.Control.csproj b/DysonNetwork.Control/DysonNetwork.Control.csproj index 6ffbe766..e1c3e603 100644 --- a/DysonNetwork.Control/DysonNetwork.Control.csproj +++ b/DysonNetwork.Control/DysonNetwork.Control.csproj @@ -18,7 +18,7 @@ - + diff --git a/DysonNetwork.Control/aspire-manifest.json b/DysonNetwork.Control/aspire-manifest.json index 69ad8b59..b194593b 100644 --- a/DysonNetwork.Control/aspire-manifest.json +++ b/DysonNetwork.Control/aspire-manifest.json @@ -76,7 +76,7 @@ } } }, - "pass": { + "passport": { "type": "project.v1", "path": "../DysonNetwork.Pass/DysonNetwork.Pass.csproj", "env": { @@ -97,7 +97,7 @@ "GRPC_PORT": "7003", "OTEL_EXPORTER_OTLP_ENDPOINT": "{docker-compose-dashboard.bindings.otlp-grpc.url}", "OTEL_EXPORTER_OTLP_PROTOCOL": "grpc", - "OTEL_SERVICE_NAME": "pass" + "OTEL_SERVICE_NAME": "passport" }, "bindings": { "http": { diff --git a/DysonNetwork.Insight/MiChan/Plugins/AccountPlugin.cs b/DysonNetwork.Insight/MiChan/Plugins/AccountPlugin.cs index 66f52059..8fc4de71 100644 --- a/DysonNetwork.Insight/MiChan/Plugins/AccountPlugin.cs +++ b/DysonNetwork.Insight/MiChan/Plugins/AccountPlugin.cs @@ -17,13 +17,13 @@ public class AccountPlugin(SolarNetworkApiClient apiClient, ILogger("pass", $"/accounts/{accountIdOrUsername}"); + var account = await apiClient.GetAsync("passport", $"/accounts/{accountIdOrUsername}"); return account; } else { var accounts = await apiClient.GetAsync>( - "pass", + "passport", $"/accounts/search?q={Uri.EscapeDataString(accountIdOrUsername)}" ); return accounts?.FirstOrDefault(); @@ -46,7 +46,7 @@ public class AccountPlugin(SolarNetworkApiClient apiClient, ILogger>( - "pass", + "passport", $"/accounts/search?q={Uri.EscapeDataString(query)}&take={limit}" ); @@ -67,7 +67,7 @@ public class AccountPlugin(SolarNetworkApiClient apiClient, ILogger>( - "pass", + "passport", $"/accounts/{accountId}/followers?take={limit}" ); @@ -132,7 +132,7 @@ public class AccountPlugin(SolarNetworkApiClient apiClient, ILogger>( - "pass", + "passport", $"/accounts/{accountId}/following?take={limit}" ); @@ -151,7 +151,7 @@ public class AccountPlugin(SolarNetworkApiClient apiClient, ILogger("pass", "/accounts/me"); + var account = await apiClient.GetAsync("passport", "/accounts/me"); return account; } catch (Exception ex) diff --git a/DysonNetwork.Padlock/Account/AccountServiceGrpc.cs b/DysonNetwork.Padlock/Account/AccountServiceGrpc.cs new file mode 100644 index 00000000..7d44b880 --- /dev/null +++ b/DysonNetwork.Padlock/Account/AccountServiceGrpc.cs @@ -0,0 +1,40 @@ +using DysonNetwork.Shared.Models; +using DysonNetwork.Shared.Proto; +using Grpc.Core; +using Microsoft.EntityFrameworkCore; + +namespace DysonNetwork.Padlock.Account; + +public class AccountServiceGrpc(AppDatabase db) : DyAccountService.DyAccountServiceBase +{ + public override async Task ListContacts(DyListContactsRequest request, + ServerCallContext context) + { + if (!Guid.TryParse(request.AccountId, out var accountId)) + throw new RpcException(new Status(StatusCode.InvalidArgument, "Invalid account ID format")); + + var query = db.AccountContacts + .AsNoTracking() + .Where(c => c.AccountId == accountId); + + if (request.VerifiedOnly) + query = query.Where(c => c.VerifiedAt != null); + + if (request.Type != DyAccountContactType.Unspecified) + { + var contactType = request.Type switch + { + DyAccountContactType.DyEmail => AccountContactType.Email, + DyAccountContactType.DyPhoneNumber => AccountContactType.PhoneNumber, + DyAccountContactType.DyAddress => AccountContactType.Address, + _ => AccountContactType.Email + }; + query = query.Where(c => c.Type == contactType); + } + + var contacts = await query.ToListAsync(context.CancellationToken); + var response = new DyListContactsResponse(); + response.Contacts.AddRange(contacts.Select(c => c.ToProtoValue())); + return response; + } +} diff --git a/DysonNetwork.Padlock/Startup/ApplicationConfiguration.cs b/DysonNetwork.Padlock/Startup/ApplicationConfiguration.cs index 18fc5270..6197ec7b 100644 --- a/DysonNetwork.Padlock/Startup/ApplicationConfiguration.cs +++ b/DysonNetwork.Padlock/Startup/ApplicationConfiguration.cs @@ -1,4 +1,5 @@ using DysonNetwork.Padlock.Auth; +using DysonNetwork.Padlock.Account; using DysonNetwork.Shared.Networking; namespace DysonNetwork.Padlock.Startup; @@ -25,6 +26,7 @@ public static class ApplicationConfiguration public static WebApplication ConfigureGrpcServices(this WebApplication app) { app.MapGrpcService(); + app.MapGrpcService(); app.MapGrpcReflectionService(); return app; diff --git a/DysonNetwork.Pass/Localization/AccountEventResource.cs b/DysonNetwork.Pass/Localization/AccountEventResource.cs deleted file mode 100644 index 239505ec..00000000 --- a/DysonNetwork.Pass/Localization/AccountEventResource.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace DysonNetwork.Pass.Localization; - -public class AccountEventResource -{ - -} \ No newline at end of file diff --git a/DysonNetwork.Pass/Localization/EmailResource.cs b/DysonNetwork.Pass/Localization/EmailResource.cs deleted file mode 100644 index 2ebcdb47..00000000 --- a/DysonNetwork.Pass/Localization/EmailResource.cs +++ /dev/null @@ -1,5 +0,0 @@ -namespace DysonNetwork.Pass.Localization; - -public class EmailResource -{ -} \ No newline at end of file diff --git a/DysonNetwork.Pass/Localization/NotificationResource.cs b/DysonNetwork.Pass/Localization/NotificationResource.cs deleted file mode 100644 index 183c09d0..00000000 --- a/DysonNetwork.Pass/Localization/NotificationResource.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace DysonNetwork.Pass.Localization; - -public class NotificationResource -{ - -} \ No newline at end of file diff --git a/DysonNetwork.Pass/Localization/SharedResource.cs b/DysonNetwork.Pass/Localization/SharedResource.cs deleted file mode 100644 index f21ad843..00000000 --- a/DysonNetwork.Pass/Localization/SharedResource.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace DysonNetwork.Pass.Localization; - -public class SharedResource -{ - -} \ No newline at end of file diff --git a/DysonNetwork.Pass/.dockerignore b/DysonNetwork.Passport/.dockerignore similarity index 100% rename from DysonNetwork.Pass/.dockerignore rename to DysonNetwork.Passport/.dockerignore diff --git a/DysonNetwork.Pass/.gitignore b/DysonNetwork.Passport/.gitignore similarity index 100% rename from DysonNetwork.Pass/.gitignore rename to DysonNetwork.Passport/.gitignore diff --git a/DysonNetwork.Pass/Account/AccountAdminController.cs b/DysonNetwork.Passport/Account/AccountAdminController.cs similarity index 97% rename from DysonNetwork.Pass/Account/AccountAdminController.cs rename to DysonNetwork.Passport/Account/AccountAdminController.cs index 936bb2c8..004d32ed 100644 --- a/DysonNetwork.Pass/Account/AccountAdminController.cs +++ b/DysonNetwork.Passport/Account/AccountAdminController.cs @@ -1,6 +1,6 @@ using System.ComponentModel.DataAnnotations; -using DysonNetwork.Pass.Credit; -using DysonNetwork.Pass.Permission; +using DysonNetwork.Passport.Permission; +using DysonNetwork.Passport.Credit; using DysonNetwork.Shared.Auth; using DysonNetwork.Shared.Models; using DysonNetwork.Shared.Networking; @@ -9,7 +9,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using NodaTime; -namespace DysonNetwork.Pass.Account; +namespace DysonNetwork.Passport.Account; [ApiController] [Route("/api/admin/accounts")] diff --git a/DysonNetwork.Pass/Account/AccountController.cs b/DysonNetwork.Passport/Account/AccountController.cs similarity index 98% rename from DysonNetwork.Pass/Account/AccountController.cs rename to DysonNetwork.Passport/Account/AccountController.cs index e354579f..357ebe00 100644 --- a/DysonNetwork.Pass/Account/AccountController.cs +++ b/DysonNetwork.Passport/Account/AccountController.cs @@ -1,6 +1,6 @@ using System.ComponentModel.DataAnnotations; -using DysonNetwork.Pass.Affiliation; -using DysonNetwork.Pass.Auth; +using DysonNetwork.Passport.Affiliation; +using DysonNetwork.Passport.Auth; using DysonNetwork.Shared.Auth; using DysonNetwork.Shared.Extensions; using DysonNetwork.Shared.Geometry; @@ -11,7 +11,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using NodaTime; -namespace DysonNetwork.Pass.Account; +namespace DysonNetwork.Passport.Account; [ApiController] [Route("/api/accounts")] diff --git a/DysonNetwork.Pass/Account/AccountCurrentController.cs b/DysonNetwork.Passport/Account/AccountCurrentController.cs similarity index 92% rename from DysonNetwork.Pass/Account/AccountCurrentController.cs rename to DysonNetwork.Passport/Account/AccountCurrentController.cs index 1e7c9317..b7230a0d 100644 --- a/DysonNetwork.Pass/Account/AccountCurrentController.cs +++ b/DysonNetwork.Passport/Account/AccountCurrentController.cs @@ -1,5 +1,4 @@ using System.ComponentModel.DataAnnotations; -using DysonNetwork.Pass.Permission; using DysonNetwork.Shared.Auth; using DysonNetwork.Shared.Models; using DysonNetwork.Shared.Networking; @@ -9,10 +8,10 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using NodaTime; -using AuthService = DysonNetwork.Pass.Auth.AuthService; +using AuthService = DysonNetwork.Passport.Auth.AuthService; using SnAuthSession = DysonNetwork.Shared.Models.SnAuthSession; -namespace DysonNetwork.Pass.Account; +namespace DysonNetwork.Passport.Account; [Authorize] [ApiController] @@ -20,6 +19,7 @@ namespace DysonNetwork.Pass.Account; public class AccountCurrentController( AppDatabase db, AccountService accounts, + PadlockAccountContactService padlockContacts, AccountEventService events, AuthService auth, DyFileService.DyFileServiceClient files, @@ -62,6 +62,8 @@ public class AccountCurrentController( // Log error but don't fail the request - PerkSubscription is optional Console.WriteLine($"Failed to populate PerkSubscription for account {account.Id}: {ex.Message}"); } + + account.Contacts = await padlockContacts.ListContactsAsync(account.Id); } return Ok(account); @@ -718,11 +720,7 @@ public class AccountCurrentController( public async Task>> GetContacts() { if (HttpContext.Items["CurrentUser"] is not SnAccount currentUser) return Unauthorized(); - - var contacts = await db.AccountContacts - .Where(c => c.AccountId == currentUser.Id) - .ToListAsync(); - + var contacts = await padlockContacts.ListContactsAsync(currentUser.Id); return Ok(contacts); } @@ -737,16 +735,7 @@ public class AccountCurrentController( public async Task> CreateContact([FromBody] AccountContactRequest request) { if (HttpContext.Items["CurrentUser"] is not SnAccount currentUser) return Unauthorized(); - - try - { - var contact = await accounts.CreateContactMethod(currentUser, request.Type, request.Content); - return Ok(contact); - } - catch (Exception ex) - { - return BadRequest(ex.Message); - } + return ContactApiMovedToPadlock(); } [HttpPost("contacts/{id:guid}/verify")] @@ -754,21 +743,7 @@ public class AccountCurrentController( public async Task> VerifyContact(Guid id) { if (HttpContext.Items["CurrentUser"] is not SnAccount currentUser) return Unauthorized(); - - var contact = await db.AccountContacts - .Where(c => c.AccountId == currentUser.Id && c.Id == id) - .FirstOrDefaultAsync(); - if (contact is null) return NotFound(); - - try - { - await accounts.VerifyContactMethod(currentUser, contact); - return Ok(contact); - } - catch (Exception ex) - { - return BadRequest(ex.Message); - } + return ContactApiMovedToPadlock(); } [HttpPost("contacts/{id:guid}/primary")] @@ -776,21 +751,7 @@ public class AccountCurrentController( public async Task> SetPrimaryContact(Guid id) { if (HttpContext.Items["CurrentUser"] is not SnAccount currentUser) return Unauthorized(); - - var contact = await db.AccountContacts - .Where(c => c.AccountId == currentUser.Id && c.Id == id) - .FirstOrDefaultAsync(); - if (contact is null) return NotFound(); - - try - { - contact = await accounts.SetContactMethodPrimary(currentUser, contact); - return Ok(contact); - } - catch (Exception ex) - { - return BadRequest(ex.Message); - } + return ContactApiMovedToPadlock(); } [HttpPost("contacts/{id:guid}/public")] @@ -798,21 +759,7 @@ public class AccountCurrentController( public async Task> SetPublicContact(Guid id) { if (HttpContext.Items["CurrentUser"] is not SnAccount currentUser) return Unauthorized(); - - var contact = await db.AccountContacts - .Where(c => c.AccountId == currentUser.Id && c.Id == id) - .FirstOrDefaultAsync(); - if (contact is null) return NotFound(); - - try - { - contact = await accounts.SetContactMethodPublic(currentUser, contact, true); - return Ok(contact); - } - catch (Exception ex) - { - return BadRequest(ex.Message); - } + return ContactApiMovedToPadlock(); } [HttpDelete("contacts/{id:guid}/public")] @@ -820,21 +767,7 @@ public class AccountCurrentController( public async Task> UnsetPublicContact(Guid id) { if (HttpContext.Items["CurrentUser"] is not SnAccount currentUser) return Unauthorized(); - - var contact = await db.AccountContacts - .Where(c => c.AccountId == currentUser.Id && c.Id == id) - .FirstOrDefaultAsync(); - if (contact is null) return NotFound(); - - try - { - contact = await accounts.SetContactMethodPublic(currentUser, contact, false); - return Ok(contact); - } - catch (Exception ex) - { - return BadRequest(ex.Message); - } + return ContactApiMovedToPadlock(); } [HttpDelete("contacts/{id:guid}")] @@ -842,21 +775,18 @@ public class AccountCurrentController( public async Task> DeleteContact(Guid id) { if (HttpContext.Items["CurrentUser"] is not SnAccount currentUser) return Unauthorized(); + return ContactApiMovedToPadlock(); + } - var contact = await db.AccountContacts - .Where(c => c.AccountId == currentUser.Id && c.Id == id) - .FirstOrDefaultAsync(); - if (contact is null) return NotFound(); - - try + private ActionResult ContactApiMovedToPadlock() + { + return StatusCode(StatusCodes.Status410Gone, new ApiError { - await accounts.DeleteContactMethod(currentUser, contact); - return NoContent(); - } - catch (Exception ex) - { - return BadRequest(ex.Message); - } + Code = "GONE", + Message = "Contacts are managed by Padlock. Use /padlock/accounts/me/contacts endpoints.", + Status = StatusCodes.Status410Gone, + TraceId = HttpContext.TraceIdentifier + }); } [HttpGet("badges")] diff --git a/DysonNetwork.Pass/Account/AccountEventService.cs b/DysonNetwork.Passport/Account/AccountEventService.cs similarity index 99% rename from DysonNetwork.Pass/Account/AccountEventService.cs rename to DysonNetwork.Passport/Account/AccountEventService.cs index c52c8d71..15436272 100644 --- a/DysonNetwork.Pass/Account/AccountEventService.cs +++ b/DysonNetwork.Passport/Account/AccountEventService.cs @@ -11,7 +11,7 @@ using NATS.Client.Core; using NodaTime; using NodaTime.Extensions; -namespace DysonNetwork.Pass.Account; +namespace DysonNetwork.Passport.Account; public class AccountEventService( AppDatabase db, diff --git a/DysonNetwork.Pass/Account/AccountPublicController.cs b/DysonNetwork.Passport/Account/AccountPublicController.cs similarity index 97% rename from DysonNetwork.Pass/Account/AccountPublicController.cs rename to DysonNetwork.Passport/Account/AccountPublicController.cs index 91041920..169086e0 100644 --- a/DysonNetwork.Pass/Account/AccountPublicController.cs +++ b/DysonNetwork.Passport/Account/AccountPublicController.cs @@ -1,11 +1,11 @@ -using DysonNetwork.Pass.Credit; +using DysonNetwork.Passport.Credit; using DysonNetwork.Shared.Models; using DysonNetwork.Shared.Networking; using DysonNetwork.Shared.Registry; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; -namespace DysonNetwork.Pass.Account; +namespace DysonNetwork.Passport.Account; [ApiController] [Route("/api/accounts")] @@ -24,7 +24,6 @@ public class AccountPublicController( var accountQuery = db.Accounts .Include(e => e.Badges) .Include(e => e.Profile) - .Include(e => e.Contacts.Where(c => c.IsPublic)) .AsQueryable(); if (Guid.TryParse(name, out var guid)) @@ -36,6 +35,7 @@ public class AccountPublicController( var account = await accountQuery.FirstOrDefaultAsync(); if (account is null) return NotFound(ApiError.NotFound(name, traceId: HttpContext.TraceIdentifier)); await EnsureProfileAsync(account); + account.Contacts = []; // Populate PerkSubscription from Wallet service via gRPC try @@ -103,6 +103,7 @@ public class AccountPublicController( foreach (var account in accounts) { await EnsureProfileAsync(account); + account.Contacts = []; } // Populate PerkSubscriptions from Wallet service via gRPC diff --git a/DysonNetwork.Pass/Account/AccountService.cs b/DysonNetwork.Passport/Account/AccountService.cs similarity index 98% rename from DysonNetwork.Pass/Account/AccountService.cs rename to DysonNetwork.Passport/Account/AccountService.cs index c85b3488..5fd7464d 100644 --- a/DysonNetwork.Pass/Account/AccountService.cs +++ b/DysonNetwork.Passport/Account/AccountService.cs @@ -1,8 +1,6 @@ -using System.Globalization; -using DysonNetwork.Pass.Affiliation; -using DysonNetwork.Pass.Auth.OpenId; -using DysonNetwork.Pass.Localization; -using DysonNetwork.Pass.Mailer; +using DysonNetwork.Passport.Affiliation; +using DysonNetwork.Passport.Auth.OpenId; +using DysonNetwork.Passport.Mailer; using DysonNetwork.Shared.Cache; using DysonNetwork.Shared.Data; using DysonNetwork.Shared.Localization; @@ -10,14 +8,11 @@ using DysonNetwork.Shared.Models; using DysonNetwork.Shared.Proto; using DysonNetwork.Shared.Queue; using Microsoft.EntityFrameworkCore; -using NATS.Client.Core; -using NATS.Net; using NodaTime; using OtpNet; -using AuthService = DysonNetwork.Pass.Auth.AuthService; -using DysonNetwork.Shared.Registry; +using AuthService = DysonNetwork.Passport.Auth.AuthService; -namespace DysonNetwork.Pass.Account; +namespace DysonNetwork.Passport.Account; public class AccountService( AppDatabase db, diff --git a/DysonNetwork.Pass/Account/AccountServiceGrpc.cs b/DysonNetwork.Passport/Account/AccountServiceGrpc.cs similarity index 90% rename from DysonNetwork.Pass/Account/AccountServiceGrpc.cs rename to DysonNetwork.Passport/Account/AccountServiceGrpc.cs index a18bfc46..9a6723d0 100644 --- a/DysonNetwork.Pass/Account/AccountServiceGrpc.cs +++ b/DysonNetwork.Passport/Account/AccountServiceGrpc.cs @@ -6,13 +6,14 @@ using Grpc.Core; using Microsoft.EntityFrameworkCore; using NodaTime; -namespace DysonNetwork.Pass.Account; +namespace DysonNetwork.Passport.Account; public class AccountServiceGrpc( AppDatabase db, AccountEventService accountEvents, RelationshipService relationships, RemoteSubscriptionService remoteSubscription, + PadlockAccountContactService padlockContacts, AccountService accountService, ILogger logger ) @@ -34,7 +35,6 @@ public class AccountServiceGrpc( var account = await _db.Accounts .AsNoTracking() .Include(a => a.Profile) - .Include(a => a.Contacts.Where(c => c.IsPublic)) .FirstOrDefaultAsync(a => a.Id == accountId); if (account == null) @@ -42,6 +42,7 @@ public class AccountServiceGrpc( // Populate PerkSubscription from Wallet service via gRPC await PopulatePerkSubscriptionAsync(account); + await padlockContacts.PopulateContactsAsync(account, cancellationToken: context.CancellationToken); return account.ToProtoValue(); } @@ -63,6 +64,7 @@ public class AccountServiceGrpc( // Populate PerkSubscription from Wallet service via gRPC await PopulatePerkSubscriptionAsync(account); + await padlockContacts.PopulateContactsAsync(account, cancellationToken: context.CancellationToken); return account.ToProtoValue(); } @@ -84,6 +86,7 @@ public class AccountServiceGrpc( // Populate PerkSubscriptions from Wallet service via gRPC await PopulatePerkSubscriptionsAsync(accounts); + await PopulateContactsAsync(accounts, context.CancellationToken); var response = new DyGetAccountBatchResponse(); response.Accounts.AddRange(accounts.Select(a => a.ToProtoValue())); @@ -108,6 +111,7 @@ public class AccountServiceGrpc( // Populate PerkSubscriptions from Wallet service via gRPC await PopulatePerkSubscriptionsAsync(accounts); + await PopulateContactsAsync(accounts, context.CancellationToken); var response = new DyGetAccountBatchResponse(); response.Accounts.AddRange(accounts.Select(a => a.ToProtoValue())); @@ -147,6 +151,7 @@ public class AccountServiceGrpc( // Populate PerkSubscriptions from Wallet service via gRPC await PopulatePerkSubscriptionsAsync(accounts); + await PopulateContactsAsync(accounts, context.CancellationToken); var response = new DyGetAccountBatchResponse(); response.Accounts.AddRange(accounts.Select(a => a.ToProtoValue())); @@ -164,6 +169,7 @@ public class AccountServiceGrpc( // Populate PerkSubscriptions from Wallet service via gRPC await PopulatePerkSubscriptionsAsync(accounts); + await PopulateContactsAsync(accounts, context.CancellationToken); var response = new DyGetAccountBatchResponse(); response.Accounts.AddRange(accounts.Select(a => a.ToProtoValue())); @@ -203,6 +209,7 @@ public class AccountServiceGrpc( // Populate PerkSubscriptions from Wallet service via gRPC await PopulatePerkSubscriptionsAsync(accounts); + await PopulateContactsAsync(accounts, context.CancellationToken); var response = new DyListAccountsResponse { @@ -264,6 +271,31 @@ public class AccountServiceGrpc( } } + public override async Task ListContacts(DyListContactsRequest request, + ServerCallContext context) + { + if (!Guid.TryParse(request.AccountId, out var accountId)) + throw new RpcException(new Status(StatusCode.InvalidArgument, "Invalid account ID format")); + + AccountContactType? type = request.Type switch + { + DyAccountContactType.DyEmail => AccountContactType.Email, + DyAccountContactType.DyPhoneNumber => AccountContactType.PhoneNumber, + DyAccountContactType.DyAddress => AccountContactType.Address, + _ => null + }; + + var contacts = await padlockContacts.ListContactsAsync( + accountId, + type, + request.VerifiedOnly, + context.CancellationToken); + + var response = new DyListContactsResponse(); + response.Contacts.AddRange(contacts.Select(c => c.ToProtoValue())); + return response; + } + public override async Task GetRelationship( DyGetRelationshipRequest request, ServerCallContext context @@ -463,4 +495,12 @@ public class AccountServiceGrpc( accounts.Count); } } -} \ No newline at end of file + + private async Task PopulateContactsAsync(List accounts, CancellationToken cancellationToken) + { + foreach (var account in accounts) + { + await padlockContacts.PopulateContactsAsync(account, cancellationToken: cancellationToken); + } + } +} diff --git a/DysonNetwork.Pass/Account/AccountUsernameService.cs b/DysonNetwork.Passport/Account/AccountUsernameService.cs similarity index 98% rename from DysonNetwork.Pass/Account/AccountUsernameService.cs rename to DysonNetwork.Passport/Account/AccountUsernameService.cs index 25ffcaa4..de22ff26 100644 --- a/DysonNetwork.Pass/Account/AccountUsernameService.cs +++ b/DysonNetwork.Passport/Account/AccountUsernameService.cs @@ -1,7 +1,7 @@ using System.Text.RegularExpressions; using Microsoft.EntityFrameworkCore; -namespace DysonNetwork.Pass.Account; +namespace DysonNetwork.Passport.Account; /// /// Service for handling username generation and validation diff --git a/DysonNetwork.Pass/Account/ActionLogService.cs b/DysonNetwork.Passport/Account/ActionLogService.cs similarity index 97% rename from DysonNetwork.Pass/Account/ActionLogService.cs rename to DysonNetwork.Passport/Account/ActionLogService.cs index 61fef820..07024fcb 100644 --- a/DysonNetwork.Pass/Account/ActionLogService.cs +++ b/DysonNetwork.Passport/Account/ActionLogService.cs @@ -3,7 +3,7 @@ using DysonNetwork.Shared.Extensions; using DysonNetwork.Shared.Geometry; using DysonNetwork.Shared.Models; -namespace DysonNetwork.Pass.Account; +namespace DysonNetwork.Passport.Account; public class ActionLogService(GeoService geo, FlushBufferService fbs) { diff --git a/DysonNetwork.Pass/Account/ActionLogServiceGrpc.cs b/DysonNetwork.Passport/Account/ActionLogServiceGrpc.cs similarity index 98% rename from DysonNetwork.Pass/Account/ActionLogServiceGrpc.cs rename to DysonNetwork.Passport/Account/ActionLogServiceGrpc.cs index 6fe1bed9..e1a45188 100644 --- a/DysonNetwork.Pass/Account/ActionLogServiceGrpc.cs +++ b/DysonNetwork.Passport/Account/ActionLogServiceGrpc.cs @@ -4,7 +4,7 @@ using Grpc.Core; using Microsoft.EntityFrameworkCore; using NodaTime; -namespace DysonNetwork.Pass.Account; +namespace DysonNetwork.Passport.Account; public class ActionLogServiceGrpc( ActionLogService actionLogService, diff --git a/DysonNetwork.Pass/Account/BotAccountReceiverGrpc.cs b/DysonNetwork.Passport/Account/BotAccountReceiverGrpc.cs similarity index 98% rename from DysonNetwork.Pass/Account/BotAccountReceiverGrpc.cs rename to DysonNetwork.Passport/Account/BotAccountReceiverGrpc.cs index d076001a..9adb184c 100644 --- a/DysonNetwork.Pass/Account/BotAccountReceiverGrpc.cs +++ b/DysonNetwork.Passport/Account/BotAccountReceiverGrpc.cs @@ -3,9 +3,9 @@ using DysonNetwork.Shared.Proto; using Grpc.Core; using Microsoft.EntityFrameworkCore; using NodaTime.Serialization.Protobuf; -using AuthService = DysonNetwork.Pass.Auth.AuthService; +using AuthService = DysonNetwork.Passport.Auth.AuthService; -namespace DysonNetwork.Pass.Account; +namespace DysonNetwork.Passport.Account; public class BotAccountReceiverGrpc( AppDatabase db, diff --git a/DysonNetwork.Pass/Account/FortuneSayingController.cs b/DysonNetwork.Passport/Account/FortuneSayingController.cs similarity index 99% rename from DysonNetwork.Pass/Account/FortuneSayingController.cs rename to DysonNetwork.Passport/Account/FortuneSayingController.cs index f56f102f..cff6ca28 100644 --- a/DysonNetwork.Pass/Account/FortuneSayingController.cs +++ b/DysonNetwork.Passport/Account/FortuneSayingController.cs @@ -1,6 +1,6 @@ using Microsoft.AspNetCore.Mvc; -namespace DysonNetwork.Pass.Account; +namespace DysonNetwork.Passport.Account; public record FortuneSaying( string Content, diff --git a/DysonNetwork.Pass/Account/FriendsController.cs b/DysonNetwork.Passport/Account/FriendsController.cs similarity index 98% rename from DysonNetwork.Pass/Account/FriendsController.cs rename to DysonNetwork.Passport/Account/FriendsController.cs index 6e7e9ef7..6d302d11 100644 --- a/DysonNetwork.Pass/Account/FriendsController.cs +++ b/DysonNetwork.Passport/Account/FriendsController.cs @@ -3,7 +3,7 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; -namespace DysonNetwork.Pass.Account; +namespace DysonNetwork.Passport.Account; [ApiController] [Route("/api/friends")] diff --git a/DysonNetwork.Pass/Account/MagicSpellController.cs b/DysonNetwork.Passport/Account/MagicSpellController.cs similarity index 98% rename from DysonNetwork.Pass/Account/MagicSpellController.cs rename to DysonNetwork.Passport/Account/MagicSpellController.cs index a5bd6910..4f44e070 100644 --- a/DysonNetwork.Pass/Account/MagicSpellController.cs +++ b/DysonNetwork.Passport/Account/MagicSpellController.cs @@ -3,7 +3,7 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; -namespace DysonNetwork.Pass.Account; +namespace DysonNetwork.Passport.Account; [ApiController] [Route("/api/spells")] diff --git a/DysonNetwork.Pass/Account/MagicSpellService.cs b/DysonNetwork.Passport/Account/MagicSpellService.cs similarity index 98% rename from DysonNetwork.Pass/Account/MagicSpellService.cs rename to DysonNetwork.Passport/Account/MagicSpellService.cs index 2ec334b9..0c13d65f 100644 --- a/DysonNetwork.Pass/Account/MagicSpellService.cs +++ b/DysonNetwork.Passport/Account/MagicSpellService.cs @@ -1,14 +1,14 @@ using System.Security.Cryptography; using System.Text.Json; -using DysonNetwork.Pass.Mailer; +using DysonNetwork.Passport.Mailer; using DysonNetwork.Shared.Cache; using DysonNetwork.Shared.Models; using Microsoft.EntityFrameworkCore; using DysonNetwork.Shared.Localization; using NodaTime; -using EmailResource = DysonNetwork.Pass.Localization.EmailResource; +using EmailResource = DysonNetwork.Passport.Localization.EmailResource; -namespace DysonNetwork.Pass.Account; +namespace DysonNetwork.Passport.Account; public class MagicSpellService( AppDatabase db, diff --git a/DysonNetwork.Pass/Account/NotableDay.cs b/DysonNetwork.Passport/Account/NotableDay.cs similarity index 97% rename from DysonNetwork.Pass/Account/NotableDay.cs rename to DysonNetwork.Passport/Account/NotableDay.cs index 81f11c86..ea528e29 100644 --- a/DysonNetwork.Pass/Account/NotableDay.cs +++ b/DysonNetwork.Passport/Account/NotableDay.cs @@ -1,7 +1,7 @@ using Nager.Holiday; using NodaTime; -namespace DysonNetwork.Pass.Account; +namespace DysonNetwork.Passport.Account; /// /// Reference from Nager.Holiday diff --git a/DysonNetwork.Pass/Account/NotableDaysController.cs b/DysonNetwork.Passport/Account/NotableDaysController.cs similarity index 98% rename from DysonNetwork.Pass/Account/NotableDaysController.cs rename to DysonNetwork.Passport/Account/NotableDaysController.cs index 12f45c8b..e49da70d 100644 --- a/DysonNetwork.Pass/Account/NotableDaysController.cs +++ b/DysonNetwork.Passport/Account/NotableDaysController.cs @@ -2,7 +2,7 @@ using DysonNetwork.Shared.Models; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -namespace DysonNetwork.Pass.Account; +namespace DysonNetwork.Passport.Account; [ApiController] [Route("/api/notable")] diff --git a/DysonNetwork.Pass/Account/NotableDaysService.cs b/DysonNetwork.Passport/Account/NotableDaysService.cs similarity index 99% rename from DysonNetwork.Pass/Account/NotableDaysService.cs rename to DysonNetwork.Passport/Account/NotableDaysService.cs index e770d195..d09ba7c6 100644 --- a/DysonNetwork.Pass/Account/NotableDaysService.cs +++ b/DysonNetwork.Passport/Account/NotableDaysService.cs @@ -2,7 +2,7 @@ using DysonNetwork.Shared.Cache; using Nager.Holiday; using NodaTime; -namespace DysonNetwork.Pass.Account; +namespace DysonNetwork.Passport.Account; public class NotableDaysService(ICacheService cache) { diff --git a/DysonNetwork.Passport/Account/PadlockAccountContactService.cs b/DysonNetwork.Passport/Account/PadlockAccountContactService.cs new file mode 100644 index 00000000..7c4a4ac4 --- /dev/null +++ b/DysonNetwork.Passport/Account/PadlockAccountContactService.cs @@ -0,0 +1,45 @@ +using DysonNetwork.Shared.Models; +using DysonNetwork.Shared.Proto; + +namespace DysonNetwork.Passport.Account; + +public class PadlockAccountContactService( + DyAccountService.DyAccountServiceClient accountGrpc, + ILogger logger +) +{ + public async Task> ListContactsAsync(Guid accountId, AccountContactType? type = null, + bool verifiedOnly = false, CancellationToken cancellationToken = default) + { + try + { + var request = new DyListContactsRequest + { + AccountId = accountId.ToString(), + VerifiedOnly = verifiedOnly, + Type = type switch + { + AccountContactType.Email => DyAccountContactType.DyEmail, + AccountContactType.PhoneNumber => DyAccountContactType.DyPhoneNumber, + AccountContactType.Address => DyAccountContactType.DyAddress, + _ => DyAccountContactType.Unspecified + } + }; + + var response = await accountGrpc.ListContactsAsync(request, cancellationToken: cancellationToken); + return response.Contacts.Select(SnAccountContact.FromProtoValue).ToList(); + } + catch (Exception ex) + { + logger.LogWarning(ex, "Failed to fetch account contacts from Padlock for account {AccountId}", accountId); + return []; + } + } + + public async Task PopulateContactsAsync(SnAccount account, bool verifiedOnly = false, + CancellationToken cancellationToken = default) + { + account.Contacts = await ListContactsAsync(account.Id, verifiedOnly: verifiedOnly, + cancellationToken: cancellationToken); + } +} diff --git a/DysonNetwork.Pass/Account/PresenceActivityController.cs b/DysonNetwork.Passport/Account/PresenceActivityController.cs similarity index 99% rename from DysonNetwork.Pass/Account/PresenceActivityController.cs rename to DysonNetwork.Passport/Account/PresenceActivityController.cs index ee0adad8..3af47859 100644 --- a/DysonNetwork.Pass/Account/PresenceActivityController.cs +++ b/DysonNetwork.Passport/Account/PresenceActivityController.cs @@ -3,7 +3,7 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; -namespace DysonNetwork.Pass.Account; +namespace DysonNetwork.Passport.Account; /// /// Controller for managing user presence activities with lease-based expiration. diff --git a/DysonNetwork.Pass/Account/Presences/IPresenceService.cs b/DysonNetwork.Passport/Account/Presences/IPresenceService.cs similarity index 92% rename from DysonNetwork.Pass/Account/Presences/IPresenceService.cs rename to DysonNetwork.Passport/Account/Presences/IPresenceService.cs index 2cb5b611..d3d5117e 100644 --- a/DysonNetwork.Pass/Account/Presences/IPresenceService.cs +++ b/DysonNetwork.Passport/Account/Presences/IPresenceService.cs @@ -1,6 +1,6 @@ using DysonNetwork.Shared.Models; -namespace DysonNetwork.Pass.Account.Presences; +namespace DysonNetwork.Passport.Account.Presences; /// /// Interface for presence services that can update user presence activities diff --git a/DysonNetwork.Pass/Account/Presences/PresenceUpdateJob.cs b/DysonNetwork.Passport/Account/Presences/PresenceUpdateJob.cs similarity index 98% rename from DysonNetwork.Pass/Account/Presences/PresenceUpdateJob.cs rename to DysonNetwork.Passport/Account/Presences/PresenceUpdateJob.cs index 29d757f7..32e4b6d2 100644 --- a/DysonNetwork.Pass/Account/Presences/PresenceUpdateJob.cs +++ b/DysonNetwork.Passport/Account/Presences/PresenceUpdateJob.cs @@ -1,6 +1,6 @@ using Quartz; -namespace DysonNetwork.Pass.Account.Presences; +namespace DysonNetwork.Passport.Account.Presences; public class PresenceUpdateJob( IEnumerable presenceServices, diff --git a/DysonNetwork.Pass/Account/Presences/PresenceUpdateStage.cs b/DysonNetwork.Passport/Account/Presences/PresenceUpdateStage.cs similarity index 87% rename from DysonNetwork.Pass/Account/Presences/PresenceUpdateStage.cs rename to DysonNetwork.Passport/Account/Presences/PresenceUpdateStage.cs index ce60db7b..6e603e34 100644 --- a/DysonNetwork.Pass/Account/Presences/PresenceUpdateStage.cs +++ b/DysonNetwork.Passport/Account/Presences/PresenceUpdateStage.cs @@ -1,4 +1,4 @@ -namespace DysonNetwork.Pass.Account.Presences; +namespace DysonNetwork.Passport.Account.Presences; public enum PresenceUpdateStage { diff --git a/DysonNetwork.Pass/Account/Presences/SpotifyPresenceService.cs b/DysonNetwork.Passport/Account/Presences/SpotifyPresenceService.cs similarity index 99% rename from DysonNetwork.Pass/Account/Presences/SpotifyPresenceService.cs rename to DysonNetwork.Passport/Account/Presences/SpotifyPresenceService.cs index 9b193f8f..e6057e1b 100644 --- a/DysonNetwork.Pass/Account/Presences/SpotifyPresenceService.cs +++ b/DysonNetwork.Passport/Account/Presences/SpotifyPresenceService.cs @@ -3,7 +3,7 @@ using Microsoft.EntityFrameworkCore; using NodaTime; using SpotifyAPI.Web; -namespace DysonNetwork.Pass.Account.Presences; +namespace DysonNetwork.Passport.Account.Presences; public class SpotifyPresenceService( AppDatabase db, diff --git a/DysonNetwork.Pass/Account/Presences/SteamPresenceService.cs b/DysonNetwork.Passport/Account/Presences/SteamPresenceService.cs similarity index 99% rename from DysonNetwork.Pass/Account/Presences/SteamPresenceService.cs rename to DysonNetwork.Passport/Account/Presences/SteamPresenceService.cs index 9314ed23..d2b8448f 100644 --- a/DysonNetwork.Pass/Account/Presences/SteamPresenceService.cs +++ b/DysonNetwork.Passport/Account/Presences/SteamPresenceService.cs @@ -4,7 +4,7 @@ using NodaTime; using SteamWebAPI2.Interfaces; using SteamWebAPI2.Utilities; -namespace DysonNetwork.Pass.Account.Presences; +namespace DysonNetwork.Passport.Account.Presences; public class SteamPresenceService( AppDatabase db, diff --git a/DysonNetwork.Pass/Account/RelationshipController.cs b/DysonNetwork.Passport/Account/RelationshipController.cs similarity index 99% rename from DysonNetwork.Pass/Account/RelationshipController.cs rename to DysonNetwork.Passport/Account/RelationshipController.cs index 5f7cb879..38a5c903 100644 --- a/DysonNetwork.Pass/Account/RelationshipController.cs +++ b/DysonNetwork.Passport/Account/RelationshipController.cs @@ -6,7 +6,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using NodaTime; -namespace DysonNetwork.Pass.Account; +namespace DysonNetwork.Passport.Account; [ApiController] [Route("/api/relationships")] diff --git a/DysonNetwork.Pass/Account/RelationshipService.cs b/DysonNetwork.Passport/Account/RelationshipService.cs similarity index 99% rename from DysonNetwork.Pass/Account/RelationshipService.cs rename to DysonNetwork.Passport/Account/RelationshipService.cs index 1e035acb..bb713f39 100644 --- a/DysonNetwork.Pass/Account/RelationshipService.cs +++ b/DysonNetwork.Passport/Account/RelationshipService.cs @@ -1,4 +1,4 @@ -using DysonNetwork.Pass.Localization; +using DysonNetwork.Passport.Localization; using DysonNetwork.Shared.Cache; using DysonNetwork.Shared.Models; using DysonNetwork.Shared.Proto; @@ -6,7 +6,7 @@ using Microsoft.EntityFrameworkCore; using DysonNetwork.Shared.Localization; using NodaTime; -namespace DysonNetwork.Pass.Account; +namespace DysonNetwork.Passport.Account; public class RelationshipService( AppDatabase db, diff --git a/DysonNetwork.Pass/Affiliation/AffiliationSpellController.cs b/DysonNetwork.Passport/Affiliation/AffiliationSpellController.cs similarity index 98% rename from DysonNetwork.Pass/Affiliation/AffiliationSpellController.cs rename to DysonNetwork.Passport/Affiliation/AffiliationSpellController.cs index 543be81f..83b0bb6c 100644 --- a/DysonNetwork.Pass/Affiliation/AffiliationSpellController.cs +++ b/DysonNetwork.Passport/Affiliation/AffiliationSpellController.cs @@ -4,7 +4,7 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; -namespace DysonNetwork.Pass.Affiliation; +namespace DysonNetwork.Passport.Affiliation; [ApiController] [Route("/api/affiliations")] diff --git a/DysonNetwork.Pass/Affiliation/AffiliationSpellService.cs b/DysonNetwork.Passport/Affiliation/AffiliationSpellService.cs similarity index 97% rename from DysonNetwork.Pass/Affiliation/AffiliationSpellService.cs rename to DysonNetwork.Passport/Affiliation/AffiliationSpellService.cs index aa8d0926..87b219df 100644 --- a/DysonNetwork.Pass/Affiliation/AffiliationSpellService.cs +++ b/DysonNetwork.Passport/Affiliation/AffiliationSpellService.cs @@ -2,7 +2,7 @@ using System.Security.Cryptography; using DysonNetwork.Shared.Models; using Microsoft.EntityFrameworkCore; -namespace DysonNetwork.Pass.Affiliation; +namespace DysonNetwork.Passport.Affiliation; public class AffiliationSpellService(AppDatabase db) { diff --git a/DysonNetwork.Pass/AppDatabase.cs b/DysonNetwork.Passport/AppDatabase.cs similarity index 99% rename from DysonNetwork.Pass/AppDatabase.cs rename to DysonNetwork.Passport/AppDatabase.cs index ef8a2eb2..c6d5e745 100644 --- a/DysonNetwork.Pass/AppDatabase.cs +++ b/DysonNetwork.Passport/AppDatabase.cs @@ -1,7 +1,7 @@ using System.Linq.Expressions; using System.Text.Json; using System.Text.Json.Serialization; -using DysonNetwork.Pass.Permission; +using DysonNetwork.Passport.Permission; using DysonNetwork.Shared.Data; using DysonNetwork.Shared.Models; using Microsoft.EntityFrameworkCore; @@ -10,7 +10,7 @@ using Microsoft.EntityFrameworkCore.Query; using NodaTime; using Quartz; -namespace DysonNetwork.Pass; +namespace DysonNetwork.Passport; public class AppDatabase( DbContextOptions options, diff --git a/DysonNetwork.Pass/Auth/ApiKeyController.cs b/DysonNetwork.Passport/Auth/ApiKeyController.cs similarity index 98% rename from DysonNetwork.Pass/Auth/ApiKeyController.cs rename to DysonNetwork.Passport/Auth/ApiKeyController.cs index b9e61361..fd651f33 100644 --- a/DysonNetwork.Pass/Auth/ApiKeyController.cs +++ b/DysonNetwork.Passport/Auth/ApiKeyController.cs @@ -5,7 +5,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using NodaTime; -namespace DysonNetwork.Pass.Auth; +namespace DysonNetwork.Passport.Auth; [ApiController] [Route("/api/auth/keys")] diff --git a/DysonNetwork.Pass/Auth/AuthCacheConstants.cs b/DysonNetwork.Passport/Auth/AuthCacheConstants.cs similarity index 69% rename from DysonNetwork.Pass/Auth/AuthCacheConstants.cs rename to DysonNetwork.Passport/Auth/AuthCacheConstants.cs index 44f1ec6f..33241757 100644 --- a/DysonNetwork.Pass/Auth/AuthCacheConstants.cs +++ b/DysonNetwork.Passport/Auth/AuthCacheConstants.cs @@ -1,4 +1,4 @@ -namespace DysonNetwork.Pass.Auth; +namespace DysonNetwork.Passport.Auth; public static class AuthCacheConstants { diff --git a/DysonNetwork.Pass/Auth/AuthController.cs b/DysonNetwork.Passport/Auth/AuthController.cs similarity index 98% rename from DysonNetwork.Pass/Auth/AuthController.cs rename to DysonNetwork.Passport/Auth/AuthController.cs index d98ed725..d41ff9b7 100644 --- a/DysonNetwork.Pass/Auth/AuthController.cs +++ b/DysonNetwork.Passport/Auth/AuthController.cs @@ -7,11 +7,11 @@ using DysonNetwork.Shared.Extensions; using DysonNetwork.Shared.Geometry; using DysonNetwork.Shared.Proto; using DysonNetwork.Shared.Localization; -using AccountService = DysonNetwork.Pass.Account.AccountService; -using ActionLogService = DysonNetwork.Pass.Account.ActionLogService; +using AccountService = DysonNetwork.Passport.Account.AccountService; +using ActionLogService = DysonNetwork.Passport.Account.ActionLogService; using DysonNetwork.Shared.Models; -namespace DysonNetwork.Pass.Auth; +namespace DysonNetwork.Passport.Auth; [ApiController] [Route("/api/auth")] @@ -329,7 +329,7 @@ public class AuthController( } [HttpPost("login/session")] - [Microsoft.AspNetCore.Authorization.Authorize] // Use full namespace to avoid ambiguity with DysonNetwork.Pass.Permission.Authorize + [Microsoft.AspNetCore.Authorization.Authorize] // Use full namespace to avoid ambiguity with DysonNetwork.Passport.Permission.Authorize public async Task> LoginFromSession([FromBody] NewSessionRequest request) { if (HttpContext.Items["CurrentUser"] is not SnAccount || diff --git a/DysonNetwork.Pass/Auth/AuthService.cs b/DysonNetwork.Passport/Auth/AuthService.cs similarity index 99% rename from DysonNetwork.Pass/Auth/AuthService.cs rename to DysonNetwork.Passport/Auth/AuthService.cs index 3f28ff8e..edbe0c6f 100644 --- a/DysonNetwork.Pass/Auth/AuthService.cs +++ b/DysonNetwork.Passport/Auth/AuthService.cs @@ -9,7 +9,7 @@ using DysonNetwork.Shared.Models; using Microsoft.EntityFrameworkCore; using NodaTime; -namespace DysonNetwork.Pass.Auth; +namespace DysonNetwork.Passport.Auth; public class AuthService( AppDatabase db, diff --git a/DysonNetwork.Pass/Auth/AuthTokenKeyProvider.cs b/DysonNetwork.Passport/Auth/AuthTokenKeyProvider.cs similarity index 98% rename from DysonNetwork.Pass/Auth/AuthTokenKeyProvider.cs rename to DysonNetwork.Passport/Auth/AuthTokenKeyProvider.cs index 1007524f..7b389689 100644 --- a/DysonNetwork.Pass/Auth/AuthTokenKeyProvider.cs +++ b/DysonNetwork.Passport/Auth/AuthTokenKeyProvider.cs @@ -1,6 +1,6 @@ using System.Security.Cryptography; -namespace DysonNetwork.Pass.Auth; +namespace DysonNetwork.Passport.Auth; public class AuthTokenKeyProvider(IConfiguration config) { diff --git a/DysonNetwork.Pass/Auth/CaptchaController.cs b/DysonNetwork.Passport/Auth/CaptchaController.cs similarity index 97% rename from DysonNetwork.Pass/Auth/CaptchaController.cs rename to DysonNetwork.Passport/Auth/CaptchaController.cs index a9ce2d25..d60523af 100644 --- a/DysonNetwork.Pass/Auth/CaptchaController.cs +++ b/DysonNetwork.Passport/Auth/CaptchaController.cs @@ -2,7 +2,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.RateLimiting; using DysonNetwork.Shared.Extensions; -namespace DysonNetwork.Pass.Auth; +namespace DysonNetwork.Passport.Auth; [ApiController] [Route("/api/captcha")] diff --git a/DysonNetwork.Pass/Auth/CheckpointModel.cs b/DysonNetwork.Passport/Auth/CheckpointModel.cs similarity index 68% rename from DysonNetwork.Pass/Auth/CheckpointModel.cs rename to DysonNetwork.Passport/Auth/CheckpointModel.cs index 58466e9c..92c49dff 100644 --- a/DysonNetwork.Pass/Auth/CheckpointModel.cs +++ b/DysonNetwork.Passport/Auth/CheckpointModel.cs @@ -1,4 +1,4 @@ -namespace DysonNetwork.Pass.Auth; +namespace DysonNetwork.Passport.Auth; public class CaptchaVerificationResponse { diff --git a/DysonNetwork.Pass/Auth/OidcProvider/Controllers/OidcProviderController.cs b/DysonNetwork.Passport/Auth/OidcProvider/Controllers/OidcProviderController.cs similarity index 97% rename from DysonNetwork.Pass/Auth/OidcProvider/Controllers/OidcProviderController.cs rename to DysonNetwork.Passport/Auth/OidcProvider/Controllers/OidcProviderController.cs index 607d279b..2688094c 100644 --- a/DysonNetwork.Pass/Auth/OidcProvider/Controllers/OidcProviderController.cs +++ b/DysonNetwork.Passport/Auth/OidcProvider/Controllers/OidcProviderController.cs @@ -1,23 +1,22 @@ using System.Security.Cryptography; -using DysonNetwork.Pass.Auth.OidcProvider.Responses; -using DysonNetwork.Pass.Auth.OidcProvider.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; using System.Text.Json.Serialization; using System.Web; -using DysonNetwork.Pass.Auth.OidcProvider.Options; -using Microsoft.EntityFrameworkCore; +using DysonNetwork.Passport.Auth.OidcProvider.Options; +using DysonNetwork.Passport.Auth.OidcProvider.Responses; +using DysonNetwork.Passport.Auth.OidcProvider.Services; using NodaTime; using DysonNetwork.Shared.Models; using Microsoft.IdentityModel.Tokens; -namespace DysonNetwork.Pass.Auth.OidcProvider.Controllers; +namespace DysonNetwork.Passport.Auth.OidcProvider.Controllers; [Route("/api/auth/open")] [ApiController] public class OidcProviderController( - AppDatabase db, + Account.PadlockAccountContactService padlockContacts, OidcProviderService oidcService, IConfiguration configuration, IOptions options, @@ -318,9 +317,8 @@ public class OidcProviderController( userInfo["preferred_username"] = currentUser.Nick; } - var userEmail = await db.AccountContacts - .Where(c => c.Type == AccountContactType.Email && c.AccountId == currentUser.Id) - .FirstOrDefaultAsync(); + var userEmail = (await padlockContacts.ListContactsAsync(currentUser.Id, AccountContactType.Email)) + .FirstOrDefault(); if (scopes.Contains("email") && userEmail is not null) { userInfo["email"] = userEmail.Content; diff --git a/DysonNetwork.Pass/Auth/OidcProvider/Models/AuthorizationCodeInfo.cs b/DysonNetwork.Passport/Auth/OidcProvider/Models/AuthorizationCodeInfo.cs similarity index 89% rename from DysonNetwork.Pass/Auth/OidcProvider/Models/AuthorizationCodeInfo.cs rename to DysonNetwork.Passport/Auth/OidcProvider/Models/AuthorizationCodeInfo.cs index 25d830d1..cdf5aff9 100644 --- a/DysonNetwork.Pass/Auth/OidcProvider/Models/AuthorizationCodeInfo.cs +++ b/DysonNetwork.Passport/Auth/OidcProvider/Models/AuthorizationCodeInfo.cs @@ -1,6 +1,6 @@ using NodaTime; -namespace DysonNetwork.Pass.Auth.OidcProvider.Models; +namespace DysonNetwork.Passport.Auth.OidcProvider.Models; public class AuthorizationCodeInfo { diff --git a/DysonNetwork.Pass/Auth/OidcProvider/Models/ExternalUserInfo.cs b/DysonNetwork.Passport/Auth/OidcProvider/Models/ExternalUserInfo.cs similarity index 78% rename from DysonNetwork.Pass/Auth/OidcProvider/Models/ExternalUserInfo.cs rename to DysonNetwork.Passport/Auth/OidcProvider/Models/ExternalUserInfo.cs index 24ab9ad3..6f5ebf3a 100644 --- a/DysonNetwork.Pass/Auth/OidcProvider/Models/ExternalUserInfo.cs +++ b/DysonNetwork.Passport/Auth/OidcProvider/Models/ExternalUserInfo.cs @@ -1,4 +1,4 @@ -namespace DysonNetwork.Pass.Auth.OidcProvider.Models; +namespace DysonNetwork.Passport.Auth.OidcProvider.Models; public class ExternalUserInfo { diff --git a/DysonNetwork.Pass/Auth/OidcProvider/Options/OidcProviderOptions.cs b/DysonNetwork.Passport/Auth/OidcProvider/Options/OidcProviderOptions.cs similarity index 95% rename from DysonNetwork.Pass/Auth/OidcProvider/Options/OidcProviderOptions.cs rename to DysonNetwork.Passport/Auth/OidcProvider/Options/OidcProviderOptions.cs index 40397a5c..2958d068 100644 --- a/DysonNetwork.Pass/Auth/OidcProvider/Options/OidcProviderOptions.cs +++ b/DysonNetwork.Passport/Auth/OidcProvider/Options/OidcProviderOptions.cs @@ -1,6 +1,6 @@ using System.Security.Cryptography; -namespace DysonNetwork.Pass.Auth.OidcProvider.Options; +namespace DysonNetwork.Passport.Auth.OidcProvider.Options; public class OidcProviderOptions { diff --git a/DysonNetwork.Pass/Auth/OidcProvider/Responses/AuthorizationResponse.cs b/DysonNetwork.Passport/Auth/OidcProvider/Responses/AuthorizationResponse.cs similarity index 88% rename from DysonNetwork.Pass/Auth/OidcProvider/Responses/AuthorizationResponse.cs rename to DysonNetwork.Passport/Auth/OidcProvider/Responses/AuthorizationResponse.cs index 407520b0..53af7b1e 100644 --- a/DysonNetwork.Pass/Auth/OidcProvider/Responses/AuthorizationResponse.cs +++ b/DysonNetwork.Passport/Auth/OidcProvider/Responses/AuthorizationResponse.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace DysonNetwork.Pass.Auth.OidcProvider.Responses; +namespace DysonNetwork.Passport.Auth.OidcProvider.Responses; public class AuthorizationResponse { diff --git a/DysonNetwork.Pass/Auth/OidcProvider/Responses/ClientInfoResponse.cs b/DysonNetwork.Passport/Auth/OidcProvider/Responses/ClientInfoResponse.cs similarity index 91% rename from DysonNetwork.Pass/Auth/OidcProvider/Responses/ClientInfoResponse.cs rename to DysonNetwork.Passport/Auth/OidcProvider/Responses/ClientInfoResponse.cs index c61a10c2..94e41843 100644 --- a/DysonNetwork.Pass/Auth/OidcProvider/Responses/ClientInfoResponse.cs +++ b/DysonNetwork.Passport/Auth/OidcProvider/Responses/ClientInfoResponse.cs @@ -1,6 +1,6 @@ using DysonNetwork.Shared.Models; -namespace DysonNetwork.Pass.Auth.OidcProvider.Responses; +namespace DysonNetwork.Passport.Auth.OidcProvider.Responses; public class ClientInfoResponse { diff --git a/DysonNetwork.Pass/Auth/OidcProvider/Responses/ErrorResponse.cs b/DysonNetwork.Passport/Auth/OidcProvider/Responses/ErrorResponse.cs similarity index 86% rename from DysonNetwork.Pass/Auth/OidcProvider/Responses/ErrorResponse.cs rename to DysonNetwork.Passport/Auth/OidcProvider/Responses/ErrorResponse.cs index b72a4a7d..eb844a46 100644 --- a/DysonNetwork.Pass/Auth/OidcProvider/Responses/ErrorResponse.cs +++ b/DysonNetwork.Passport/Auth/OidcProvider/Responses/ErrorResponse.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace DysonNetwork.Pass.Auth.OidcProvider.Responses; +namespace DysonNetwork.Passport.Auth.OidcProvider.Responses; public class ErrorResponse { diff --git a/DysonNetwork.Pass/Auth/OidcProvider/Responses/TokenResponse.cs b/DysonNetwork.Passport/Auth/OidcProvider/Responses/TokenResponse.cs similarity index 91% rename from DysonNetwork.Pass/Auth/OidcProvider/Responses/TokenResponse.cs rename to DysonNetwork.Passport/Auth/OidcProvider/Responses/TokenResponse.cs index cf6eec7f..d9bd08d0 100644 --- a/DysonNetwork.Pass/Auth/OidcProvider/Responses/TokenResponse.cs +++ b/DysonNetwork.Passport/Auth/OidcProvider/Responses/TokenResponse.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace DysonNetwork.Pass.Auth.OidcProvider.Responses; +namespace DysonNetwork.Passport.Auth.OidcProvider.Responses; public class TokenResponse { diff --git a/DysonNetwork.Pass/Auth/OidcProvider/Services/OidcProviderService.cs b/DysonNetwork.Passport/Auth/OidcProvider/Services/OidcProviderService.cs similarity index 98% rename from DysonNetwork.Pass/Auth/OidcProvider/Services/OidcProviderService.cs rename to DysonNetwork.Passport/Auth/OidcProvider/Services/OidcProviderService.cs index ddc9b249..bcd6fa37 100644 --- a/DysonNetwork.Pass/Auth/OidcProvider/Services/OidcProviderService.cs +++ b/DysonNetwork.Passport/Auth/OidcProvider/Services/OidcProviderService.cs @@ -2,9 +2,9 @@ using System.IdentityModel.Tokens.Jwt; using System.Security.Claims; using System.Security.Cryptography; using System.Text; -using DysonNetwork.Pass.Auth.OidcProvider.Models; -using DysonNetwork.Pass.Auth.OidcProvider.Options; -using DysonNetwork.Pass.Auth.OidcProvider.Responses; +using DysonNetwork.Passport.Auth.OidcProvider.Models; +using DysonNetwork.Passport.Auth.OidcProvider.Options; +using DysonNetwork.Passport.Auth.OidcProvider.Responses; using DysonNetwork.Shared.Cache; using DysonNetwork.Shared.Models; using DysonNetwork.Shared.Proto; @@ -15,12 +15,13 @@ using NodaTime; using AccountContactType = DysonNetwork.Shared.Models.AccountContactType; using JwtRegisteredClaimNames = Microsoft.IdentityModel.JsonWebTokens.JwtRegisteredClaimNames; -namespace DysonNetwork.Pass.Auth.OidcProvider.Services; +namespace DysonNetwork.Passport.Auth.OidcProvider.Services; public class OidcProviderService( AppDatabase db, AuthService auth, DyCustomAppService.DyCustomAppServiceClient customApps, + Account.PadlockAccountContactService padlockContacts, ICacheService cache, IOptions options, ILogger logger @@ -74,7 +75,6 @@ public class OidcProviderService( queryable = queryable .Include(s => s.Account) .ThenInclude(a => a.Profile) - .Include(a => a.Account.Contacts) .AsQueryable(); return await queryable @@ -260,7 +260,6 @@ public class OidcProviderService( var account = await db.Accounts .Where(a => a.Id == authCode.AccountId) .Include(a => a.Profile) - .Include(a => a.Contacts) .FirstOrDefaultAsync(); if (account == null) throw new InvalidOperationException("Account not found"); session = await auth.CreateSessionForOidcAsync(account, SystemClock.Instance.GetCurrentInstant(), clientId); @@ -271,6 +270,8 @@ public class OidcProviderService( session = existingSession; } + session.Account.Contacts = await padlockContacts.ListContactsAsync(session.AccountId); + return (session, authCode.Nonce, authCode.Scopes); } @@ -663,4 +664,4 @@ public class OidcProviderService( return string.Equals(base64, codeChallenge, StringComparison.Ordinal); } -} \ No newline at end of file +} diff --git a/DysonNetwork.Pass/Auth/OpenId/AfdianOidcService.cs b/DysonNetwork.Passport/Auth/OpenId/AfdianOidcService.cs similarity index 98% rename from DysonNetwork.Pass/Auth/OpenId/AfdianOidcService.cs rename to DysonNetwork.Passport/Auth/OpenId/AfdianOidcService.cs index 2a13f051..a27ee3f7 100644 --- a/DysonNetwork.Pass/Auth/OpenId/AfdianOidcService.cs +++ b/DysonNetwork.Passport/Auth/OpenId/AfdianOidcService.cs @@ -1,7 +1,7 @@ using System.Text.Json; using DysonNetwork.Shared.Cache; -namespace DysonNetwork.Pass.Auth.OpenId; +namespace DysonNetwork.Passport.Auth.OpenId; public class AfdianOidcService( IConfiguration configuration, diff --git a/DysonNetwork.Pass/Auth/OpenId/AppleMobileSignInRequest.cs b/DysonNetwork.Passport/Auth/OpenId/AppleMobileSignInRequest.cs similarity index 90% rename from DysonNetwork.Pass/Auth/OpenId/AppleMobileSignInRequest.cs rename to DysonNetwork.Passport/Auth/OpenId/AppleMobileSignInRequest.cs index e5e2ec5c..a9eeac33 100644 --- a/DysonNetwork.Pass/Auth/OpenId/AppleMobileSignInRequest.cs +++ b/DysonNetwork.Passport/Auth/OpenId/AppleMobileSignInRequest.cs @@ -1,7 +1,7 @@ using System.ComponentModel.DataAnnotations; -namespace DysonNetwork.Pass.Auth.OpenId; +namespace DysonNetwork.Passport.Auth.OpenId; public class AppleMobileConnectRequest { diff --git a/DysonNetwork.Pass/Auth/OpenId/AppleOidcService.cs b/DysonNetwork.Passport/Auth/OpenId/AppleOidcService.cs similarity index 99% rename from DysonNetwork.Pass/Auth/OpenId/AppleOidcService.cs rename to DysonNetwork.Passport/Auth/OpenId/AppleOidcService.cs index 620d8fea..e22c75a7 100644 --- a/DysonNetwork.Pass/Auth/OpenId/AppleOidcService.cs +++ b/DysonNetwork.Passport/Auth/OpenId/AppleOidcService.cs @@ -6,7 +6,7 @@ using System.Text.Json.Serialization; using DysonNetwork.Shared.Cache; using Microsoft.IdentityModel.Tokens; -namespace DysonNetwork.Pass.Auth.OpenId; +namespace DysonNetwork.Passport.Auth.OpenId; /// /// Implementation of OpenID Connect service for Apple Sign In diff --git a/DysonNetwork.Pass/Auth/OpenId/ConnectionController.cs b/DysonNetwork.Passport/Auth/OpenId/ConnectionController.cs similarity index 99% rename from DysonNetwork.Pass/Auth/OpenId/ConnectionController.cs rename to DysonNetwork.Passport/Auth/OpenId/ConnectionController.cs index 28cdb0df..4ce8af80 100644 --- a/DysonNetwork.Pass/Auth/OpenId/ConnectionController.cs +++ b/DysonNetwork.Passport/Auth/OpenId/ConnectionController.cs @@ -1,4 +1,4 @@ -using DysonNetwork.Pass.Account; +using DysonNetwork.Passport.Account; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; @@ -7,7 +7,7 @@ using Microsoft.AspNetCore.WebUtilities; using NodaTime; using DysonNetwork.Shared.Models; -namespace DysonNetwork.Pass.Auth.OpenId; +namespace DysonNetwork.Passport.Auth.OpenId; [ApiController] [Route("/api/accounts/me/connections")] diff --git a/DysonNetwork.Pass/Auth/OpenId/DiscordOidcService.cs b/DysonNetwork.Passport/Auth/OpenId/DiscordOidcService.cs similarity index 99% rename from DysonNetwork.Pass/Auth/OpenId/DiscordOidcService.cs rename to DysonNetwork.Passport/Auth/OpenId/DiscordOidcService.cs index 427f262d..4cab186b 100644 --- a/DysonNetwork.Pass/Auth/OpenId/DiscordOidcService.cs +++ b/DysonNetwork.Passport/Auth/OpenId/DiscordOidcService.cs @@ -1,7 +1,7 @@ using System.Text.Json; using DysonNetwork.Shared.Cache; -namespace DysonNetwork.Pass.Auth.OpenId; +namespace DysonNetwork.Passport.Auth.OpenId; public class DiscordOidcService( IConfiguration configuration, diff --git a/DysonNetwork.Pass/Auth/OpenId/GitHubOidcService.cs b/DysonNetwork.Passport/Auth/OpenId/GitHubOidcService.cs similarity index 96% rename from DysonNetwork.Pass/Auth/OpenId/GitHubOidcService.cs rename to DysonNetwork.Passport/Auth/OpenId/GitHubOidcService.cs index 0190605a..7afad173 100644 --- a/DysonNetwork.Pass/Auth/OpenId/GitHubOidcService.cs +++ b/DysonNetwork.Passport/Auth/OpenId/GitHubOidcService.cs @@ -1,7 +1,7 @@ using System.Text.Json; using DysonNetwork.Shared.Cache; -namespace DysonNetwork.Pass.Auth.OpenId; +namespace DysonNetwork.Passport.Auth.OpenId; public class GitHubOidcService( IConfiguration configuration, @@ -81,7 +81,7 @@ public class GitHubOidcService( var client = HttpClientFactory.CreateClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://api.github.com/user"); request.Headers.Add("Authorization", $"Bearer {accessToken}"); - request.Headers.Add("User-Agent", "DysonNetwork.Pass"); + request.Headers.Add("User-Agent", "DysonNetwork.Passport"); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); @@ -113,7 +113,7 @@ public class GitHubOidcService( var client = HttpClientFactory.CreateClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://api.github.com/user/emails"); request.Headers.Add("Authorization", $"Bearer {accessToken}"); - request.Headers.Add("User-Agent", "DysonNetwork.Pass"); + request.Headers.Add("User-Agent", "DysonNetwork.Passport"); var response = await client.SendAsync(request); if (!response.IsSuccessStatusCode) return null; diff --git a/DysonNetwork.Pass/Auth/OpenId/GoogleOidcService.cs b/DysonNetwork.Passport/Auth/OpenId/GoogleOidcService.cs similarity index 98% rename from DysonNetwork.Pass/Auth/OpenId/GoogleOidcService.cs rename to DysonNetwork.Passport/Auth/OpenId/GoogleOidcService.cs index 11884b67..67fb7f9a 100644 --- a/DysonNetwork.Pass/Auth/OpenId/GoogleOidcService.cs +++ b/DysonNetwork.Passport/Auth/OpenId/GoogleOidcService.cs @@ -2,7 +2,7 @@ using System.IdentityModel.Tokens.Jwt; using DysonNetwork.Shared.Cache; using Microsoft.IdentityModel.Tokens; -namespace DysonNetwork.Pass.Auth.OpenId; +namespace DysonNetwork.Passport.Auth.OpenId; public class GoogleOidcService( IConfiguration configuration, diff --git a/DysonNetwork.Pass/Auth/OpenId/MicrosoftOidcService.cs b/DysonNetwork.Passport/Auth/OpenId/MicrosoftOidcService.cs similarity index 99% rename from DysonNetwork.Pass/Auth/OpenId/MicrosoftOidcService.cs rename to DysonNetwork.Passport/Auth/OpenId/MicrosoftOidcService.cs index 1e25337d..2e4acac9 100644 --- a/DysonNetwork.Pass/Auth/OpenId/MicrosoftOidcService.cs +++ b/DysonNetwork.Passport/Auth/OpenId/MicrosoftOidcService.cs @@ -1,7 +1,7 @@ using System.Text.Json; using DysonNetwork.Shared.Cache; -namespace DysonNetwork.Pass.Auth.OpenId; +namespace DysonNetwork.Passport.Auth.OpenId; public class MicrosoftOidcService( IConfiguration configuration, diff --git a/DysonNetwork.Pass/Auth/OpenId/OidcController.cs b/DysonNetwork.Passport/Auth/OpenId/OidcController.cs similarity index 99% rename from DysonNetwork.Pass/Auth/OpenId/OidcController.cs rename to DysonNetwork.Passport/Auth/OpenId/OidcController.cs index 3c55e59d..0c2d8d6a 100644 --- a/DysonNetwork.Pass/Auth/OpenId/OidcController.cs +++ b/DysonNetwork.Passport/Auth/OpenId/OidcController.cs @@ -1,4 +1,4 @@ -using DysonNetwork.Pass.Account; +using DysonNetwork.Passport.Account; using DysonNetwork.Shared.Cache; using DysonNetwork.Shared.Models; using Microsoft.AspNetCore.Mvc; @@ -6,7 +6,7 @@ using Microsoft.EntityFrameworkCore; using Microsoft.IdentityModel.Tokens; using NodaTime; -namespace DysonNetwork.Pass.Auth.OpenId; +namespace DysonNetwork.Passport.Auth.OpenId; [ApiController] [Route("/api/auth/login")] diff --git a/DysonNetwork.Pass/Auth/OpenId/OidcService.cs b/DysonNetwork.Passport/Auth/OpenId/OidcService.cs similarity index 99% rename from DysonNetwork.Pass/Auth/OpenId/OidcService.cs rename to DysonNetwork.Passport/Auth/OpenId/OidcService.cs index 466afdf8..83b88c79 100644 --- a/DysonNetwork.Pass/Auth/OpenId/OidcService.cs +++ b/DysonNetwork.Passport/Auth/OpenId/OidcService.cs @@ -8,7 +8,7 @@ using Microsoft.EntityFrameworkCore; using Microsoft.IdentityModel.Tokens; using NodaTime; -namespace DysonNetwork.Pass.Auth.OpenId; +namespace DysonNetwork.Passport.Auth.OpenId; /// /// Base service for OpenID Connect authentication providers diff --git a/DysonNetwork.Pass/Auth/OpenId/OidcState.cs b/DysonNetwork.Passport/Auth/OpenId/OidcState.cs similarity index 99% rename from DysonNetwork.Pass/Auth/OpenId/OidcState.cs rename to DysonNetwork.Passport/Auth/OpenId/OidcState.cs index f73ce611..e3c0c431 100644 --- a/DysonNetwork.Pass/Auth/OpenId/OidcState.cs +++ b/DysonNetwork.Passport/Auth/OpenId/OidcState.cs @@ -1,7 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; -namespace DysonNetwork.Pass.Auth.OpenId; +namespace DysonNetwork.Passport.Auth.OpenId; /// /// Represents the state parameter used in OpenID Connect flows. diff --git a/DysonNetwork.Pass/Auth/OpenId/OidcUserInfo.cs b/DysonNetwork.Passport/Auth/OpenId/OidcUserInfo.cs similarity index 97% rename from DysonNetwork.Pass/Auth/OpenId/OidcUserInfo.cs rename to DysonNetwork.Passport/Auth/OpenId/OidcUserInfo.cs index 973d76de..6e3b7753 100644 --- a/DysonNetwork.Pass/Auth/OpenId/OidcUserInfo.cs +++ b/DysonNetwork.Passport/Auth/OpenId/OidcUserInfo.cs @@ -1,4 +1,4 @@ -namespace DysonNetwork.Pass.Auth.OpenId; +namespace DysonNetwork.Passport.Auth.OpenId; /// /// Represents the user information from an OIDC provider diff --git a/DysonNetwork.Pass/Auth/OpenId/SpotifyOidcService.cs b/DysonNetwork.Passport/Auth/OpenId/SpotifyOidcService.cs similarity index 99% rename from DysonNetwork.Pass/Auth/OpenId/SpotifyOidcService.cs rename to DysonNetwork.Passport/Auth/OpenId/SpotifyOidcService.cs index 214b3602..0d834e67 100644 --- a/DysonNetwork.Pass/Auth/OpenId/SpotifyOidcService.cs +++ b/DysonNetwork.Passport/Auth/OpenId/SpotifyOidcService.cs @@ -1,7 +1,7 @@ using System.Text.Json; using DysonNetwork.Shared.Cache; -namespace DysonNetwork.Pass.Auth.OpenId; +namespace DysonNetwork.Passport.Auth.OpenId; public class SpotifyOidcService( IConfiguration configuration, diff --git a/DysonNetwork.Pass/Auth/OpenId/SteamOidcService.cs b/DysonNetwork.Passport/Auth/OpenId/SteamOidcService.cs similarity index 98% rename from DysonNetwork.Pass/Auth/OpenId/SteamOidcService.cs rename to DysonNetwork.Passport/Auth/OpenId/SteamOidcService.cs index ff370329..e1365927 100644 --- a/DysonNetwork.Pass/Auth/OpenId/SteamOidcService.cs +++ b/DysonNetwork.Passport/Auth/OpenId/SteamOidcService.cs @@ -1,6 +1,6 @@ using DysonNetwork.Shared.Cache; -namespace DysonNetwork.Pass.Auth.OpenId; +namespace DysonNetwork.Passport.Auth.OpenId; public class SteamOidcService( IConfiguration configuration, diff --git a/DysonNetwork.Pass/Auth/OpenId/UserInfoStrategies.cs b/DysonNetwork.Passport/Auth/OpenId/UserInfoStrategies.cs similarity index 99% rename from DysonNetwork.Pass/Auth/OpenId/UserInfoStrategies.cs rename to DysonNetwork.Passport/Auth/OpenId/UserInfoStrategies.cs index 2f483008..8382a210 100644 --- a/DysonNetwork.Pass/Auth/OpenId/UserInfoStrategies.cs +++ b/DysonNetwork.Passport/Auth/OpenId/UserInfoStrategies.cs @@ -2,7 +2,7 @@ using System.IdentityModel.Tokens.Jwt; using System.Text.Json; using Microsoft.IdentityModel.Tokens; -namespace DysonNetwork.Pass.Auth.OpenId; +namespace DysonNetwork.Passport.Auth.OpenId; /// /// Defines how to retrieve user information from an OIDC provider diff --git a/DysonNetwork.Pass/Auth/TokenAuthService.cs b/DysonNetwork.Passport/Auth/TokenAuthService.cs similarity index 99% rename from DysonNetwork.Pass/Auth/TokenAuthService.cs rename to DysonNetwork.Passport/Auth/TokenAuthService.cs index 176d5147..502afc01 100644 --- a/DysonNetwork.Pass/Auth/TokenAuthService.cs +++ b/DysonNetwork.Passport/Auth/TokenAuthService.cs @@ -6,7 +6,7 @@ using DysonNetwork.Shared.Registry; using Microsoft.EntityFrameworkCore; using NodaTime; -namespace DysonNetwork.Pass.Auth; +namespace DysonNetwork.Passport.Auth; public class TokenAuthService( AppDatabase db, diff --git a/DysonNetwork.Pass/Credit/SocialCreditService.cs b/DysonNetwork.Passport/Credit/SocialCreditService.cs similarity index 97% rename from DysonNetwork.Pass/Credit/SocialCreditService.cs rename to DysonNetwork.Passport/Credit/SocialCreditService.cs index 56401454..4034cd87 100644 --- a/DysonNetwork.Pass/Credit/SocialCreditService.cs +++ b/DysonNetwork.Passport/Credit/SocialCreditService.cs @@ -3,7 +3,7 @@ using DysonNetwork.Shared.Models; using Microsoft.EntityFrameworkCore; using NodaTime; -namespace DysonNetwork.Pass.Credit; +namespace DysonNetwork.Passport.Credit; public class SocialCreditService(AppDatabase db, ICacheService cache) { diff --git a/DysonNetwork.Pass/Credit/SocialCreditServiceGrpc.cs b/DysonNetwork.Passport/Credit/SocialCreditServiceGrpc.cs similarity index 96% rename from DysonNetwork.Pass/Credit/SocialCreditServiceGrpc.cs rename to DysonNetwork.Passport/Credit/SocialCreditServiceGrpc.cs index f187fa65..506579ac 100644 --- a/DysonNetwork.Pass/Credit/SocialCreditServiceGrpc.cs +++ b/DysonNetwork.Passport/Credit/SocialCreditServiceGrpc.cs @@ -2,7 +2,7 @@ using DysonNetwork.Shared.Proto; using Grpc.Core; using NodaTime.Serialization.Protobuf; -namespace DysonNetwork.Pass.Credit; +namespace DysonNetwork.Passport.Credit; public class SocialCreditServiceGrpc(SocialCreditService creditService) : DySocialCreditService.DySocialCreditServiceBase diff --git a/DysonNetwork.Pass/Credit/SocialCreditValidationJob.cs b/DysonNetwork.Passport/Credit/SocialCreditValidationJob.cs similarity index 98% rename from DysonNetwork.Pass/Credit/SocialCreditValidationJob.cs rename to DysonNetwork.Passport/Credit/SocialCreditValidationJob.cs index 79834ce5..8ffed37f 100644 --- a/DysonNetwork.Pass/Credit/SocialCreditValidationJob.cs +++ b/DysonNetwork.Passport/Credit/SocialCreditValidationJob.cs @@ -4,7 +4,7 @@ using Microsoft.EntityFrameworkCore; using NodaTime; using Quartz; -namespace DysonNetwork.Pass.Credit; +namespace DysonNetwork.Passport.Credit; public class SocialCreditValidationJob(AppDatabase db, ICacheService cache, ILogger logger) : IJob { diff --git a/DysonNetwork.Pass/Dockerfile b/DysonNetwork.Passport/Dockerfile similarity index 100% rename from DysonNetwork.Pass/Dockerfile rename to DysonNetwork.Passport/Dockerfile diff --git a/DysonNetwork.Pass/DysonNetwork.Pass.sln b/DysonNetwork.Passport/DysonNetwork.Pass.sln similarity index 100% rename from DysonNetwork.Pass/DysonNetwork.Pass.sln rename to DysonNetwork.Passport/DysonNetwork.Pass.sln diff --git a/DysonNetwork.Pass/DysonNetwork.Pass.csproj b/DysonNetwork.Passport/DysonNetwork.Passport.csproj similarity index 100% rename from DysonNetwork.Pass/DysonNetwork.Pass.csproj rename to DysonNetwork.Passport/DysonNetwork.Passport.csproj diff --git a/DysonNetwork.Pass/Handlers/ActionLogFlushHandler.cs b/DysonNetwork.Passport/Handlers/ActionLogFlushHandler.cs similarity index 95% rename from DysonNetwork.Pass/Handlers/ActionLogFlushHandler.cs rename to DysonNetwork.Passport/Handlers/ActionLogFlushHandler.cs index a6be7659..95eb0f7c 100644 --- a/DysonNetwork.Pass/Handlers/ActionLogFlushHandler.cs +++ b/DysonNetwork.Passport/Handlers/ActionLogFlushHandler.cs @@ -3,7 +3,7 @@ using DysonNetwork.Shared.Models; using NodaTime; using Quartz; -namespace DysonNetwork.Pass.Handlers; +namespace DysonNetwork.Passport.Handlers; public class ActionLogFlushHandler(IServiceProvider sp) : IFlushHandler { diff --git a/DysonNetwork.Pass/Handlers/LastActiveFlushHandler.cs b/DysonNetwork.Passport/Handlers/LastActiveFlushHandler.cs similarity index 98% rename from DysonNetwork.Pass/Handlers/LastActiveFlushHandler.cs rename to DysonNetwork.Passport/Handlers/LastActiveFlushHandler.cs index 7de76688..72cf6dcc 100644 --- a/DysonNetwork.Pass/Handlers/LastActiveFlushHandler.cs +++ b/DysonNetwork.Passport/Handlers/LastActiveFlushHandler.cs @@ -4,7 +4,7 @@ using Microsoft.EntityFrameworkCore; using NodaTime; using Quartz; -namespace DysonNetwork.Pass.Handlers; +namespace DysonNetwork.Passport.Handlers; public class LastActiveInfo { diff --git a/DysonNetwork.Pass/IpCheckController.cs b/DysonNetwork.Passport/IpCheckController.cs similarity index 97% rename from DysonNetwork.Pass/IpCheckController.cs rename to DysonNetwork.Passport/IpCheckController.cs index dec1a776..df619d8c 100644 --- a/DysonNetwork.Pass/IpCheckController.cs +++ b/DysonNetwork.Passport/IpCheckController.cs @@ -1,6 +1,6 @@ using Microsoft.AspNetCore.Mvc; -namespace DysonNetwork.Pass; +namespace DysonNetwork.Passport; [ApiController] [Route("/api/ip-check")] diff --git a/DysonNetwork.Pass/Leveling/ExperienceService.cs b/DysonNetwork.Passport/Leveling/ExperienceService.cs similarity index 97% rename from DysonNetwork.Pass/Leveling/ExperienceService.cs rename to DysonNetwork.Passport/Leveling/ExperienceService.cs index 1de2a7b7..05b5bb25 100644 --- a/DysonNetwork.Pass/Leveling/ExperienceService.cs +++ b/DysonNetwork.Passport/Leveling/ExperienceService.cs @@ -2,7 +2,7 @@ using DysonNetwork.Shared.Models; using DysonNetwork.Shared.Registry; using Microsoft.EntityFrameworkCore; -namespace DysonNetwork.Pass.Leveling; +namespace DysonNetwork.Passport.Leveling; public class ExperienceService(AppDatabase db, RemoteSubscriptionService subscriptions) { diff --git a/DysonNetwork.Pass/Leveling/ExperienceServiceGrpc.cs b/DysonNetwork.Passport/Leveling/ExperienceServiceGrpc.cs similarity index 93% rename from DysonNetwork.Pass/Leveling/ExperienceServiceGrpc.cs rename to DysonNetwork.Passport/Leveling/ExperienceServiceGrpc.cs index 9712bbab..389269fc 100644 --- a/DysonNetwork.Pass/Leveling/ExperienceServiceGrpc.cs +++ b/DysonNetwork.Passport/Leveling/ExperienceServiceGrpc.cs @@ -1,7 +1,7 @@ using DysonNetwork.Shared.Proto; using Grpc.Core; -namespace DysonNetwork.Pass.Leveling; +namespace DysonNetwork.Passport.Leveling; public class ExperienceServiceGrpc(ExperienceService experienceService) : DyExperienceService.DyExperienceServiceBase { diff --git a/DysonNetwork.Passport/Localization/AccountEventResource.cs b/DysonNetwork.Passport/Localization/AccountEventResource.cs new file mode 100644 index 00000000..49b63e78 --- /dev/null +++ b/DysonNetwork.Passport/Localization/AccountEventResource.cs @@ -0,0 +1,6 @@ +namespace DysonNetwork.Passport.Localization; + +public class AccountEventResource +{ + +} \ No newline at end of file diff --git a/DysonNetwork.Passport/Localization/EmailResource.cs b/DysonNetwork.Passport/Localization/EmailResource.cs new file mode 100644 index 00000000..d0edac83 --- /dev/null +++ b/DysonNetwork.Passport/Localization/EmailResource.cs @@ -0,0 +1,5 @@ +namespace DysonNetwork.Passport.Localization; + +public class EmailResource +{ +} \ No newline at end of file diff --git a/DysonNetwork.Passport/Localization/NotificationResource.cs b/DysonNetwork.Passport/Localization/NotificationResource.cs new file mode 100644 index 00000000..4e201249 --- /dev/null +++ b/DysonNetwork.Passport/Localization/NotificationResource.cs @@ -0,0 +1,6 @@ +namespace DysonNetwork.Passport.Localization; + +public class NotificationResource +{ + +} \ No newline at end of file diff --git a/DysonNetwork.Passport/Localization/SharedResource.cs b/DysonNetwork.Passport/Localization/SharedResource.cs new file mode 100644 index 00000000..2e344fda --- /dev/null +++ b/DysonNetwork.Passport/Localization/SharedResource.cs @@ -0,0 +1,6 @@ +namespace DysonNetwork.Passport.Localization; + +public class SharedResource +{ + +} \ No newline at end of file diff --git a/DysonNetwork.Pass/Mailart/.editorconfig b/DysonNetwork.Passport/Mailart/.editorconfig similarity index 100% rename from DysonNetwork.Pass/Mailart/.editorconfig rename to DysonNetwork.Passport/Mailart/.editorconfig diff --git a/DysonNetwork.Pass/Mailart/.gitignore b/DysonNetwork.Passport/Mailart/.gitignore similarity index 100% rename from DysonNetwork.Pass/Mailart/.gitignore rename to DysonNetwork.Passport/Mailart/.gitignore diff --git a/DysonNetwork.Pass/Mailart/bun.lock b/DysonNetwork.Passport/Mailart/bun.lock similarity index 100% rename from DysonNetwork.Pass/Mailart/bun.lock rename to DysonNetwork.Passport/Mailart/bun.lock diff --git a/DysonNetwork.Pass/Mailart/components/button.html b/DysonNetwork.Passport/Mailart/components/button.html similarity index 100% rename from DysonNetwork.Pass/Mailart/components/button.html rename to DysonNetwork.Passport/Mailart/components/button.html diff --git a/DysonNetwork.Pass/Mailart/components/divider.html b/DysonNetwork.Passport/Mailart/components/divider.html similarity index 100% rename from DysonNetwork.Pass/Mailart/components/divider.html rename to DysonNetwork.Passport/Mailart/components/divider.html diff --git a/DysonNetwork.Pass/Mailart/components/spacer.html b/DysonNetwork.Passport/Mailart/components/spacer.html similarity index 100% rename from DysonNetwork.Pass/Mailart/components/spacer.html rename to DysonNetwork.Passport/Mailart/components/spacer.html diff --git a/DysonNetwork.Pass/Mailart/components/v-fill.html b/DysonNetwork.Passport/Mailart/components/v-fill.html similarity index 100% rename from DysonNetwork.Pass/Mailart/components/v-fill.html rename to DysonNetwork.Passport/Mailart/components/v-fill.html diff --git a/DysonNetwork.Pass/Mailart/config.js b/DysonNetwork.Passport/Mailart/config.js similarity index 100% rename from DysonNetwork.Pass/Mailart/config.js rename to DysonNetwork.Passport/Mailart/config.js diff --git a/DysonNetwork.Pass/Mailart/config.production.js b/DysonNetwork.Passport/Mailart/config.production.js similarity index 100% rename from DysonNetwork.Pass/Mailart/config.production.js rename to DysonNetwork.Passport/Mailart/config.production.js diff --git a/DysonNetwork.Pass/Mailart/emails/confirm-alt.html b/DysonNetwork.Passport/Mailart/emails/confirm-alt.html similarity index 100% rename from DysonNetwork.Pass/Mailart/emails/confirm-alt.html rename to DysonNetwork.Passport/Mailart/emails/confirm-alt.html diff --git a/DysonNetwork.Pass/Mailart/emails/confirm.html b/DysonNetwork.Passport/Mailart/emails/confirm.html similarity index 100% rename from DysonNetwork.Pass/Mailart/emails/confirm.html rename to DysonNetwork.Passport/Mailart/emails/confirm.html diff --git a/DysonNetwork.Pass/Mailart/emails/factor-code.html b/DysonNetwork.Passport/Mailart/emails/factor-code.html similarity index 100% rename from DysonNetwork.Pass/Mailart/emails/factor-code.html rename to DysonNetwork.Passport/Mailart/emails/factor-code.html diff --git a/DysonNetwork.Pass/Mailart/layouts/main.html b/DysonNetwork.Passport/Mailart/layouts/main.html similarity index 100% rename from DysonNetwork.Pass/Mailart/layouts/main.html rename to DysonNetwork.Passport/Mailart/layouts/main.html diff --git a/DysonNetwork.Pass/Mailart/package.json b/DysonNetwork.Passport/Mailart/package.json similarity index 100% rename from DysonNetwork.Pass/Mailart/package.json rename to DysonNetwork.Passport/Mailart/package.json diff --git a/DysonNetwork.Pass/Mailart/tailwind.config.js b/DysonNetwork.Passport/Mailart/tailwind.config.js similarity index 100% rename from DysonNetwork.Pass/Mailart/tailwind.config.js rename to DysonNetwork.Passport/Mailart/tailwind.config.js diff --git a/DysonNetwork.Pass/Mailer/EmailService.cs b/DysonNetwork.Passport/Mailer/EmailService.cs similarity index 98% rename from DysonNetwork.Pass/Mailer/EmailService.cs rename to DysonNetwork.Passport/Mailer/EmailService.cs index a287172f..6080f0ab 100644 --- a/DysonNetwork.Pass/Mailer/EmailService.cs +++ b/DysonNetwork.Passport/Mailer/EmailService.cs @@ -2,7 +2,7 @@ using DysonNetwork.Shared.Proto; using DysonNetwork.Shared.Templating; using Microsoft.AspNetCore.Components; -namespace DysonNetwork.Pass.Mailer; +namespace DysonNetwork.Passport.Mailer; public class EmailService( DyRingService.DyRingServiceClient pusher, diff --git a/DysonNetwork.Pass/Mailer/RazorViewRenderer.cs b/DysonNetwork.Passport/Mailer/RazorViewRenderer.cs similarity index 96% rename from DysonNetwork.Pass/Mailer/RazorViewRenderer.cs rename to DysonNetwork.Passport/Mailer/RazorViewRenderer.cs index d5461728..9c6f9efe 100644 --- a/DysonNetwork.Pass/Mailer/RazorViewRenderer.cs +++ b/DysonNetwork.Passport/Mailer/RazorViewRenderer.cs @@ -1,7 +1,7 @@ using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Web; -namespace DysonNetwork.Pass.Mailer; +namespace DysonNetwork.Passport.Mailer; public class RazorViewRenderer( IServiceProvider serviceProvider, diff --git a/DysonNetwork.Pass/Migrations/20251214092550_InitialMigration.Designer.cs b/DysonNetwork.Passport/Migrations/20251214092550_InitialMigration.Designer.cs similarity index 99% rename from DysonNetwork.Pass/Migrations/20251214092550_InitialMigration.Designer.cs rename to DysonNetwork.Passport/Migrations/20251214092550_InitialMigration.Designer.cs index 6c5afbc5..2465f14d 100644 --- a/DysonNetwork.Pass/Migrations/20251214092550_InitialMigration.Designer.cs +++ b/DysonNetwork.Passport/Migrations/20251214092550_InitialMigration.Designer.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json; -using DysonNetwork.Pass; +using DysonNetwork.Passport; using DysonNetwork.Shared.Geometry; using DysonNetwork.Shared.Models; using Microsoft.EntityFrameworkCore; @@ -14,7 +14,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable -namespace DysonNetwork.Pass.Migrations +namespace DysonNetwork.Passport.Migrations { [DbContext(typeof(AppDatabase))] [Migration("20251214092550_InitialMigration")] diff --git a/DysonNetwork.Pass/Migrations/20251214092550_InitialMigration.cs b/DysonNetwork.Passport/Migrations/20251214092550_InitialMigration.cs similarity index 99% rename from DysonNetwork.Pass/Migrations/20251214092550_InitialMigration.cs rename to DysonNetwork.Passport/Migrations/20251214092550_InitialMigration.cs index f49a35ed..9e3b6a6a 100644 --- a/DysonNetwork.Pass/Migrations/20251214092550_InitialMigration.cs +++ b/DysonNetwork.Passport/Migrations/20251214092550_InitialMigration.cs @@ -8,7 +8,7 @@ using NodaTime; #nullable disable -namespace DysonNetwork.Pass.Migrations +namespace DysonNetwork.Passport.Migrations { /// public partial class InitialMigration : Migration diff --git a/DysonNetwork.Pass/Migrations/20251225145146_AddRewindPoint.Designer.cs b/DysonNetwork.Passport/Migrations/20251225145146_AddRewindPoint.Designer.cs similarity index 99% rename from DysonNetwork.Pass/Migrations/20251225145146_AddRewindPoint.Designer.cs rename to DysonNetwork.Passport/Migrations/20251225145146_AddRewindPoint.Designer.cs index ee066a05..f2429968 100644 --- a/DysonNetwork.Pass/Migrations/20251225145146_AddRewindPoint.Designer.cs +++ b/DysonNetwork.Passport/Migrations/20251225145146_AddRewindPoint.Designer.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json; -using DysonNetwork.Pass; +using DysonNetwork.Passport; using DysonNetwork.Shared.Geometry; using DysonNetwork.Shared.Models; using Microsoft.EntityFrameworkCore; @@ -14,7 +14,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable -namespace DysonNetwork.Pass.Migrations +namespace DysonNetwork.Passport.Migrations { [DbContext(typeof(AppDatabase))] [Migration("20251225145146_AddRewindPoint")] diff --git a/DysonNetwork.Pass/Migrations/20251225145146_AddRewindPoint.cs b/DysonNetwork.Passport/Migrations/20251225145146_AddRewindPoint.cs similarity index 97% rename from DysonNetwork.Pass/Migrations/20251225145146_AddRewindPoint.cs rename to DysonNetwork.Passport/Migrations/20251225145146_AddRewindPoint.cs index bed61115..5fcccdb8 100644 --- a/DysonNetwork.Pass/Migrations/20251225145146_AddRewindPoint.cs +++ b/DysonNetwork.Passport/Migrations/20251225145146_AddRewindPoint.cs @@ -5,7 +5,7 @@ using NodaTime; #nullable disable -namespace DysonNetwork.Pass.Migrations +namespace DysonNetwork.Passport.Migrations { /// public partial class AddRewindPoint : Migration diff --git a/DysonNetwork.Pass/Migrations/20251227062459_AddSharableRewindPoint.Designer.cs b/DysonNetwork.Passport/Migrations/20251227062459_AddSharableRewindPoint.Designer.cs similarity index 99% rename from DysonNetwork.Pass/Migrations/20251227062459_AddSharableRewindPoint.Designer.cs rename to DysonNetwork.Passport/Migrations/20251227062459_AddSharableRewindPoint.Designer.cs index 8f61d9c8..3b96d52b 100644 --- a/DysonNetwork.Pass/Migrations/20251227062459_AddSharableRewindPoint.Designer.cs +++ b/DysonNetwork.Passport/Migrations/20251227062459_AddSharableRewindPoint.Designer.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json; -using DysonNetwork.Pass; +using DysonNetwork.Passport; using DysonNetwork.Shared.Geometry; using DysonNetwork.Shared.Models; using Microsoft.EntityFrameworkCore; @@ -14,7 +14,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable -namespace DysonNetwork.Pass.Migrations +namespace DysonNetwork.Passport.Migrations { [DbContext(typeof(AppDatabase))] [Migration("20251227062459_AddSharableRewindPoint")] diff --git a/DysonNetwork.Pass/Migrations/20251227062459_AddSharableRewindPoint.cs b/DysonNetwork.Passport/Migrations/20251227062459_AddSharableRewindPoint.cs similarity index 94% rename from DysonNetwork.Pass/Migrations/20251227062459_AddSharableRewindPoint.cs rename to DysonNetwork.Passport/Migrations/20251227062459_AddSharableRewindPoint.cs index 0c9db5e2..70d45843 100644 --- a/DysonNetwork.Pass/Migrations/20251227062459_AddSharableRewindPoint.cs +++ b/DysonNetwork.Passport/Migrations/20251227062459_AddSharableRewindPoint.cs @@ -2,7 +2,7 @@ #nullable disable -namespace DysonNetwork.Pass.Migrations +namespace DysonNetwork.Passport.Migrations { /// public partial class AddSharableRewindPoint : Migration diff --git a/DysonNetwork.Pass/Migrations/20260203153052_PendingWalletRemoval.Designer.cs b/DysonNetwork.Passport/Migrations/20260203153052_PendingWalletRemoval.Designer.cs similarity index 99% rename from DysonNetwork.Pass/Migrations/20260203153052_PendingWalletRemoval.Designer.cs rename to DysonNetwork.Passport/Migrations/20260203153052_PendingWalletRemoval.Designer.cs index b24394d1..ad254e7f 100644 --- a/DysonNetwork.Pass/Migrations/20260203153052_PendingWalletRemoval.Designer.cs +++ b/DysonNetwork.Passport/Migrations/20260203153052_PendingWalletRemoval.Designer.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json; -using DysonNetwork.Pass; +using DysonNetwork.Passport; using DysonNetwork.Shared.Geometry; using DysonNetwork.Shared.Models; using Microsoft.EntityFrameworkCore; @@ -14,7 +14,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable -namespace DysonNetwork.Pass.Migrations +namespace DysonNetwork.Passport.Migrations { [DbContext(typeof(AppDatabase))] [Migration("20260203153052_PendingWalletRemoval")] diff --git a/DysonNetwork.Pass/Migrations/20260203153052_PendingWalletRemoval.cs b/DysonNetwork.Passport/Migrations/20260203153052_PendingWalletRemoval.cs similarity index 99% rename from DysonNetwork.Pass/Migrations/20260203153052_PendingWalletRemoval.cs rename to DysonNetwork.Passport/Migrations/20260203153052_PendingWalletRemoval.cs index 9a1d4176..e53a0102 100644 --- a/DysonNetwork.Pass/Migrations/20260203153052_PendingWalletRemoval.cs +++ b/DysonNetwork.Passport/Migrations/20260203153052_PendingWalletRemoval.cs @@ -2,7 +2,7 @@ #nullable disable -namespace DysonNetwork.Pass.Migrations +namespace DysonNetwork.Passport.Migrations { /// public partial class PendingWalletRemoval : Migration diff --git a/DysonNetwork.Pass/Migrations/20260214164044_AddTickets.Designer.cs b/DysonNetwork.Passport/Migrations/20260214164044_AddTickets.Designer.cs similarity index 99% rename from DysonNetwork.Pass/Migrations/20260214164044_AddTickets.Designer.cs rename to DysonNetwork.Passport/Migrations/20260214164044_AddTickets.Designer.cs index 71ca632e..881322ad 100644 --- a/DysonNetwork.Pass/Migrations/20260214164044_AddTickets.Designer.cs +++ b/DysonNetwork.Passport/Migrations/20260214164044_AddTickets.Designer.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json; -using DysonNetwork.Pass; +using DysonNetwork.Passport; using DysonNetwork.Shared.Geometry; using DysonNetwork.Shared.Models; using Microsoft.EntityFrameworkCore; @@ -14,7 +14,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable -namespace DysonNetwork.Pass.Migrations +namespace DysonNetwork.Passport.Migrations { [DbContext(typeof(AppDatabase))] [Migration("20260214164044_AddTickets")] diff --git a/DysonNetwork.Pass/Migrations/20260214164044_AddTickets.cs b/DysonNetwork.Passport/Migrations/20260214164044_AddTickets.cs similarity index 99% rename from DysonNetwork.Pass/Migrations/20260214164044_AddTickets.cs rename to DysonNetwork.Passport/Migrations/20260214164044_AddTickets.cs index 0fedfd09..d9ec70c2 100644 --- a/DysonNetwork.Pass/Migrations/20260214164044_AddTickets.cs +++ b/DysonNetwork.Passport/Migrations/20260214164044_AddTickets.cs @@ -4,7 +4,7 @@ using NodaTime; #nullable disable -namespace DysonNetwork.Pass.Migrations +namespace DysonNetwork.Passport.Migrations { /// public partial class AddTickets : Migration diff --git a/DysonNetwork.Pass/Migrations/20260215072352_UpdateTicketSystem.Designer.cs b/DysonNetwork.Passport/Migrations/20260215072352_UpdateTicketSystem.Designer.cs similarity index 99% rename from DysonNetwork.Pass/Migrations/20260215072352_UpdateTicketSystem.Designer.cs rename to DysonNetwork.Passport/Migrations/20260215072352_UpdateTicketSystem.Designer.cs index 58e91060..5babe530 100644 --- a/DysonNetwork.Pass/Migrations/20260215072352_UpdateTicketSystem.Designer.cs +++ b/DysonNetwork.Passport/Migrations/20260215072352_UpdateTicketSystem.Designer.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json; -using DysonNetwork.Pass; +using DysonNetwork.Passport; using DysonNetwork.Shared.Geometry; using DysonNetwork.Shared.Models; using Microsoft.EntityFrameworkCore; @@ -14,7 +14,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable -namespace DysonNetwork.Pass.Migrations +namespace DysonNetwork.Passport.Migrations { [DbContext(typeof(AppDatabase))] [Migration("20260215072352_UpdateTicketSystem")] diff --git a/DysonNetwork.Pass/Migrations/20260215072352_UpdateTicketSystem.cs b/DysonNetwork.Passport/Migrations/20260215072352_UpdateTicketSystem.cs similarity index 98% rename from DysonNetwork.Pass/Migrations/20260215072352_UpdateTicketSystem.cs rename to DysonNetwork.Passport/Migrations/20260215072352_UpdateTicketSystem.cs index f525074f..04b27bff 100644 --- a/DysonNetwork.Pass/Migrations/20260215072352_UpdateTicketSystem.cs +++ b/DysonNetwork.Passport/Migrations/20260215072352_UpdateTicketSystem.cs @@ -6,7 +6,7 @@ using NodaTime; #nullable disable -namespace DysonNetwork.Pass.Migrations +namespace DysonNetwork.Passport.Migrations { /// public partial class UpdateTicketSystem : Migration diff --git a/DysonNetwork.Pass/Migrations/20260228130901_AddE2eeCoreModule.Designer.cs b/DysonNetwork.Passport/Migrations/20260228130901_AddE2eeCoreModule.Designer.cs similarity index 99% rename from DysonNetwork.Pass/Migrations/20260228130901_AddE2eeCoreModule.Designer.cs rename to DysonNetwork.Passport/Migrations/20260228130901_AddE2eeCoreModule.Designer.cs index 24fcafa9..ee99596f 100644 --- a/DysonNetwork.Pass/Migrations/20260228130901_AddE2eeCoreModule.Designer.cs +++ b/DysonNetwork.Passport/Migrations/20260228130901_AddE2eeCoreModule.Designer.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json; -using DysonNetwork.Pass; +using DysonNetwork.Passport; using DysonNetwork.Shared.Geometry; using DysonNetwork.Shared.Models; using Microsoft.EntityFrameworkCore; @@ -14,7 +14,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable -namespace DysonNetwork.Pass.Migrations +namespace DysonNetwork.Passport.Migrations { [DbContext(typeof(AppDatabase))] [Migration("20260228130901_AddE2eeCoreModule")] diff --git a/DysonNetwork.Pass/Migrations/20260228130901_AddE2eeCoreModule.cs b/DysonNetwork.Passport/Migrations/20260228130901_AddE2eeCoreModule.cs similarity index 99% rename from DysonNetwork.Pass/Migrations/20260228130901_AddE2eeCoreModule.cs rename to DysonNetwork.Passport/Migrations/20260228130901_AddE2eeCoreModule.cs index 7e07c67f..c2fc2569 100644 --- a/DysonNetwork.Pass/Migrations/20260228130901_AddE2eeCoreModule.cs +++ b/DysonNetwork.Passport/Migrations/20260228130901_AddE2eeCoreModule.cs @@ -5,7 +5,7 @@ using NodaTime; #nullable disable -namespace DysonNetwork.Pass.Migrations +namespace DysonNetwork.Passport.Migrations { /// public partial class AddE2eeCoreModule : Migration diff --git a/DysonNetwork.Pass/Migrations/20260228131014_AdjustE2eeEnvelopeIdempotencyIndex.Designer.cs b/DysonNetwork.Passport/Migrations/20260228131014_AdjustE2eeEnvelopeIdempotencyIndex.Designer.cs similarity index 99% rename from DysonNetwork.Pass/Migrations/20260228131014_AdjustE2eeEnvelopeIdempotencyIndex.Designer.cs rename to DysonNetwork.Passport/Migrations/20260228131014_AdjustE2eeEnvelopeIdempotencyIndex.Designer.cs index 2e9f1f51..466a98e9 100644 --- a/DysonNetwork.Pass/Migrations/20260228131014_AdjustE2eeEnvelopeIdempotencyIndex.Designer.cs +++ b/DysonNetwork.Passport/Migrations/20260228131014_AdjustE2eeEnvelopeIdempotencyIndex.Designer.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json; -using DysonNetwork.Pass; +using DysonNetwork.Passport; using DysonNetwork.Shared.Geometry; using DysonNetwork.Shared.Models; using Microsoft.EntityFrameworkCore; @@ -14,7 +14,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable -namespace DysonNetwork.Pass.Migrations +namespace DysonNetwork.Passport.Migrations { [DbContext(typeof(AppDatabase))] [Migration("20260228131014_AdjustE2eeEnvelopeIdempotencyIndex")] diff --git a/DysonNetwork.Pass/Migrations/20260228131014_AdjustE2eeEnvelopeIdempotencyIndex.cs b/DysonNetwork.Passport/Migrations/20260228131014_AdjustE2eeEnvelopeIdempotencyIndex.cs similarity index 97% rename from DysonNetwork.Pass/Migrations/20260228131014_AdjustE2eeEnvelopeIdempotencyIndex.cs rename to DysonNetwork.Passport/Migrations/20260228131014_AdjustE2eeEnvelopeIdempotencyIndex.cs index b93c48e3..4874b9fd 100644 --- a/DysonNetwork.Pass/Migrations/20260228131014_AdjustE2eeEnvelopeIdempotencyIndex.cs +++ b/DysonNetwork.Passport/Migrations/20260228131014_AdjustE2eeEnvelopeIdempotencyIndex.cs @@ -2,7 +2,7 @@ #nullable disable -namespace DysonNetwork.Pass.Migrations +namespace DysonNetwork.Passport.Migrations { /// public partial class AdjustE2eeEnvelopeIdempotencyIndex : Migration diff --git a/DysonNetwork.Pass/Migrations/20260301084247_AddE2eeDeviceScopedV2.Designer.cs b/DysonNetwork.Passport/Migrations/20260301084247_AddE2eeDeviceScopedV2.Designer.cs similarity index 99% rename from DysonNetwork.Pass/Migrations/20260301084247_AddE2eeDeviceScopedV2.Designer.cs rename to DysonNetwork.Passport/Migrations/20260301084247_AddE2eeDeviceScopedV2.Designer.cs index b4aa7ddb..ced1895d 100644 --- a/DysonNetwork.Pass/Migrations/20260301084247_AddE2eeDeviceScopedV2.Designer.cs +++ b/DysonNetwork.Passport/Migrations/20260301084247_AddE2eeDeviceScopedV2.Designer.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json; -using DysonNetwork.Pass; +using DysonNetwork.Passport; using DysonNetwork.Shared.Geometry; using DysonNetwork.Shared.Models; using Microsoft.EntityFrameworkCore; @@ -14,7 +14,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable -namespace DysonNetwork.Pass.Migrations +namespace DysonNetwork.Passport.Migrations { [DbContext(typeof(AppDatabase))] [Migration("20260301084247_AddE2eeDeviceScopedV2")] diff --git a/DysonNetwork.Pass/Migrations/20260301084247_AddE2eeDeviceScopedV2.cs b/DysonNetwork.Passport/Migrations/20260301084247_AddE2eeDeviceScopedV2.cs similarity index 99% rename from DysonNetwork.Pass/Migrations/20260301084247_AddE2eeDeviceScopedV2.cs rename to DysonNetwork.Passport/Migrations/20260301084247_AddE2eeDeviceScopedV2.cs index 65a12ec0..2a9edf56 100644 --- a/DysonNetwork.Pass/Migrations/20260301084247_AddE2eeDeviceScopedV2.cs +++ b/DysonNetwork.Passport/Migrations/20260301084247_AddE2eeDeviceScopedV2.cs @@ -4,7 +4,7 @@ using NodaTime; #nullable disable -namespace DysonNetwork.Pass.Migrations +namespace DysonNetwork.Passport.Migrations { /// public partial class AddE2eeDeviceScopedV2 : Migration diff --git a/DysonNetwork.Pass/Migrations/20260302164333_AddMlsSupport.Designer.cs b/DysonNetwork.Passport/Migrations/20260302164333_AddMlsSupport.Designer.cs similarity index 99% rename from DysonNetwork.Pass/Migrations/20260302164333_AddMlsSupport.Designer.cs rename to DysonNetwork.Passport/Migrations/20260302164333_AddMlsSupport.Designer.cs index 1916e2ab..ab6f50f0 100644 --- a/DysonNetwork.Pass/Migrations/20260302164333_AddMlsSupport.Designer.cs +++ b/DysonNetwork.Passport/Migrations/20260302164333_AddMlsSupport.Designer.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json; -using DysonNetwork.Pass; +using DysonNetwork.Passport; using DysonNetwork.Shared.Geometry; using DysonNetwork.Shared.Models; using Microsoft.EntityFrameworkCore; @@ -14,7 +14,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable -namespace DysonNetwork.Pass.Migrations +namespace DysonNetwork.Passport.Migrations { [DbContext(typeof(AppDatabase))] [Migration("20260302164333_AddMlsSupport")] diff --git a/DysonNetwork.Pass/Migrations/20260302164333_AddMlsSupport.cs b/DysonNetwork.Passport/Migrations/20260302164333_AddMlsSupport.cs similarity index 99% rename from DysonNetwork.Pass/Migrations/20260302164333_AddMlsSupport.cs rename to DysonNetwork.Passport/Migrations/20260302164333_AddMlsSupport.cs index bafc5e60..27272b50 100644 --- a/DysonNetwork.Pass/Migrations/20260302164333_AddMlsSupport.cs +++ b/DysonNetwork.Passport/Migrations/20260302164333_AddMlsSupport.cs @@ -5,7 +5,7 @@ using NodaTime; #nullable disable -namespace DysonNetwork.Pass.Migrations +namespace DysonNetwork.Passport.Migrations { /// public partial class AddMlsSupport : Migration diff --git a/DysonNetwork.Pass/Migrations/AppDatabaseModelSnapshot.cs b/DysonNetwork.Passport/Migrations/AppDatabaseModelSnapshot.cs similarity index 99% rename from DysonNetwork.Pass/Migrations/AppDatabaseModelSnapshot.cs rename to DysonNetwork.Passport/Migrations/AppDatabaseModelSnapshot.cs index d2de9d9a..9f7c71a1 100644 --- a/DysonNetwork.Pass/Migrations/AppDatabaseModelSnapshot.cs +++ b/DysonNetwork.Passport/Migrations/AppDatabaseModelSnapshot.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json; -using DysonNetwork.Pass; +using DysonNetwork.Passport; using DysonNetwork.Shared.Geometry; using DysonNetwork.Shared.Models; using Microsoft.EntityFrameworkCore; @@ -13,7 +13,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable -namespace DysonNetwork.Pass.Migrations +namespace DysonNetwork.Passport.Migrations { [DbContext(typeof(AppDatabase))] partial class AppDatabaseModelSnapshot : ModelSnapshot diff --git a/DysonNetwork.Pass/Permission/LocalPermissionMiddleware.cs b/DysonNetwork.Passport/Permission/LocalPermissionMiddleware.cs similarity index 98% rename from DysonNetwork.Pass/Permission/LocalPermissionMiddleware.cs rename to DysonNetwork.Passport/Permission/LocalPermissionMiddleware.cs index 1198c971..11a7a056 100644 --- a/DysonNetwork.Pass/Permission/LocalPermissionMiddleware.cs +++ b/DysonNetwork.Passport/Permission/LocalPermissionMiddleware.cs @@ -1,6 +1,6 @@ using DysonNetwork.Shared.Auth; -namespace DysonNetwork.Pass.Permission; +namespace DysonNetwork.Passport.Permission; using System; using Microsoft.Extensions.Logging; diff --git a/DysonNetwork.Pass/Permission/PermissionService.cs b/DysonNetwork.Passport/Permission/PermissionService.cs similarity index 99% rename from DysonNetwork.Pass/Permission/PermissionService.cs rename to DysonNetwork.Passport/Permission/PermissionService.cs index 057cd609..daec8a79 100644 --- a/DysonNetwork.Pass/Permission/PermissionService.cs +++ b/DysonNetwork.Passport/Permission/PermissionService.cs @@ -7,7 +7,7 @@ using DysonNetwork.Shared.Cache; using DysonNetwork.Shared.Data; using DysonNetwork.Shared.Models; -namespace DysonNetwork.Pass.Permission; +namespace DysonNetwork.Passport.Permission; public class PermissionServiceOptions { diff --git a/DysonNetwork.Pass/Permission/PermissionServiceGrpc.cs b/DysonNetwork.Passport/Permission/PermissionServiceGrpc.cs similarity index 99% rename from DysonNetwork.Pass/Permission/PermissionServiceGrpc.cs rename to DysonNetwork.Passport/Permission/PermissionServiceGrpc.cs index a41e9242..dfb380ac 100644 --- a/DysonNetwork.Pass/Permission/PermissionServiceGrpc.cs +++ b/DysonNetwork.Passport/Permission/PermissionServiceGrpc.cs @@ -6,7 +6,7 @@ using Google.Protobuf.WellKnownTypes; using System.Text.Json; using NodaTime.Serialization.Protobuf; -namespace DysonNetwork.Pass.Permission; +namespace DysonNetwork.Passport.Permission; public class PermissionServiceGrpc( PermissionService psv, diff --git a/DysonNetwork.Pass/PermissionController.cs b/DysonNetwork.Passport/PermissionController.cs similarity index 99% rename from DysonNetwork.Pass/PermissionController.cs rename to DysonNetwork.Passport/PermissionController.cs index 54fc72db..7d44b86c 100644 --- a/DysonNetwork.Pass/PermissionController.cs +++ b/DysonNetwork.Passport/PermissionController.cs @@ -1,13 +1,13 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; -using DysonNetwork.Pass.Permission; using DysonNetwork.Shared.Models; using NodaTime; using System.Text.Json; +using DysonNetwork.Passport.Permission; using DysonNetwork.Shared.Auth; -namespace DysonNetwork.Pass; +namespace DysonNetwork.Passport; [ApiController] [Route("/api/permissions")] diff --git a/DysonNetwork.Pass/Program.cs b/DysonNetwork.Passport/Program.cs similarity index 90% rename from DysonNetwork.Pass/Program.cs rename to DysonNetwork.Passport/Program.cs index 374ad4b4..826a00df 100644 --- a/DysonNetwork.Pass/Program.cs +++ b/DysonNetwork.Passport/Program.cs @@ -1,5 +1,5 @@ -using DysonNetwork.Pass; -using DysonNetwork.Pass.Startup; +using DysonNetwork.Passport; +using DysonNetwork.Passport.Startup; using DysonNetwork.Shared.Auth; using DysonNetwork.Shared.Networking; using DysonNetwork.Shared.Registry; @@ -27,7 +27,7 @@ builder.Services.AddAppBusinessServices(builder.Configuration); builder.Services.AddAppScheduledJobs(); builder.AddSwaggerManifest( - "DysonNetwork.Pass", + "DysonNetwork.Passport", "The authentication and authorization service in the Solar Network." ); @@ -48,6 +48,6 @@ app.ConfigureAppMiddleware(builder.Configuration); // Configure gRPC app.ConfigureGrpcServices(); -app.UseSwaggerManifest("DysonNetwork.Pass"); +app.UseSwaggerManifest("DysonNetwork.Passport"); app.Run(); diff --git a/DysonNetwork.Pass/Properties/launchSettings.json b/DysonNetwork.Passport/Properties/launchSettings.json similarity index 100% rename from DysonNetwork.Pass/Properties/launchSettings.json rename to DysonNetwork.Passport/Properties/launchSettings.json diff --git a/DysonNetwork.Pass/Realm/RealmController.cs b/DysonNetwork.Passport/Realm/RealmController.cs similarity index 99% rename from DysonNetwork.Pass/Realm/RealmController.cs rename to DysonNetwork.Passport/Realm/RealmController.cs index 3499b706..60cb5db3 100644 --- a/DysonNetwork.Pass/Realm/RealmController.cs +++ b/DysonNetwork.Passport/Realm/RealmController.cs @@ -1,17 +1,15 @@ using System.ComponentModel.DataAnnotations; -using DysonNetwork.Pass.Account; +using DysonNetwork.Passport.Account; using DysonNetwork.Shared.Models; using DysonNetwork.Shared.Proto; -using DysonNetwork.Shared.Registry; using Google.Protobuf.WellKnownTypes; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using NodaTime; -using AccountService = DysonNetwork.Pass.Account.AccountService; -using ActionLogService = DysonNetwork.Pass.Account.ActionLogService; +using ActionLogService = DysonNetwork.Passport.Account.ActionLogService; -namespace DysonNetwork.Pass.Realm; +namespace DysonNetwork.Passport.Realm; [ApiController] [Route("/api/realms")] diff --git a/DysonNetwork.Pass/Realm/RealmPublicController.cs b/DysonNetwork.Passport/Realm/RealmPublicController.cs similarity index 96% rename from DysonNetwork.Pass/Realm/RealmPublicController.cs rename to DysonNetwork.Passport/Realm/RealmPublicController.cs index 2358f42d..01b7707b 100644 --- a/DysonNetwork.Pass/Realm/RealmPublicController.cs +++ b/DysonNetwork.Passport/Realm/RealmPublicController.cs @@ -2,7 +2,7 @@ using DysonNetwork.Shared.Models; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; -namespace DysonNetwork.Pass.Realm; +namespace DysonNetwork.Passport.Realm; [ApiController] [Route("api/realms/public")] diff --git a/DysonNetwork.Pass/Realm/RealmService.cs b/DysonNetwork.Passport/Realm/RealmService.cs similarity index 97% rename from DysonNetwork.Pass/Realm/RealmService.cs rename to DysonNetwork.Passport/Realm/RealmService.cs index 4b9569b2..a9a29006 100644 --- a/DysonNetwork.Pass/Realm/RealmService.cs +++ b/DysonNetwork.Passport/Realm/RealmService.cs @@ -1,4 +1,4 @@ -using DysonNetwork.Pass.Localization; +using DysonNetwork.Passport.Localization; using DysonNetwork.Shared; using DysonNetwork.Shared.Cache; using DysonNetwork.Shared.Models; @@ -7,7 +7,7 @@ using DysonNetwork.Shared.Registry; using Microsoft.EntityFrameworkCore; using DysonNetwork.Shared.Localization; -namespace DysonNetwork.Pass.Realm; +namespace DysonNetwork.Passport.Realm; public class RealmService( AppDatabase db, diff --git a/DysonNetwork.Pass/Realm/RealmServiceGrpc.cs b/DysonNetwork.Passport/Realm/RealmServiceGrpc.cs similarity index 98% rename from DysonNetwork.Pass/Realm/RealmServiceGrpc.cs rename to DysonNetwork.Passport/Realm/RealmServiceGrpc.cs index b6263df9..1e3a63db 100644 --- a/DysonNetwork.Pass/Realm/RealmServiceGrpc.cs +++ b/DysonNetwork.Passport/Realm/RealmServiceGrpc.cs @@ -2,12 +2,12 @@ using DysonNetwork.Shared.Proto; using Google.Protobuf.WellKnownTypes; using Grpc.Core; using Microsoft.EntityFrameworkCore; -using DysonNetwork.Pass.Localization; +using DysonNetwork.Passport.Localization; using DysonNetwork.Shared; using DysonNetwork.Shared.Cache; using DysonNetwork.Shared.Localization; -namespace DysonNetwork.Pass.Realm; +namespace DysonNetwork.Passport.Realm; public class RealmServiceGrpc( AppDatabase db, diff --git a/DysonNetwork.Pass/Resources/Locales/en.json b/DysonNetwork.Passport/Resources/Locales/en.json similarity index 100% rename from DysonNetwork.Pass/Resources/Locales/en.json rename to DysonNetwork.Passport/Resources/Locales/en.json diff --git a/DysonNetwork.Pass/Resources/Locales/zh-hans.json b/DysonNetwork.Passport/Resources/Locales/zh-hans.json similarity index 100% rename from DysonNetwork.Pass/Resources/Locales/zh-hans.json rename to DysonNetwork.Passport/Resources/Locales/zh-hans.json diff --git a/DysonNetwork.Pass/Resources/Templates/en/AccountDeletion.liquid b/DysonNetwork.Passport/Resources/Templates/en/AccountDeletion.liquid similarity index 100% rename from DysonNetwork.Pass/Resources/Templates/en/AccountDeletion.liquid rename to DysonNetwork.Passport/Resources/Templates/en/AccountDeletion.liquid diff --git a/DysonNetwork.Pass/Resources/Templates/en/ContactVerification.liquid b/DysonNetwork.Passport/Resources/Templates/en/ContactVerification.liquid similarity index 100% rename from DysonNetwork.Pass/Resources/Templates/en/ContactVerification.liquid rename to DysonNetwork.Passport/Resources/Templates/en/ContactVerification.liquid diff --git a/DysonNetwork.Pass/Resources/Templates/en/FactorCode.liquid b/DysonNetwork.Passport/Resources/Templates/en/FactorCode.liquid similarity index 100% rename from DysonNetwork.Pass/Resources/Templates/en/FactorCode.liquid rename to DysonNetwork.Passport/Resources/Templates/en/FactorCode.liquid diff --git a/DysonNetwork.Pass/Resources/Templates/en/PasswordReset.liquid b/DysonNetwork.Passport/Resources/Templates/en/PasswordReset.liquid similarity index 100% rename from DysonNetwork.Pass/Resources/Templates/en/PasswordReset.liquid rename to DysonNetwork.Passport/Resources/Templates/en/PasswordReset.liquid diff --git a/DysonNetwork.Pass/Resources/Templates/en/Welcome.liquid b/DysonNetwork.Passport/Resources/Templates/en/Welcome.liquid similarity index 100% rename from DysonNetwork.Pass/Resources/Templates/en/Welcome.liquid rename to DysonNetwork.Passport/Resources/Templates/en/Welcome.liquid diff --git a/DysonNetwork.Pass/Resources/Templates/zh-hans/AccountDeletion.liquid b/DysonNetwork.Passport/Resources/Templates/zh-hans/AccountDeletion.liquid similarity index 100% rename from DysonNetwork.Pass/Resources/Templates/zh-hans/AccountDeletion.liquid rename to DysonNetwork.Passport/Resources/Templates/zh-hans/AccountDeletion.liquid diff --git a/DysonNetwork.Pass/Resources/Templates/zh-hans/ContactVerification.liquid b/DysonNetwork.Passport/Resources/Templates/zh-hans/ContactVerification.liquid similarity index 100% rename from DysonNetwork.Pass/Resources/Templates/zh-hans/ContactVerification.liquid rename to DysonNetwork.Passport/Resources/Templates/zh-hans/ContactVerification.liquid diff --git a/DysonNetwork.Pass/Resources/Templates/zh-hans/FactorCode.liquid b/DysonNetwork.Passport/Resources/Templates/zh-hans/FactorCode.liquid similarity index 100% rename from DysonNetwork.Pass/Resources/Templates/zh-hans/FactorCode.liquid rename to DysonNetwork.Passport/Resources/Templates/zh-hans/FactorCode.liquid diff --git a/DysonNetwork.Pass/Resources/Templates/zh-hans/PasswordReset.liquid b/DysonNetwork.Passport/Resources/Templates/zh-hans/PasswordReset.liquid similarity index 100% rename from DysonNetwork.Pass/Resources/Templates/zh-hans/PasswordReset.liquid rename to DysonNetwork.Passport/Resources/Templates/zh-hans/PasswordReset.liquid diff --git a/DysonNetwork.Pass/Resources/Templates/zh-hans/Welcome.liquid b/DysonNetwork.Passport/Resources/Templates/zh-hans/Welcome.liquid similarity index 100% rename from DysonNetwork.Pass/Resources/Templates/zh-hans/Welcome.liquid rename to DysonNetwork.Passport/Resources/Templates/zh-hans/Welcome.liquid diff --git a/DysonNetwork.Pass/Rewind/AccountRewindController.cs b/DysonNetwork.Passport/Rewind/AccountRewindController.cs similarity index 97% rename from DysonNetwork.Pass/Rewind/AccountRewindController.cs rename to DysonNetwork.Passport/Rewind/AccountRewindController.cs index d448c32f..cb14985c 100644 --- a/DysonNetwork.Pass/Rewind/AccountRewindController.cs +++ b/DysonNetwork.Passport/Rewind/AccountRewindController.cs @@ -2,7 +2,7 @@ using DysonNetwork.Shared.Models; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -namespace DysonNetwork.Pass.Rewind; +namespace DysonNetwork.Passport.Rewind; [ApiController] [Route("/api/rewind")] diff --git a/DysonNetwork.Pass/Rewind/AccountRewindService.cs b/DysonNetwork.Passport/Rewind/AccountRewindService.cs similarity index 99% rename from DysonNetwork.Pass/Rewind/AccountRewindService.cs rename to DysonNetwork.Passport/Rewind/AccountRewindService.cs index 6c8fb3c0..9a5346db 100644 --- a/DysonNetwork.Pass/Rewind/AccountRewindService.cs +++ b/DysonNetwork.Passport/Rewind/AccountRewindService.cs @@ -5,7 +5,7 @@ using DysonNetwork.Shared.Proto; using Grpc.Net.Client; using Microsoft.EntityFrameworkCore; -namespace DysonNetwork.Pass.Rewind; +namespace DysonNetwork.Passport.Rewind; public class AccountRewindService( IHttpClientFactory httpClientFactory, diff --git a/DysonNetwork.Pass/Rewind/PassRewindService.cs b/DysonNetwork.Passport/Rewind/PassRewindService.cs similarity index 98% rename from DysonNetwork.Pass/Rewind/PassRewindService.cs rename to DysonNetwork.Passport/Rewind/PassRewindService.cs index 25a6a1a2..8e78d71d 100644 --- a/DysonNetwork.Pass/Rewind/PassRewindService.cs +++ b/DysonNetwork.Passport/Rewind/PassRewindService.cs @@ -5,7 +5,7 @@ using Microsoft.EntityFrameworkCore; using NodaTime; using NodaTime.TimeZones; -namespace DysonNetwork.Pass.Rewind; +namespace DysonNetwork.Passport.Rewind; /// /// Although the pass uses the rewind service call internally, no need for grpc. @@ -121,7 +121,7 @@ public class PassRewindService(AppDatabase db) return new DyRewindEvent { - ServiceId = "pass", + ServiceId = "passport", AccountId = accountId.ToString(), Data = InfraObjectCoder.ConvertObjectToByteString(data) }; diff --git a/DysonNetwork.Pass/Safety/AbuseReportController.cs b/DysonNetwork.Passport/Safety/AbuseReportController.cs similarity index 98% rename from DysonNetwork.Pass/Safety/AbuseReportController.cs rename to DysonNetwork.Passport/Safety/AbuseReportController.cs index 55eccab2..5419801e 100644 --- a/DysonNetwork.Pass/Safety/AbuseReportController.cs +++ b/DysonNetwork.Passport/Safety/AbuseReportController.cs @@ -1,11 +1,11 @@ using System.ComponentModel.DataAnnotations; -using DysonNetwork.Pass.Permission; +using DysonNetwork.Passport.Permission; using DysonNetwork.Shared.Auth; using DysonNetwork.Shared.Models; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -namespace DysonNetwork.Pass.Safety; +namespace DysonNetwork.Passport.Safety; [ApiController] [Route("/api/safety/reports")] diff --git a/DysonNetwork.Pass/Safety/SafetyService.cs b/DysonNetwork.Passport/Safety/SafetyService.cs similarity index 98% rename from DysonNetwork.Pass/Safety/SafetyService.cs rename to DysonNetwork.Passport/Safety/SafetyService.cs index 7861699c..e007e0b6 100644 --- a/DysonNetwork.Pass/Safety/SafetyService.cs +++ b/DysonNetwork.Passport/Safety/SafetyService.cs @@ -2,7 +2,7 @@ using DysonNetwork.Shared.Models; using Microsoft.EntityFrameworkCore; using NodaTime; -namespace DysonNetwork.Pass.Safety; +namespace DysonNetwork.Passport.Safety; public class SafetyService(AppDatabase db, ILogger logger) { diff --git a/DysonNetwork.Pass/Startup/ApplicationConfiguration.cs b/DysonNetwork.Passport/Startup/ApplicationConfiguration.cs similarity index 83% rename from DysonNetwork.Pass/Startup/ApplicationConfiguration.cs rename to DysonNetwork.Passport/Startup/ApplicationConfiguration.cs index 3e1edaea..97644381 100644 --- a/DysonNetwork.Pass/Startup/ApplicationConfiguration.cs +++ b/DysonNetwork.Passport/Startup/ApplicationConfiguration.cs @@ -1,12 +1,12 @@ -using DysonNetwork.Pass.Account; -using DysonNetwork.Pass.Credit; -using DysonNetwork.Pass.Leveling; -using DysonNetwork.Pass.Permission; -using DysonNetwork.Pass.Realm; +using DysonNetwork.Passport.Account; +using DysonNetwork.Passport.Credit; +using DysonNetwork.Passport.Leveling; +using DysonNetwork.Passport.Permission; +using DysonNetwork.Passport.Realm; using DysonNetwork.Shared.Auth; using DysonNetwork.Shared.Networking; -namespace DysonNetwork.Pass.Startup; +namespace DysonNetwork.Passport.Startup; public static class ApplicationConfiguration { diff --git a/DysonNetwork.Pass/Startup/BroadcastEventHandler.cs b/DysonNetwork.Passport/Startup/BroadcastEventHandler.cs similarity index 91% rename from DysonNetwork.Pass/Startup/BroadcastEventHandler.cs rename to DysonNetwork.Passport/Startup/BroadcastEventHandler.cs index 058ff1ca..90987713 100644 --- a/DysonNetwork.Pass/Startup/BroadcastEventHandler.cs +++ b/DysonNetwork.Passport/Startup/BroadcastEventHandler.cs @@ -1,6 +1,6 @@ using DysonNetwork.Shared.Models; -namespace DysonNetwork.Pass.Startup; +namespace DysonNetwork.Passport.Startup; public static class BroadcastEventHandler { diff --git a/DysonNetwork.Pass/Startup/ScheduledJobsConfiguration.cs b/DysonNetwork.Passport/Startup/ScheduledJobsConfiguration.cs similarity index 94% rename from DysonNetwork.Pass/Startup/ScheduledJobsConfiguration.cs rename to DysonNetwork.Passport/Startup/ScheduledJobsConfiguration.cs index 0ad9f77e..a9d66f05 100644 --- a/DysonNetwork.Pass/Startup/ScheduledJobsConfiguration.cs +++ b/DysonNetwork.Passport/Startup/ScheduledJobsConfiguration.cs @@ -1,10 +1,10 @@ -using DysonNetwork.Pass.Account; -using DysonNetwork.Pass.Account.Presences; -using DysonNetwork.Pass.Credit; -using DysonNetwork.Pass.Handlers; +using DysonNetwork.Passport.Account; +using DysonNetwork.Passport.Account.Presences; +using DysonNetwork.Passport.Credit; +using DysonNetwork.Passport.Handlers; using Quartz; -namespace DysonNetwork.Pass.Startup; +namespace DysonNetwork.Passport.Startup; public static class ScheduledJobsConfiguration { diff --git a/DysonNetwork.Pass/Startup/ServiceCollectionExtensions.cs b/DysonNetwork.Passport/Startup/ServiceCollectionExtensions.cs similarity index 92% rename from DysonNetwork.Pass/Startup/ServiceCollectionExtensions.cs rename to DysonNetwork.Passport/Startup/ServiceCollectionExtensions.cs index b438ea36..ab8ccc31 100644 --- a/DysonNetwork.Pass/Startup/ServiceCollectionExtensions.cs +++ b/DysonNetwork.Passport/Startup/ServiceCollectionExtensions.cs @@ -1,26 +1,26 @@ using System.Globalization; -using DysonNetwork.Pass.Account; -using DysonNetwork.Pass.Auth; -using DysonNetwork.Pass.Auth.OpenId; -using DysonNetwork.Pass.Localization; -using DysonNetwork.Pass.Permission; using Microsoft.AspNetCore.RateLimiting; using NodaTime; using NodaTime.Serialization.SystemTextJson; using System.Text.Json; using System.Text.Json.Serialization; -using DysonNetwork.Pass.Account.Presences; -using DysonNetwork.Pass.Affiliation; -using DysonNetwork.Pass.Auth.OidcProvider.Options; -using DysonNetwork.Pass.Auth.OidcProvider.Services; -using DysonNetwork.Pass.Credit; -using DysonNetwork.Pass.Handlers; -using DysonNetwork.Pass.Leveling; -using DysonNetwork.Pass.Mailer; -using DysonNetwork.Pass.Realm; -using DysonNetwork.Pass.Rewind; -using DysonNetwork.Pass.Safety; -using DysonNetwork.Pass.Ticket; +using DysonNetwork.Passport.Account; +using DysonNetwork.Passport.Account.Presences; +using DysonNetwork.Passport.Affiliation; +using DysonNetwork.Passport.Auth; +using DysonNetwork.Passport.Auth.OidcProvider.Options; +using DysonNetwork.Passport.Auth.OidcProvider.Services; +using DysonNetwork.Passport.Auth.OpenId; +using DysonNetwork.Passport.Credit; +using DysonNetwork.Passport.Handlers; +using DysonNetwork.Passport.Leveling; +using DysonNetwork.Passport.Localization; +using DysonNetwork.Passport.Mailer; +using DysonNetwork.Passport.Permission; +using DysonNetwork.Passport.Realm; +using DysonNetwork.Passport.Rewind; +using DysonNetwork.Passport.Safety; +using DysonNetwork.Passport.Ticket; using DysonNetwork.Shared.Auth; using DysonNetwork.Shared.Cache; using DysonNetwork.Shared.Data; @@ -31,8 +31,9 @@ using DysonNetwork.Shared.Queue; using DysonNetwork.Shared.Registry; using DysonNetwork.Shared.Localization; using Microsoft.EntityFrameworkCore; +using DysonNetwork.Shared.Proto; -namespace DysonNetwork.Pass.Startup; +namespace DysonNetwork.Passport.Startup; public static class ServiceCollectionExtensions { @@ -136,13 +137,13 @@ public static class ServiceCollectionExtensions services.AddSingleton(sp => { var assembly = System.Reflection.Assembly.GetExecutingAssembly(); - var resourceNamespace = "DysonNetwork.Pass.Resources.Locales"; + var resourceNamespace = "DysonNetwork.Passport.Resources.Locales"; return new JsonLocalizationService(assembly, resourceNamespace); }); services.AddScoped(sp => { var assembly = System.Reflection.Assembly.GetExecutingAssembly(); - var resourceNamespace = "DysonNetwork.Pass.Resources.Templates"; + var resourceNamespace = "DysonNetwork.Passport.Resources.Templates"; return new DysonNetwork.Shared.Templating.DotLiquidTemplateService(assembly, resourceNamespace); }); services.Configure(configuration.GetSection("GeoIP")); @@ -165,6 +166,10 @@ public static class ServiceCollectionExtensions services.AddScoped(); services.AddScoped(); services.AddScoped(); + services.AddGrpcClientWithSharedChannel( + "https://_grpc.padlock", + "DyAccountService.Padlock"); + services.AddScoped(); services.AddScoped(); services.AddScoped(); diff --git a/DysonNetwork.Pass/Ticket/TicketController.cs b/DysonNetwork.Passport/Ticket/TicketController.cs similarity index 99% rename from DysonNetwork.Pass/Ticket/TicketController.cs rename to DysonNetwork.Passport/Ticket/TicketController.cs index a6fed2a2..d8f8bb5c 100644 --- a/DysonNetwork.Pass/Ticket/TicketController.cs +++ b/DysonNetwork.Passport/Ticket/TicketController.cs @@ -1,13 +1,13 @@ using System.ComponentModel.DataAnnotations; -using DysonNetwork.Pass.Account; -using DysonNetwork.Pass.Permission; +using DysonNetwork.Passport.Account; +using DysonNetwork.Passport.Permission; using DysonNetwork.Shared.Localization; using DysonNetwork.Shared.Models; using DysonNetwork.Shared.Registry; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -namespace DysonNetwork.Pass.Ticket; +namespace DysonNetwork.Passport.Ticket; [ApiController] [Route("/api/tickets")] diff --git a/DysonNetwork.Pass/Ticket/TicketService.cs b/DysonNetwork.Passport/Ticket/TicketService.cs similarity index 98% rename from DysonNetwork.Pass/Ticket/TicketService.cs rename to DysonNetwork.Passport/Ticket/TicketService.cs index 87dbd3f5..c8c16290 100644 --- a/DysonNetwork.Pass/Ticket/TicketService.cs +++ b/DysonNetwork.Passport/Ticket/TicketService.cs @@ -1,11 +1,10 @@ -using DysonNetwork.Pass.Account; using DysonNetwork.Shared.Models; using DysonNetwork.Shared.Proto; using Microsoft.EntityFrameworkCore; using NodaTime; -using AccountService = DysonNetwork.Pass.Account.AccountService; +using AccountService = DysonNetwork.Passport.Account.AccountService; -namespace DysonNetwork.Pass.Ticket; +namespace DysonNetwork.Passport.Ticket; public class TicketService( AppDatabase db, diff --git a/DysonNetwork.Pass/appsettings.json b/DysonNetwork.Passport/appsettings.json similarity index 100% rename from DysonNetwork.Pass/appsettings.json rename to DysonNetwork.Passport/appsettings.json diff --git a/DysonNetwork.Shared/Auth/PerkSubscriptionPrivilege.cs b/DysonNetwork.Shared/Auth/PerkSubscriptionPrivilege.cs index 74f40ea1..ca97a428 100644 --- a/DysonNetwork.Shared/Auth/PerkSubscriptionPrivilege.cs +++ b/DysonNetwork.Shared/Auth/PerkSubscriptionPrivilege.cs @@ -4,7 +4,7 @@ public static class PerkSubscriptionPrivilege { public static int GetPrivilegeFromIdentifier(string identifier) { - // Reference from the DysonNetwork.Pass + // Reference from the DysonNetwork.Passport return identifier switch { "solian.stellar.primary" => 1, diff --git a/DysonNetwork.Shared/Localization/JsonLocalizationService.cs b/DysonNetwork.Shared/Localization/JsonLocalizationService.cs index 83f37af1..97edd4ec 100644 --- a/DysonNetwork.Shared/Localization/JsonLocalizationService.cs +++ b/DysonNetwork.Shared/Localization/JsonLocalizationService.cs @@ -15,7 +15,7 @@ public class JsonLocalizationService : ILocalizationService public JsonLocalizationService(Assembly? assembly = null, string? resourceNamespace = null) { _assembly = assembly ?? Assembly.GetEntryAssembly() ?? Assembly.GetCallingAssembly(); - _resourceNamespace = resourceNamespace ?? "DysonNetwork.Pass.Resources.Locales"; + _resourceNamespace = resourceNamespace ?? "DysonNetwork.Passport.Resources.Locales"; DiscoverAvailableLocales(); } diff --git a/DysonNetwork.Shared/Models/Account.cs b/DysonNetwork.Shared/Models/Account.cs index 8c52b926..fdf808c7 100644 --- a/DysonNetwork.Shared/Models/Account.cs +++ b/DysonNetwork.Shared/Models/Account.cs @@ -24,7 +24,7 @@ public class SnAccount : ModelBase // The ID is the BotAccount ID in the DysonNetwork.Develop public Guid? AutomatedId { get; set; } - public SnAccountProfile Profile { get; set; } = null!; + public SnAccountProfile? Profile { get; set; } public List Contacts { get; set; } = []; public List Badges { get; set; } = []; diff --git a/DysonNetwork.Shared/Templating/DotLiquidTemplateService.cs b/DysonNetwork.Shared/Templating/DotLiquidTemplateService.cs index c5cc0cc3..db448ba9 100644 --- a/DysonNetwork.Shared/Templating/DotLiquidTemplateService.cs +++ b/DysonNetwork.Shared/Templating/DotLiquidTemplateService.cs @@ -14,7 +14,7 @@ public class DotLiquidTemplateService : ITemplateService public DotLiquidTemplateService(Assembly? assembly = null, string? resourceNamespace = null) { _assembly = assembly ?? Assembly.GetEntryAssembly() ?? Assembly.GetCallingAssembly(); - _resourceNamespace = resourceNamespace ?? "DysonNetwork.Pass.Resources.Templates"; + _resourceNamespace = resourceNamespace ?? "DysonNetwork.Passport.Resources.Templates"; DiscoverAvailableLocales(); PreloadTemplates(); diff --git a/DysonNetwork.sln b/DysonNetwork.sln index 5f3682b4..36588ef1 100644 --- a/DysonNetwork.sln +++ b/DysonNetwork.sln @@ -7,7 +7,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution compose.yaml = compose.yaml EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DysonNetwork.Pass", "DysonNetwork.Pass\DysonNetwork.Pass.csproj", "{A8F37E9E-52A4-4159-8227-F2F65CBA0606}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DysonNetwork.Passport", "DysonNetwork.Passport\DysonNetwork.Passport.csproj", "{A8F37E9E-52A4-4159-8227-F2F65CBA0606}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DysonNetwork.Shared", "DysonNetwork.Shared\DysonNetwork.Shared.csproj", "{DB46D1A6-79B4-43FC-A9A9-115CDA26947A}" EndProject