diff --git a/server/routes/user/usersettings.ts b/server/routes/user/usersettings.ts index 6ee0f8937..ac89b048f 100644 --- a/server/routes/user/usersettings.ts +++ b/server/routes/user/usersettings.ts @@ -119,28 +119,10 @@ userSettingsRoutes.post< } const oldEmail = user.email; - const oldUsername = user.username; user.username = req.body.username; - if (user.jellyfinUsername) { + if (user.userType !== UserType.PLEX) { user.email = req.body.email || user.jellyfinUsername || user.email; } - // Edge case for local users, because they have no Jellyfin username to fall back on - // if the email is not provided - if (user.userType === UserType.LOCAL) { - if (req.body.email) { - user.email = req.body.email; - if ( - !user.username && - user.email !== oldEmail && - !oldEmail.includes('@') - ) { - user.username = oldEmail; - } - } else if (req.body.username) { - user.email = oldUsername || user.email; - user.username = req.body.username; - } - } const existingUser = await userRepository.findOne({ where: { email: user.email }, diff --git a/src/components/UserList/index.tsx b/src/components/UserList/index.tsx index 95a3c8a67..bc7c44414 100644 --- a/src/components/UserList/index.tsx +++ b/src/components/UserList/index.tsx @@ -210,7 +210,9 @@ const UserList = () => { username: Yup.string().required( intl.formatMessage(messages.validationUsername) ), - email: Yup.string().email(intl.formatMessage(messages.validationEmail)), + email: Yup.string() + .required() + .email(intl.formatMessage(messages.validationEmail)), password: Yup.lazy((value) => !value ? Yup.string() @@ -388,6 +390,7 @@ const UserList = () => {
diff --git a/src/components/UserProfile/UserSettings/UserGeneralSettings/index.tsx b/src/components/UserProfile/UserSettings/UserGeneralSettings/index.tsx index 4ee8a80f1..d8f0ded05 100644 --- a/src/components/UserProfile/UserSettings/UserGeneralSettings/index.tsx +++ b/src/components/UserProfile/UserSettings/UserGeneralSettings/index.tsx @@ -100,7 +100,9 @@ const UserGeneralSettings = () => { const UserGeneralSettingsSchema = Yup.object().shape({ email: - user?.id === 1 + // email is required for everybody except non-admin jellyfin users + user?.id === 1 || + (user?.userType !== UserType.JELLYFIN && user?.userType !== UserType.EMBY) ? Yup.string() .email(intl.formatMessage(messages.validationemailformat)) .required(intl.formatMessage(messages.validationemailrequired))