Commit graph

160 commits

Author SHA1 Message Date
10fdcb288c
unique email handling 2026-09-07 10:58:20 +01:00
229971783a
code reorg 2026-09-07 10:30:45 +01:00
703757d326 handles duplicate email at register 2026-09-06 19:47:38 +01:00
ad5e9090ee fix(api): harden billing/blog validation and update rc14 changelog 2026-09-06 19:16:41 +01:00
c4f65f664b setup the avatar 2026-09-04 20:25:06 +01:00
138467496f Fix set-avatar auth flow and API avatar upload stability 2026-09-04 19:03:08 +01:00
a72b0cba7b ensure the avatar path 2026-09-04 15:08:35 +01:00
92da2e1369 chore(deps): cleanup Yavsc.Org restore package configuration 2026-08-31 13:29:12 +01:00
f992916d08 set your activity country
All checks were successful
Forgejo Release / release (push) Successful in 7m15s
2026-08-31 05:40:34 +01:00
8b9a9103fc Release 1.0.8-rc10 2026-08-31 04:45:39 +01:00
6826d345a9 code cleanup 2026-08-31 03:09:49 +01:00
3c51e66e50 Exploration des activités 2026-08-31 02:14:04 +01:00
8d7bb8f6b6 An activity interface 2026-08-30 23:55:09 +01:00
9e0908e126 load the ACL 2026-08-30 19:37:55 +01:00
6cd5346101 chore(release): bump version via gitversion for 1.0.8-rc8 2026-08-29 19:10:37 +01:00
82e9d9023c Validation de l’email d’inscription ajoutée
Vvalidation au point le plus sûr : le modèle de formulaire, avec un garde-fou côté contrôleur pour normaliser la valeur avant création du compte.

* Ajout de [EmailAddress] dans RegisterModel.cs
* Nettoyage de model.Email avec Trim() avant le ModelState.IsValid dans AccountController.cs
* Ajout d’un test de régression dans EMailling.cs

Additionnellement, le job de test est corrigé pour laisser vivre le test en plateforme Android, hors CI
2026-08-29 16:23:58 +01:00
c23e62c4c0 chore(release): bump version via gitversion for 1.0.8-rc7 2026-08-29 15:43:53 +01:00
a426c47006 Merge branch 'fix/postit-acl-and-pub' into release/1.0.8-rc6 2026-08-29 15:42:12 +01:00
447bbe49dc /bin/bash: ligne 1: q : commande introuvable 2026-08-29 15:37:13 +01:00
9db5d8116d chore(release): bump version via gitversion for 1.0.8-rc6 2026-08-29 09:50:07 +01:00
729c364702 -MsBuild.GitVersion 2026-08-29 00:52:29 +01:00
0c0aa9d2c9 reference my upstream 2026-08-28 23:35:06 +01:00
1cc705bfbd fixes the 404 on the Details button 2026-08-28 20:57:52 +01:00
34d7ac8947 chore(release): bump version via gitversion for 1.0.8-rc4 2026-08-26 23:08:23 +01:00
3206523365 Merge branch 'feat/ui-testing' into release/1.0.8-rc3 2026-08-23 23:26:59 +01:00
569ed6b304 chore(release): bump version via gitversion for 1.0.8-rc3 2026-08-23 23:19:48 +01:00
4596206e3d more reliable 2026-08-23 18:34:34 +01:00
a70d2f789e sdk version bump 2026-08-22 16:58:08 +01:00
ca9e78fb6f test(org): isolate in-memory store per fixture
TestWebApplicationFactory instances shared the same in-memory database
because EF Core's UseInMemoryDatabase("InMemory") returns the same
backing store to every DbContext that asks for it under the same
connection string, in the same process. Whichever fixture started
first defined the state, and every subsequent fixture inherited it,
making tests silently order-dependent and flaky.

Fix:

- Yavsc.Tests.Shared/InMemoryDatabaseName: helper that suffixes the
  in-memory connection string with a per-fixture GUID.
- TestWebApplicationFactory: instance GUID + ConnectionStrings__
  YavscConnection set as an environment variable in the constructor
  and cleared in Dispose, so each factory gets its own backing store.
  Env var is needed because IdentityServer8.EntityFramework exposes
  ConfigureDbContext as Action<DbContextOptionsBuilder> with no
  service-provider access, so the connection string is captured at
  registration time. AddEnvironmentVariables is the last provider in
  the config pipeline and wins regardless.
- WebServerFixture: process-static GUID (WebHostFixture is a
  per-process singleton by design, so the test collection shares one
  store; the GUID still isolates from TestWebApplicationFactory).
