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

View File

@ -16,7 +16,7 @@
"@conform-to/react": "^1.0.2",
"@conform-to/zod": "^1.0.2",
"@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-checkbox": "^1.0.4",
"@radix-ui/react-dialog": "^1.0.5",