feat(dev): DEV_AUTH에 ?as=<email> 임포서네이션 (로컬 멀티유저 QA용)
All checks were successful
build-and-push / build (push) Successful in 33s
All checks were successful
build-and-push / build (push) Successful in 33s
- devAuth일 때만 동작 → prod(devAuth=false) 무영향 - ?as=user(고정 데모) 외에 ?as=<이메일>로 해당 구성원 가장, 관리자 여부는 Member.Role로 결정 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
4dac89e313
commit
7e32e0f22b
@ -41,10 +41,19 @@ func authMiddleware(devAuth bool, adminGroups []string) func(http.Handler) http.
|
|||||||
if devAuth {
|
if devAuth {
|
||||||
u = devUser
|
u = devUser
|
||||||
// Local dev runs as a super-admin so every screen is reachable.
|
// Local dev runs as a super-admin so every screen is reachable.
|
||||||
// Append ?as=user to any request to simulate a non-admin member.
|
// ?as=user → 고정 데모 구성원(비관리자)
|
||||||
u.IsSuperAdmin = r.URL.Query().Get("as") != "user"
|
// ?as=<email> → 그 이메일의 구성원으로 가장(로컬 멀티유저 테스트용;
|
||||||
if !u.IsSuperAdmin {
|
// 관리자 여부는 그 Member.Role로 결정)
|
||||||
|
as := strings.TrimSpace(r.URL.Query().Get("as"))
|
||||||
|
switch {
|
||||||
|
case as == "":
|
||||||
|
u.IsSuperAdmin = true
|
||||||
|
case as == "user":
|
||||||
u = User{ID: "u-member", Name: "김주임", Email: "member@special-partners.com", Role: "주임", Groups: []string{"user"}}
|
u = User{ID: "u-member", Name: "김주임", Email: "member@special-partners.com", Role: "주임", Groups: []string{"user"}}
|
||||||
|
case strings.Contains(as, "@"):
|
||||||
|
u = User{ID: "u-" + as, Name: as, Email: as, Groups: []string{"user"}}
|
||||||
|
default:
|
||||||
|
u.IsSuperAdmin = true
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
var ok bool
|
var ok bool
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user