Merge pull request 'Le créateur vient de l'authentification, donc on ne le prend pas du post' (#10) from fix/OIDC-debugging into main
Some checks failed
Dotnet build and test / log-the-inputs (push) Has been cancelled
Dotnet build and test / build (push) Has been cancelled

Reviewed-on: #10
This commit is contained in:
Paul Schneider 2026-08-02 23:04:09 +01:00
commit ead74b7cff
3 changed files with 23 additions and 13 deletions

27
.vscode/tasks.json vendored
View file

@ -13,16 +13,17 @@
"isBackground": true "isBackground": true
}, },
{ {
"label": "build-web", "label": "test blogs backend",
"type": "process", "type": "process",
"problemMatcher": ["$msCompile"], "problemMatcher": ["$msCompile"],
"command": "dotnet", "command": "dotnet",
"args": ["build"], "args": ["test"],
"options": { "options": {
"cwd": "src/Yavsc.Org" "cwd": "src/Yavsc.Blogs.Tests"
}, },
"group": { "group": {
"kind": "build" "kind": "test",
"isDefault": false
} }
}, },
{ {
@ -40,17 +41,23 @@
"isBackground": true "isBackground": true
}, },
{ {
"label": "build-web", "label": "test blogs",
"type": "process", "type": "process",
"problemMatcher": ["$msCompile"], "problemMatcher": ["$msCompile"],
"command": "dotnet", "command": "dotnet",
"args": ["build"], "args": ["test"],
"runOptions": {}, "runOptions": {
"instanceLimit": 1
},
"options": { "options": {
"cwd": "src/Yavsc.Web" "cwd": "src/Yavsc.Blogs",
"env": {
"DOTNET_CLI_UI_LANGUAGE": "en-US",
"ASPNETCORE_ENVIRONMENT": "Development"
}
}, },
"group": { "group": {
"kind": "build" "kind": "test"
}, },
"isBackground": true, "isBackground": true,
"presentation": { "presentation": {
@ -82,7 +89,7 @@
], ],
"problemMatcher": "$msCompile", "problemMatcher": "$msCompile",
"runOptions": { "runOptions": {
} }
} }

View file

@ -114,7 +114,8 @@ namespace Yavsc.Blogs.Controllers
var files = Request.HasFormContentType var files = Request.HasFormContentType
? Request.Form.Files ? Request.Form.Files
: (IFormFileCollection)new FormFileCollection(); : (IFormFileCollection)new FormFileCollection();
var post = blogSpotService.Create(User.GetUserId(), blog, files); var uid = User.GetUserId();
var post = blogSpotService.Create(uid, blog, files);
return CreatedAtRoute("GetBlog", new { id = post.Id }, post); return CreatedAtRoute("GetBlog", new { id = post.Id }, post);
} }

View file

@ -29,6 +29,8 @@ public class BlogSpotService
public BlogPost Create(string userId, BlogPost post, IFormFileCollection files) public BlogPost Create(string userId, BlogPost post, IFormFileCollection files)
{ {
// Sauvegarder le post d'abord pour obtenir son ID // Sauvegarder le post d'abord pour obtenir son ID
// Le créateur vient de l'authentification, donc on ne le prend pas du post
post.AuthorId = userId;
_context.BlogSpot.Add(post); _context.BlogSpot.Add(post);
_context.SaveChanges(userId); _context.SaveChanges(userId);
@ -94,9 +96,9 @@ public class BlogSpotService
if (!auth.Succeeded) if (!auth.Succeeded)
{ {
throw new AuthorizationFailureException(auth); throw new AuthorizationFailureException(auth);
} }
var pub = await _context.blogSpotPublications.AnyAsync(x => x.BlogpostId == blog.Id); var pub = await _context.blogSpotPublications.AnyAsync(x => x.BlogpostId == blog.Id);
return new BlogPostEditViewModel(blog, pub); return new BlogPostEditViewModel(blog, pub);
} }