Commit Graph

26 Commits

Author SHA1 Message Date
mihretue
baea9f2b57 chore(dev): serve the portal on 3000 for the Fayda redirect
The Fayda redirect URI registered for local testing is
http://localhost:3000/callback, matched exactly by the provider, so the portal
has to be the thing listening there. Its dev and preview servers move from 4200
to 3000 and the API moves to 3001.

Every hardcoded fallback to http://localhost:3000/api follows — six copies of
the same default across libs/api, libs/auth, the portal and the backoffice —
otherwise a developer without a .env would have had the app calling itself.

e2e is unaffected: it binds its own ports (3011/4302/4303) explicitly.
2026-08-25 19:04:27 +00:00
mihretue
c4c84abc66 refactor(signup): drive Fayda through register-with-fayda
Follows the API back to a single endpoint. The page posts { action: 'start' }
to open the attempt, the callback page posts { action: 'verify', ... } to get
the verified identity, and the existing signup submission is unchanged.

Drops the post-signup link call: there is no longer a link endpoint, and the
account is created by the signup endpoint that already owns user creation.
2026-08-25 13:01:40 +00:00
mihretue
933ba41476 feat(signup): verify identity with Fayda and prefill the form
Adds "Continue with Fayda" to the existing signup page. It is an alternative
way to fill the form, not a second signup: the applicant still submits to
/auth/signup-with-pwd through the same schema, the same validation and the same
redirect to OTP verification, and signing up without Fayda is unchanged.

The page asks the API for an authorization URL, keeps the returned handle and
state in sessionStorage for the round trip, and FaydaCallbackPage hands the
code back to /auth/fayda/callback. No Fayda protocol logic lives here — the
PKCE verifier, the client key and the token exchange stay on the server. Once
the account exists the page posts the verification token to /auth/fayda/link so
the identity is recorded against it; that call is best-effort, since the
account is already usable without it.

Prefilled fields carry a "From Fayda" badge and stay editable, and a value
that already belongs to another account is badged as such so the applicant can
see which one to change rather than reading a single opaque signup error.
Cancellation, an expired session, a mismatched state and an incomplete callback
each get their own message.

Amharic strings are a first pass and want a native speaker's review.
2026-08-25 12:30:57 +00:00
mihretue
e94ecb3a71 Merge remote-tracking branch 'origin/WorkflowChange' into feature/exam-attempt-domain 2026-08-21 06:58:57 +00:00
mihretue
c0b5871dc3 Merge remote-tracking branch 'origin/WorkflowChange' into feature/exam-attempt-domain
# Conflicts:
#	apps/portal/src/app/features/exams/pages/ExamsPage/columns.tsx
#	apps/portal/src/app/features/exams/pages/ExamsPage/index.tsx
#	libs/api/src/lib/features/licensing/licensing.helpers.ts
#	libs/auth/src/lib/components/AuthBootstrap.tsx
2026-08-20 11:41:06 +00:00
estifanos
a424be5f6c test files 2026-08-20 07:33:25 +00:00
estifanos
ec28f6456d feat: implement ActiveSessions component and JWT session tracking to manage user device access 2026-08-19 11:00:20 +00:00
estifanos
4e2f63d4df feat: implement cross-tab idle session timeout and add request collapsing to token refresh logic. 2026-08-19 09:29:02 +00:00
estifanos
1eeb4c5cc3 feat: implement concurrent-safe token refreshing with session-aware error handling 2026-08-19 09:00:05 +00:00
mihretue
1da86a73a9 Merge branch 'feature/exam-attempt-domain' of github.com:Tria-plc/emaui into feature/exam-attempt-domain 2026-08-17 11:51:33 +03:00
nati14575
c698f381b9 fix(api): update BASE_API_URL to use localhost:3000 for consistency 2026-08-17 09:58:51 +03:00
Estifo77
4fc73b0567 feat(i18n): update medical verification label to include sea service verification
fix(layouts): import baseApi in BackofficeLayout and PortalLayout for API state management

refactor(auth): remove clearCurrentProfile call on logout and improve cookie removal logic

chore(auth-storage): enhance cookie management with secure and sameSite attributes, and streamline cleanup process
2026-08-10 14:42:21 +03:00
Estifo77
5889ee2105 Merge branch 'dev' of https://github.com/Tria-plc/emaui into estif-branch-1 2026-08-03 09:26:04 +03:00
Estifo77
7692730642 fixes 2026-08-01 11:24:18 +03:00
estifanos
cdb5812124 feat: enhance cookie removal logic to clear all cookies on storage clear 2026-08-01 07:55:16 +00:00
Muluhabt
5161e278ce Adding license generation functionality 2026-07-29 16:53:50 +03:00
Estifo77
7e2186e758 feat: implement Telebirr payment API and types, enhance auth storage with token management 2026-07-23 14:32:30 +03:00
Estifo77
7191bc6791 refactor: standardize import quotes and improve cookie management in auth storage 2026-07-22 14:46:38 +03:00
estifanos
a76549b018 feat: migrate authentication storage to use js-cookie for improved token management 2026-07-22 09:51:00 +00:00
Estifo77
e862d5cd8e Merge branch 'estif-branch-1' of https://github.com/Tria-plc/emaui into estif-branch-1 2026-07-22 12:38:40 +03:00
Estifo77
2c2464d12a test 2026-07-22 12:32:38 +03:00
estifanos
75220e2b9a feat: update authentication storage to use cookies and improve token retrieval 2026-07-22 09:31:10 +00:00
mengstabketemaw
c46747c98e feat: refactor department to organization and move certifications to configuration tab commit 2026-06-29 15:57:42 +03:00
mengstabketemaw
f876d57219 feat: change usermanagement from git submodule to componenet based 2026-06-23 11:10:35 +03:00
mengstabketemaw
2feaaf1ee4 update usermanagement to legacy mode 2026-06-18 11:25:26 +03:00
mengstabketemaw
de6d5a01cb move login to common ui 2026-06-13 11:21:32 +03:00