- AddIdentityDBAndStores: read the connection string at DbContext
  construction time via the (sp, options) overload of AddDbContext,
  so test fixtures can override it via the host's IConfiguration.
  IdentityServer stores cannot do the same without subclassing the
  framework's DbContexts; the env var path is the documented escape
  hatch in HostingExtensions.AddIdentityServer.
- UsesInMemoryProvider: StartsWith instead of equality, so
  'InMemory-{guid}' is still recognised as an in-memory connection
  string.

Regression sentinel in
Controllers/TestWebApplicationFactoryIsolationTests: two factories
seed a marker client in the first, the second must not see it.

Suite: 45/45 over 3 stable runs, 13-15s each.
2026-08-22 04:36:52 +01:00
b679707b83 using clauses cleanup 2026-08-22 03:34:48 +01:00
0d089bf28c remove dead 'Comment' field from CircleAuthorizationToBlogPost
The bool Comment on CircleAuthorizationToBlogPost was dead code:
never read or written by any caller in src/, no UI exposure, no
behavioural semantics. The wire DTO (CircleAuthorization in
Yavsc.Abstract) doesn't carry it, no reader consumes it, and the
PostIt client builds its payload without it.

What changes:
- src/Yavsc.Server/Models/Access/CircleAuthorizationToBlogPost.cs:
  remove the property.
- src/Yavsc.Blogs.Tests/BlogAclApiTests.cs: drop 'Comment = true'
  from the existing test payload and trim the now-inaccurate XML
  doc comment ('CircleId + BlogPostId + Comment' -> 'CircleId +
  BlogPostId'). Also adds a new [Fact] pinning the prod bug
  reported on 2026-08-21 (HTTP 500 'BlogPostId is unknown' when
  PostIt POSTs the bare { circleId } shape). That test stays red:
  the real fix for the 500 is in PostIt (payload needs blogPostId)
  + on the wire DTO + server-side validation, and lives in a
  follow-up commit.

Migration:
- src/Yavsc.Org/Migrations/20260820232152_DropCommentFromCircleAuthorizationToBlogPost
  drops the boolean 'Comment' column on CircleAuthorizationToBlogPost.
  The generated scaffold also wanted to drop three 'ClientId1'
  shadow FK columns on ClientScopes / ClientRedirectUris /
  ClientGrantTypes (from leftover HasOne<Client>() overrides in
  ApplicationDbContext.OnModelCreating); those were removed from
  the .cs to keep the migration scoped to this fix. Cleaning up the
  shadow property declarations themselves is left as a separate
  task.

The ModelSnapshot still reflects the shadow 'ClientId1' columns
intentionally: they exist in the prod database today (all NULL),
and EF will rescaffold a drop migration for them on the next
'migrations add' regardless. No data loss.
2026-08-21 00:27:27 +01:00
ec901e1f10 refacto API prefix + nav.back 2026-08-20 20:50:52 +01:00
bd521fdbff fixes the compilation 2026-08-19 15:45:49 +01:00
b95dc3a800 refacto BlogPost 2026-08-19 14:19:45 +01:00
ed058c2e42 chore(release): bump version via gitversion for 1.0.8-rc1 2026-08-18 19:18:36 +01:00
ae1ae471d7 chore(release): bump version via gitversion for 1.0.7-rc1 2026-08-18 17:20:59 +01:00
fa886be84f Add comments API support and tests 2026-08-10 22:27:52 +01:00
66fcdc68d4 Fix blog comment endpoint path and add regression test 2026-08-10 21:48:03 +01:00
633a305c35 Activity protection 2026-08-10 18:12:59 +01:00
0a76784858 refacto BlogPost serialization 2026-08-05 21:05:14 +01:00
17e33ebea9 build 2026-08-03 02:16:57 +01:00
d8ee77b9de refacto error handling 2026-07-12 17:56:23 +01:00
96d175f13d Hsts 2026-07-12 16:27:13 +01:00
3b3635758b org: show full error details in development 2026-07-12 16:07:28 +01:00
afcb6167e6 Localisation 2026-07-12 15:18:07 +01:00
fd773529ff Audiences 2026-07-12 15:17:53 +01:00
0957efb876 code format 2026-07-12 15:17:41 +01:00
41dadc7909 Merge remote-tracking branch 'origin/main' into fic/jwt-validation 2026-07-12 06:12:19 +01:00
c129a1f9e3 ? 2026-07-12 04:36:35 +01:00
3febd63b06 WIP audiences 2026-07-12 02:42:13 +01:00