1
0
mirror of https://github.com/pocket-id/pocket-id.git synced 2026-02-04 15:39:45 +00:00

pr feedback

This commit is contained in:
Elias Schneider
2026-01-10 23:53:38 +01:00
parent 0a49c8b699
commit 20ee00df49
8 changed files with 16 additions and 15 deletions

View File

@@ -9,7 +9,7 @@ import (
type UserDto struct {
ID string `json:"id"`
Username string `json:"username"`
Email *string `json:"email" `
Email *string `json:"email"`
EmailVerified bool `json:"emailVerified"`
FirstName string `json:"firstName"`
LastName *string `json:"lastName"`

View File

@@ -1,6 +1,6 @@
CREATE TABLE email_verification_tokens
(
id TEXT UUID KEY,
id UUID PRIMARY KEY,
created_at TIMESTAMPTZ NOT NULL,
token TEXT NOT NULL UNIQUE,
expires_at TIMESTAMPTZ NOT NULL,

View File

@@ -2,7 +2,7 @@ import userStore from '$lib/stores/user-store';
import type { ListRequestOptions, Paginated } from '$lib/types/list-request.type';
import type { SignupToken } from '$lib/types/signup-token.type';
import type { UserGroup } from '$lib/types/user-group.type';
import type { User, UserCreate, UserSignUp } from '$lib/types/user.type';
import type { AccountUpdate, User, UserCreate, UserSignUp } from '$lib/types/user.type';
import { cachedProfilePicture } from '$lib/utils/cached-image-util';
import { get } from 'svelte/store';
import APIService from './api-service';
@@ -38,7 +38,7 @@ export default class UserService extends APIService {
return res.data as User;
};
updateCurrent = async (user: UserCreate) => {
updateCurrent = async (user: AccountUpdate) => {
const res = await this.api.put('/users/me', user);
return res.data as User;
};
@@ -130,5 +130,5 @@ export default class UserService extends APIService {
verifyEmail = async (token: string) => {
const res = await this.api.post('/users/me/verify-email', { token });
return res.data as User;
}
};
}

View File

@@ -20,6 +20,8 @@ export type User = {
export type UserCreate = Omit<User, 'id' | 'customClaims' | 'ldapId' | 'userGroups'>;
export type AccountUpdate = Omit<UserCreate, 'isAdmin' | 'disabled' | 'emailVerified'>
export type UserSignUp = Omit<
UserCreate,
'isAdmin' | 'disabled' | 'displayName' | 'emailVerified'

View File

@@ -31,4 +31,6 @@ export function getAuthRedirectPath(url: URL, user: User | null) {
if (isAdminPath && !isAdmin) {
return '/settings';
}
return null;
}

View File

@@ -10,7 +10,7 @@
import appConfigStore from '$lib/stores/application-configuration-store';
import userStore from '$lib/stores/user-store';
import type { Passkey } from '$lib/types/passkey.type';
import type { UserCreate } from '$lib/types/user.type';
import type { AccountUpdate, UserCreate } from '$lib/types/user.type';
import { axiosErrorToast, getWebauthnErrorMessage } from '$lib/utils/error-util';
import {
KeyRound,
@@ -40,7 +40,7 @@
!$appConfigStore.allowOwnAccountEdit || (!!account.ldapId && $appConfigStore.ldapEnabled)
);
async function updateAccount(user: UserCreate) {
async function updateAccount(user: AccountUpdate) {
let success = true;
await userService
.updateCurrent(user)

View File

@@ -6,7 +6,7 @@
import { m } from '$lib/paraglide/messages';
import UserService from '$lib/services/user-service';
import appConfigStore from '$lib/stores/application-configuration-store';
import type { UserCreate } from '$lib/types/user.type';
import type { AccountUpdate } from '$lib/types/user.type';
import { axiosErrorToast } from '$lib/utils/error-util';
import { preventDefault } from '$lib/utils/event-util';
import { createForm } from '$lib/utils/form-util';
@@ -22,9 +22,9 @@
isLdapUser = false,
userInfoInputDisabled = false
}: {
account: UserCreate;
account: AccountUpdate;
userId: string;
callback: (user: UserCreate) => Promise<boolean>;
callback: (user: AccountUpdate) => Promise<boolean>;
isLdapUser?: boolean;
userInfoInputDisabled?: boolean;
} = $props();
@@ -39,10 +39,7 @@
lastName: emptyToUndefined(z.string().max(50).optional()),
displayName: z.string().min(1).max(100),
username: usernameSchema,
email: get(appConfigStore).requireUserEmail
? z.email()
: emptyToUndefined(z.email().optional()),
isAdmin: z.boolean()
email: get(appConfigStore).requireUserEmail ? z.email() : emptyToUndefined(z.email().optional())
});
type FormSchema = typeof formSchema;

View File

@@ -33,7 +33,7 @@
lastName: existingUser?.lastName || '',
displayName: existingUser?.displayName || '',
email: existingUser?.email || '',
emailVerified: existingUser?.emailVerified || emailsVerifiedPerDefault,
emailVerified: existingUser?.emailVerified ?? emailsVerifiedPerDefault,
username: existingUser?.username || '',
isAdmin: existingUser?.isAdmin || false,
disabled: existingUser?.disabled || false