From f0c64f3c4c600cf873aa85d8127dae66d6c8364b Mon Sep 17 00:00:00 2001 From: mengstabketemaw Date: Fri, 5 Jun 2026 16:25:50 +0300 Subject: [PATCH] remove backoffice custom authentication --- apps/backoffice/public/assets/emaLogo.jpg | Bin 0 -> 90984 bytes .../src/app/features/auth/api/auth-api.ts | 28 ---- .../features/auth/components/LoginForm.tsx | 86 ---------- .../src/app/features/auth/hooks/useAuth.ts | 17 -- .../src/app/features/auth/pages/LoginPage.tsx | 1 - .../features/auth/pages/SetPasswordPage.tsx | 1 - .../app/features/auth/pages/SignupPage.tsx | 153 ------------------ .../src/app/features/auth/store/auth.slice.ts | 42 ----- .../features/auth/store/set-password.slice.ts | 42 ----- .../app/features/auth/store/signup.slice.ts | 41 ----- .../src/app/features/auth/types/auth.types.ts | 19 --- .../app/features/auth/utils/auth-storage.ts | 51 ------ apps/backoffice/src/app/store/index.ts | 6 - apps/backoffice/src/main.tsx | 36 +++++ libs/api/src/lib/query-and-mutation/index.ts | 4 +- 15 files changed, 38 insertions(+), 489 deletions(-) create mode 100644 apps/backoffice/public/assets/emaLogo.jpg delete mode 100644 apps/backoffice/src/app/features/auth/api/auth-api.ts delete mode 100644 apps/backoffice/src/app/features/auth/components/LoginForm.tsx delete mode 100644 apps/backoffice/src/app/features/auth/hooks/useAuth.ts delete mode 100644 apps/backoffice/src/app/features/auth/pages/LoginPage.tsx delete mode 100644 apps/backoffice/src/app/features/auth/pages/SetPasswordPage.tsx delete mode 100644 apps/backoffice/src/app/features/auth/pages/SignupPage.tsx delete mode 100644 apps/backoffice/src/app/features/auth/store/auth.slice.ts delete mode 100644 apps/backoffice/src/app/features/auth/store/set-password.slice.ts delete mode 100644 apps/backoffice/src/app/features/auth/store/signup.slice.ts delete mode 100644 apps/backoffice/src/app/features/auth/types/auth.types.ts delete mode 100644 apps/backoffice/src/app/features/auth/utils/auth-storage.ts diff --git a/apps/backoffice/public/assets/emaLogo.jpg b/apps/backoffice/public/assets/emaLogo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..92310f68273d5d558d5be02b2689387acbd0cef7 GIT binary patch literal 90984 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
  • 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 ({ - login: builder.mutation({ - query: (body) => ({ url: '/auth/login', method: 'POST', body }), - }), - refresh: builder.mutation<{ token: string }, RefreshArgs>({ - query: (body) => ({ url: '/auth/refresh', method: 'POST', body }), - }), - logout: builder.mutation<{ message: string }, void>({ - query: () => ({ url: '/auth/logout', method: 'POST' }), - }), - }), - overrideExisting: false, -}); - -export const { useLoginMutation, useRefreshMutation, useLogoutMutation } = authApi; diff --git a/apps/backoffice/src/app/features/auth/components/LoginForm.tsx b/apps/backoffice/src/app/features/auth/components/LoginForm.tsx deleted file mode 100644 index 57e463101..000000000 --- a/apps/backoffice/src/app/features/auth/components/LoginForm.tsx +++ /dev/null @@ -1,86 +0,0 @@ -import { - TextInput, - PasswordInput, - Button, - Stack, - Title, - Paper, - Text, - Anchor, -} from '@mantine/core'; -import { useForm } from 'react-hook-form'; -import { zodResolver } from '@hookform/resolvers/zod'; -import { z } from 'zod'; -import { useNavigate, Link } from 'react-router-dom'; -import { useLoginMutation } from '../api/auth-api'; -import { useAuth } from '../hooks/useAuth'; -import { notify } from '@ema-platform/ui'; - -const schema = z.object({ - email: z.string().email('Enter a valid email'), - password: z.string().min(6, 'Password must be at least 6 characters'), -}); - -type FormValues = z.infer; - -export function LoginForm() { - const navigate = useNavigate(); - const { login } = useAuth(); - const [loginMutate, { isLoading }] = useLoginMutation(); - - const { - register, - handleSubmit, - formState: { errors }, - } = useForm({ - resolver: zodResolver(schema), - }); - - const onSubmit = async (values: FormValues) => { - try { - const result = await loginMutate(values).unwrap(); - login(result); - navigate('/dashboard'); - } catch { - notify.error('Invalid email or password'); - } - }; - - return ( - - - - Sign in - - Enter your credentials to access the backoffice - - -

    - - - - - - - - Don't have an account?{' '} - - Sign up - - - - - ); -} diff --git a/apps/backoffice/src/app/features/auth/hooks/useAuth.ts b/apps/backoffice/src/app/features/auth/hooks/useAuth.ts deleted file mode 100644 index b1a7924d2..000000000 --- a/apps/backoffice/src/app/features/auth/hooks/useAuth.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { useAppDispatch, useAppSelector } from '../../../store/hooks'; -import { loginSuccess, logout as logoutAction, hydrateAuth } from '../store/auth.slice'; -import type { LoginPayload } from '../types/auth.types'; - -export function useAuth() { - const dispatch = useAppDispatch(); - const { user, token, isAuthenticated } = useAppSelector((s) => s.auth); - - return { - user, - token, - isAuthenticated, - login: (payload: LoginPayload) => dispatch(loginSuccess(payload)), - logout: () => dispatch(logoutAction()), - hydrate: () => dispatch(hydrateAuth()), - }; -} diff --git a/apps/backoffice/src/app/features/auth/pages/LoginPage.tsx b/apps/backoffice/src/app/features/auth/pages/LoginPage.tsx deleted file mode 100644 index 2ca197106..000000000 --- a/apps/backoffice/src/app/features/auth/pages/LoginPage.tsx +++ /dev/null @@ -1 +0,0 @@ -export { Login as LoginPage } from '@tria-plc/iamui-common'; diff --git a/apps/backoffice/src/app/features/auth/pages/SetPasswordPage.tsx b/apps/backoffice/src/app/features/auth/pages/SetPasswordPage.tsx deleted file mode 100644 index d8143fe06..000000000 --- a/apps/backoffice/src/app/features/auth/pages/SetPasswordPage.tsx +++ /dev/null @@ -1 +0,0 @@ -export { SetPasswordPage } from '@tria-plc/iamui-common'; diff --git a/apps/backoffice/src/app/features/auth/pages/SignupPage.tsx b/apps/backoffice/src/app/features/auth/pages/SignupPage.tsx deleted file mode 100644 index 05ce9eae0..000000000 --- a/apps/backoffice/src/app/features/auth/pages/SignupPage.tsx +++ /dev/null @@ -1,153 +0,0 @@ -import { - Paper, - TextInput, - Button, - Stack, - Title, - Text, - Anchor, -} from '@mantine/core'; -import { useForm } from 'react-hook-form'; -import { zodResolver } from '@hookform/resolvers/zod'; -import { z } from 'zod'; -import { useNavigate, Link } from 'react-router-dom'; -import { useAppDispatch, useAppSelector } from '../../../store/hooks'; -import { signupStart, signupSuccess, signupFailure } from '../store/signup.slice'; -import { hydrateAuth } from '../store/auth.slice'; -import { authStorage } from '../utils/auth-storage'; -import { notify } from '@ema-platform/ui'; - -const BASE_API_URL = - (import.meta as { env?: Record }).env?.['VITE_BASE_API_URL'] ?? - 'http://localhost:3001/api'; - -const schema = z.object({ - email: z.string().email('Enter a valid email'), - username: z.string().min(3, 'Username must be at least 3 characters'), - phoneNumber: z.string().min(1, 'Phone number is required'), - userType: z.string().min(1, 'User type is required'), - name: z.string().min(1, 'Name is required'), -}); - -type FormValues = z.infer; - -interface SignupPayload { - email: string; - username: string; - phoneNumber: string; - userType: string; - name: { - am: string; - en: string; - }; -} - -export function SignupPage() { - const navigate = useNavigate(); - const dispatch = useAppDispatch(); - const { loading } = useAppSelector((s) => s.signup); - - const { - register, - handleSubmit, - formState: { errors }, - } = useForm({ - resolver: zodResolver(schema), - }); - - const onSubmit = async (values: FormValues) => { - dispatch(signupStart()); - try { - const payload: SignupPayload = { - email: values.email, - username: values.username, - phoneNumber: values.phoneNumber, - userType: values.userType, - name: { - am: '', - en: values.name, - }, - }; - - const res = await fetch(`${BASE_API_URL}/auth/signup`, { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify(payload), - }); - - if (!res.ok) { - const errorData = await res.json().catch(() => null); - throw new Error(errorData?.message ?? 'Signup failed'); - } - - const data = (await res.json()) as { token: string; refreshToken: string }; - - authStorage.setToken(data.token); - authStorage.setRefreshToken(data.refreshToken); - dispatch(hydrateAuth()); - dispatch(signupSuccess()); - - navigate('/set-password', { state: { email: values.email } }); - } catch (err) { - const msg = err instanceof Error ? err.message : 'Something went wrong'; - dispatch(signupFailure(msg)); - notify.error(msg); - } - }; - - return ( - - - - Create an account - - Fill in your details to get started - - -
    - - - - - - - - -
    - - Already have an account?{' '} - - Sign in - - -
    -
    - ); -} diff --git a/apps/backoffice/src/app/features/auth/store/auth.slice.ts b/apps/backoffice/src/app/features/auth/store/auth.slice.ts deleted file mode 100644 index 5c9dbb9fb..000000000 --- a/apps/backoffice/src/app/features/auth/store/auth.slice.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { createSlice, type PayloadAction } from '@reduxjs/toolkit'; -import type { AuthState, LoginPayload } from '../types/auth.types'; -import { authStorage } from '../utils/auth-storage'; - -const initialState: AuthState = { - user: null, - token: null, - isAuthenticated: false, -}; - -const authSlice = createSlice({ - name: 'auth', - initialState, - reducers: { - loginSuccess(state, action: PayloadAction) { - state.user = action.payload.user; - state.token = action.payload.token; - state.isAuthenticated = true; - authStorage.setToken(action.payload.token); - authStorage.setRefreshToken(action.payload.refreshToken); - authStorage.setUser(action.payload.user); - }, - logout(state) { - state.user = null; - state.token = null; - state.isAuthenticated = false; - authStorage.clear(); - }, - hydrateAuth(state) { - const token = authStorage.getToken(); - const user = authStorage.getUser(); - if (token && user) { - state.token = token; - state.user = user; - state.isAuthenticated = true; - } - }, - }, -}); - -export const { loginSuccess, logout, hydrateAuth } = authSlice.actions; -export const authReducer = authSlice.reducer; diff --git a/apps/backoffice/src/app/features/auth/store/set-password.slice.ts b/apps/backoffice/src/app/features/auth/store/set-password.slice.ts deleted file mode 100644 index bdcf8d745..000000000 --- a/apps/backoffice/src/app/features/auth/store/set-password.slice.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { createSlice, type PayloadAction } from '@reduxjs/toolkit'; - -interface SetPasswordState { - loading: boolean; - success: boolean; - error: string | null; -} - -const initialState: SetPasswordState = { - loading: false, - success: false, - error: null, -}; - -const setPasswordSlice = createSlice({ - name: 'setPassword', - initialState, - reducers: { - setPasswordStart(state) { - state.loading = true; - state.error = null; - state.success = false; - }, - setPasswordSuccess(state) { - state.loading = false; - state.success = true; - }, - setPasswordFailure(state, action: PayloadAction) { - state.loading = false; - state.error = action.payload; - }, - resetSetPassword(state) { - state.loading = false; - state.success = false; - state.error = null; - }, - }, -}); - -export const { setPasswordStart, setPasswordSuccess, setPasswordFailure, resetSetPassword } = - setPasswordSlice.actions; -export const setPasswordReducer = setPasswordSlice.reducer; diff --git a/apps/backoffice/src/app/features/auth/store/signup.slice.ts b/apps/backoffice/src/app/features/auth/store/signup.slice.ts deleted file mode 100644 index 92a5f4294..000000000 --- a/apps/backoffice/src/app/features/auth/store/signup.slice.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { createSlice, type PayloadAction } from '@reduxjs/toolkit'; - -interface SignupState { - loading: boolean; - success: boolean; - error: string | null; -} - -const initialState: SignupState = { - loading: false, - success: false, - error: null, -}; - -const signupSlice = createSlice({ - name: 'signup', - initialState, - reducers: { - signupStart(state) { - state.loading = true; - state.error = null; - state.success = false; - }, - signupSuccess(state) { - state.loading = false; - state.success = true; - }, - signupFailure(state, action: PayloadAction) { - state.loading = false; - state.error = action.payload; - }, - resetSignup(state) { - state.loading = false; - state.success = false; - state.error = null; - }, - }, -}); - -export const { signupStart, signupSuccess, signupFailure, resetSignup } = signupSlice.actions; -export const signupReducer = signupSlice.reducer; diff --git a/apps/backoffice/src/app/features/auth/types/auth.types.ts b/apps/backoffice/src/app/features/auth/types/auth.types.ts deleted file mode 100644 index 2f45a66a3..000000000 --- a/apps/backoffice/src/app/features/auth/types/auth.types.ts +++ /dev/null @@ -1,19 +0,0 @@ -export interface AuthUser { - id: string; - email: string; - username: string; - roles: string[]; - permissions: string[]; -} - -export interface AuthState { - user: AuthUser | null; - token: string | null; - isAuthenticated: boolean; -} - -export interface LoginPayload { - user: AuthUser; - token: string; - refreshToken: string; -} diff --git a/apps/backoffice/src/app/features/auth/utils/auth-storage.ts b/apps/backoffice/src/app/features/auth/utils/auth-storage.ts deleted file mode 100644 index dc4aa3010..000000000 --- a/apps/backoffice/src/app/features/auth/utils/auth-storage.ts +++ /dev/null @@ -1,51 +0,0 @@ -import type { AuthUser } from '../types/auth.types'; - -const KEYS = { - token: 'ema-backoffice-auth-token', - refreshToken: 'ema-backoffice-refresh-token', - user: 'ema-backoffice-auth-user', -} as const; - -const COOKIE_ATTRS = 'path=/;max-age=86400'; - -function setCookie(name: string, value: string) { - document.cookie = `${name}=${encodeURIComponent(value)};${COOKIE_ATTRS}`; -} - -function removeCookie(name: string) { - document.cookie = `${name}=;path=/;max-age=0`; -} - -export const authStorage = { - getToken: () => localStorage.getItem(KEYS.token) ?? undefined, - setToken: (token: string) => { - localStorage.setItem(KEYS.token, token); - setCookie('auth-token', token); - }, - removeToken: () => { - localStorage.removeItem(KEYS.token); - removeCookie('auth-token'); - }, - - getRefreshToken: () => localStorage.getItem(KEYS.refreshToken) ?? undefined, - setRefreshToken: (token: string) => { - localStorage.setItem(KEYS.refreshToken, token); - setCookie('refresh-token', token); - }, - - getUser: (): AuthUser | null => { - const raw = localStorage.getItem(KEYS.user); - try { - return raw ? (JSON.parse(raw) as AuthUser) : null; - } catch { - return null; - } - }, - setUser: (user: AuthUser) => localStorage.setItem(KEYS.user, JSON.stringify(user)), - - clear: () => { - Object.values(KEYS).forEach((k) => localStorage.removeItem(k)); - removeCookie('auth-token'); - removeCookie('refresh-token'); - }, -}; diff --git a/apps/backoffice/src/app/store/index.ts b/apps/backoffice/src/app/store/index.ts index bed66a931..4a2291664 100644 --- a/apps/backoffice/src/app/store/index.ts +++ b/apps/backoffice/src/app/store/index.ts @@ -1,14 +1,8 @@ import { configureStore } from '@reduxjs/toolkit'; import { baseApi } from '@ema-platform/api'; -import { authReducer } from '../features/auth/store/auth.slice'; -import { signupReducer } from '../features/auth/store/signup.slice'; -import { setPasswordReducer } from '../features/auth/store/set-password.slice'; export const store = configureStore({ reducer: { - auth: authReducer, - signup: signupReducer, - setPassword: setPasswordReducer, [baseApi.reducerPath]: baseApi.reducer, }, middleware: (getDefaultMiddleware) => diff --git a/apps/backoffice/src/main.tsx b/apps/backoffice/src/main.tsx index 7d9ec4e29..1d967ab5b 100644 --- a/apps/backoffice/src/main.tsx +++ b/apps/backoffice/src/main.tsx @@ -7,6 +7,42 @@ import '@tria-plc/iamui-common/styles.css'; import './styles.css'; import { App } from './app/app'; +window.__USER_MANAGEMENT_BRANDING__ = { + appName: 'Ethiopian Maritime Licence', + organizationName: 'Ethiopian Maritime Authority', + logoSrc: '/assets/emaLogo.jpg', + logoAlt: 'EMA Logo', + homePath: '/', + moduleBasePath: '/user-management', + backToAppPath: '/dashboard', + backToAppLabel: 'Back to dashboard', + cssVariables: { + '--primary': '#2563eb', + '--primary-foreground': 'oklch(0.99 0 0)', + '--secondary': '#1d4ed8', + '--secondary-foreground': 'oklch(0.99 0 0)', + '--accent': '#60a5fa', + '--accent-foreground': 'oklch(0.99 0 0)', + '--ring': '#2563eb', + '--sidebar': 'oklch(0.21 0.04 265)', + '--sidebar-foreground': 'oklch(0.96 0.01 255)', + '--sidebar-primary': '#3b82f6', + '--sidebar-primary-foreground': 'oklch(0.99 0 0)', + '--sidebar-accent': '#60a5fa', + '--sidebar-accent-foreground': 'oklch(0.96 0.01 255)', + '--sidebar-border': 'oklch(0.3 0.04 265)', + '--sidebar-ring': '#3b82f6', + '--brand-shell-bg': '#eff6ff', + '--brand-sidebar-bg': '#0f172a', + '--brand-sidebar-border': '#1e293b', + '--brand-sidebar-muted': '#94a3b8', + '--brand-primary-solid': '#2563eb', + '--brand-primary-hover': '#1d4ed8', + '--brand-hero-from': '#2563eb', + '--brand-hero-to': '#1e40af', + }, +}; + const root = document.getElementById('root'); if (!root) throw new Error('Root element not found'); diff --git a/libs/api/src/lib/query-and-mutation/index.ts b/libs/api/src/lib/query-and-mutation/index.ts index be02d08ec..10b736e11 100644 --- a/libs/api/src/lib/query-and-mutation/index.ts +++ b/libs/api/src/lib/query-and-mutation/index.ts @@ -48,11 +48,11 @@ type UseApiMutationResult = { }; export function useApiMutation(): [ - (args: ApiQueryArgs) => Promise<{ data: TData }>, + (args: ApiQueryArgs) => Promise<{ data: TData }> & { unwrap: () => Promise }, UseApiMutationResult, ] { return useApiMutationMutation() as unknown as [ - (args: ApiQueryArgs) => Promise<{ data: TData }>, + (args: ApiQueryArgs) => Promise<{ data: TData }> & { unwrap: () => Promise }, UseApiMutationResult, ]; }