feat: add Role (owner|admin) to the user domain, persistence model and mapper

This commit is contained in:
fsylvain committed 2026-09-30 00:58:58 +02:00
1 parent 162fea4afb
commit 461e93e3b5
30 files changed
+791 -48

No files matched your search

+6 -6
View File
@@ -11,8 +11,8 @@ Feature: A logged-in user fetches their own public profile without triggering th
Background:
Given the public user struct and its converter, shared by the auth and user handlers from a
package under api/pkg (features/user_display_name.feature), exactly the JSON shape
POST /v1/auth/verify returns: id, username, email, is_verified, created_at, updated_at and
display_name
POST /v1/auth/verify returns: id, username, email, is_verified, created_at, updated_at,
display_name and role
And this slice adds GET /v1/auth/me, handled by a new MeHandler (api/handlers/auth/meHandler.go)
built with NewMeHandler(container.GetUserUseCase), the same GetUserUseCase every other
protected handler already gets from api/dependecyInjection.go; no new use case or domain
@@ -43,23 +43,23 @@ Feature: A logged-in user fetches their own public profile without triggering th
Scenario: A verified user fetches their own profile
Given a user repository containing user id 7, username "alice", email "alice@example.com",
is_verified true, TokenVersion 0
is_verified true, role "owner", TokenVersion 0
And a valid jwt cookie for user id 7 encoding token_version 0
When the client sends GET /v1/auth/me with that cookie
Then the response status is 200
And the response header Cache-Control is "no-store"
And the response body is the user as JSON with id 7, username "alice", email
"alice@example.com", is_verified true
"alice@example.com", is_verified true, role "owner"
Scenario: An unverified user still fetches their own profile, with is_verified false, not a 403
Given a user repository containing user id 8, username "bob", email "bob@example.com",
is_verified false, TokenVersion 0
is_verified false, role "owner", TokenVersion 0
And a valid jwt cookie for user id 8 encoding token_version 0
When the client sends GET /v1/auth/me with that cookie
Then the response status is 200
And the response header Cache-Control is "no-store"
And the response body is the user as JSON with id 8, username "bob", email "bob@example.com",
is_verified false
is_verified false, role "owner"
Scenario: No jwt cookie at all is refused
Given a user repository containing user id 7, username "alice", is_verified true, TokenVersion 0