Compare commits

...

2 Commits

Author SHA1 Message Date
Derrick Hammer b65bd12c8a
feat: implement updatePassword 2024-03-19 10:12:13 -04:00
Derrick Hammer 8ca46c6f18
dep: update portal-sdk 2024-03-19 10:07:38 -04:00
2 changed files with 33 additions and 10 deletions

View File

@ -31,6 +31,11 @@ export type Identity = {
email: string; email: string;
} }
export type UpdatePasswordFormRequest = {
currentPassword: string;
newPassword: string;
}
export const createPortalAuthProvider = (sdk: Sdk): AuthProvider => { export const createPortalAuthProvider = (sdk: Sdk): AuthProvider => {
const maybeSetupAuth = (): void => { const maybeSetupAuth = (): void => {
const jwt = sdk.account().jwtToken; const jwt = sdk.account().jwtToken;
@ -64,7 +69,7 @@ export const createPortalAuthProvider = (sdk: Sdk): AuthProvider => {
async logout(params: any): Promise<AuthActionResponse> { async logout(params: any): Promise<AuthActionResponse> {
let ret = await sdk.account().logout(); let ret = await sdk.account().logout();
return { success: ret, redirectTo: "/login" }; return {success: ret, redirectTo: "/login"};
}, },
async check(params?: any): Promise<CheckResponse> { async check(params?: any): Promise<CheckResponse> {
@ -74,11 +79,11 @@ export const createPortalAuthProvider = (sdk: Sdk): AuthProvider => {
maybeSetupAuth(); maybeSetupAuth();
} }
return { authenticated: ret, redirectTo: ret ? undefined : "/login" }; return {authenticated: ret, redirectTo: ret ? undefined : "/login"};
}, },
async onError(error: any): Promise<OnErrorResponse> { async onError(error: any): Promise<OnErrorResponse> {
return { logout: true }; return {logout: true};
}, },
async register(params: RegisterFormRequest): Promise<AuthActionResponse> { async register(params: RegisterFormRequest): Promise<AuthActionResponse> {
@ -88,19 +93,37 @@ export const createPortalAuthProvider = (sdk: Sdk): AuthProvider => {
first_name: params.firstName, first_name: params.firstName,
last_name: params.lastName, last_name: params.lastName,
}); });
return { success: ret, redirectTo: ret ? "/dashboard" : undefined }; return {success: ret, redirectTo: ret ? "/dashboard" : undefined};
}, },
async forgotPassword(params: any): Promise<AuthActionResponse> { async forgotPassword(params: any): Promise<AuthActionResponse> {
return { success: true }; return {success: true};
}, },
async updatePassword(params: any): Promise<AuthActionResponse> { async updatePassword(params: UpdatePasswordFormRequest): Promise<AuthActionResponse> {
return { success: true }; maybeSetupAuth();
const ret = await sdk.account().updatePassword(params.currentPassword, params.newPassword);
if (ret) {
if (ret instanceof Error) {
return {
success: false,
error: ret
}
}
return {
success: true
}
} else {
return {
success: false
}
}
}, },
async getPermissions(params?: Record<string, any>): Promise<AuthActionResponse> { async getPermissions(params?: Record<string, any>): Promise<AuthActionResponse> {
return { success: true }; return {success: true};
}, },
async getIdentity(params?: Identity): Promise<IdentityResponse> { async getIdentity(params?: Identity): Promise<IdentityResponse> {
@ -108,7 +131,7 @@ export const createPortalAuthProvider = (sdk: Sdk): AuthProvider => {
const ret = await sdk.account().info(); const ret = await sdk.account().info();
if (!ret) { if (!ret) {
return { identity: null }; return {identity: null};
} }
const acct = ret as AccountInfoResponse; const acct = ret as AccountInfoResponse;

View File

@ -16,7 +16,7 @@
"@conform-to/react": "^1.0.2", "@conform-to/react": "^1.0.2",
"@conform-to/zod": "^1.0.2", "@conform-to/zod": "^1.0.2",
"@fontsource-variable/manrope": "^5.0.19", "@fontsource-variable/manrope": "^5.0.19",
"@lumeweb/portal-sdk": "0.0.0-20240319120038", "@lumeweb/portal-sdk": "0.0.0-20240319140708",
"@radix-ui/react-avatar": "^1.0.4", "@radix-ui/react-avatar": "^1.0.4",
"@radix-ui/react-checkbox": "^1.0.4", "@radix-ui/react-checkbox": "^1.0.4",
"@radix-ui/react-dialog": "^1.0.5", "@radix-ui/react-dialog": "^1.0.5",