Skip to content

test(persona): MEMBER Login-only ESS HTTP is 200; payroll runs 403 - #910

Draft
jason931225 wants to merge 2 commits into
mainfrom
lane/persona-ess-http
Draft

test(persona): MEMBER Login-only ESS HTTP is 200; payroll runs 403#910
jason931225 wants to merge 2 commits into
mainfrom
lane/persona-ess-http

Conversation

@jason931225

Copy link
Copy Markdown
Collaborator

Draft. Independent review required before merge.

Candidate SHA: 5f79af7766ef3b5220f5317a8f9d83ae189e7763
Base: 2f99f9ea26b0813e8962c22a2e74f6376530e69b (origin/main)

MEMBER JWT Login-only (empty feature_grants: no PayrollRunRead, no AttendanceExceptionManage) on the assembled router:

  • GET /api/v1/me/inbox-docs?filter=payslip → 200 (empty or own docs), not 403
  • GET /api/v1/attendance/me/exceptions → 200, not 403 (date selector is list validation, not an authz grant)
  • GET /api/v1/payroll/runs → 403

Status lock only. Does not duplicate #900 payslip emit. Does not edit attendance_persona_api.rs, action_inbox_api.rs, or inbox/rest/tests/api.rs. Cargo auto-discovers backend/app/tests/persona_ess_http.rs; Cargo.toml/lock untouched.

Lease: backend/app/tests/persona_ess_http.rs only. Disjoint from identity/directory (#897/#908/#909), canonical adapters (#898), action-inbox (#899), inbox-payslip-filter (#900), attendance personas (#903), auth cookies (#904), FE/UI (#905), and attendance CONFIRM parse (#907).

Tests

SQLX_OFFLINE=true tools/lanes/pgtest.sh . cargo test --locked -p console-app --test persona_ess_http -- --test-threads=1 --nocapture

discovered 1, executed 1, passed 1.

HOLDs

merge-tree --write-tree (all exit 0)

  • vs origin/main
  • vs PR 897 c9d8c558
  • vs PR 898 e390a25e
  • vs PR 899 f861f715
  • vs PR 900 152ca5cb
  • vs PR 903 5d30ddec
  • vs PR 904 e5164a42
  • vs PR 905 0c2b572c
  • vs PR 907 b3dccd2b
  • vs PR 908 44dbf184
  • vs PR 909 d8100a9b

Blast radius / rollback

  • New integration test file only. Rollback is revert of this commit. No schema, lockfile, OpenAPI, CI, or runtime change.

No merge.

Draft. Status lock only: inbox-docs?filter=payslip and
attendance/me/exceptions 200 without PayrollRunRead or
AttendanceExceptionManage; payroll/runs 403. Does not emit a
payslip (see #900). New sqlx binary console-app --test
persona_ess_http. executed-tests-baseline.json HOLD (#905).
Base 2f99f9e. Independent review before merge.
Extend member_login_only_ess_is_200_and_payroll_runs_are_403: GET
/payroll/payslips/me is 200 (self-scoped readiness, no won keys;
unlinked empty page ok) and GET /attendance/me/week52 is 200
(Monday; unlinked status=not_available, projection omitted). Keep
payroll/runs 403 and empty feature_grants. Does not emit a payslip
(#900). executed-tests-baseline.json HOLD (#905). Independent
review before merge.
@jason931225

Copy link
Copy Markdown
Collaborator Author

Status after working the 16-PR queue:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant