mirror of
https://github.com/sct/overseerr.git
synced 2025-09-17 17:24:35 +02:00
fix(plex): Check Plex server access on user import (#955)
This commit is contained in:
@@ -212,7 +212,7 @@ class PlexTvAPI {
|
|||||||
return parsedXml;
|
return parsedXml;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async checkUserAccess(authUser: PlexUser): Promise<boolean> {
|
public async checkUserAccess(userId: number): Promise<boolean> {
|
||||||
const settings = getSettings();
|
const settings = getSettings();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -224,11 +224,11 @@ class PlexTvAPI {
|
|||||||
|
|
||||||
const users = friends.MediaContainer.User;
|
const users = friends.MediaContainer.User;
|
||||||
|
|
||||||
const user = users.find((u) => Number(u.$.id) === authUser.id);
|
const user = users.find((u) => Number(u.$.id) === userId);
|
||||||
|
|
||||||
if (!user) {
|
if (!user) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
'This user does not exist on the main plex accounts shared list'
|
"This user does not exist on the main Plex account's shared list"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -87,7 +87,7 @@ authRoutes.post('/login', async (req, res, next) => {
|
|||||||
});
|
});
|
||||||
const mainPlexTv = new PlexTvAPI(mainUser.plexToken ?? '');
|
const mainPlexTv = new PlexTvAPI(mainUser.plexToken ?? '');
|
||||||
|
|
||||||
if (await mainPlexTv.checkUserAccess(account)) {
|
if (await mainPlexTv.checkUserAccess(account.id)) {
|
||||||
user = new User({
|
user = new User({
|
||||||
email: account.email,
|
email: account.email,
|
||||||
plexUsername: account.username,
|
plexUsername: account.username,
|
||||||
|
@@ -333,7 +333,11 @@ router.post(
|
|||||||
await userRepository.save(user);
|
await userRepository.save(user);
|
||||||
} else {
|
} else {
|
||||||
// Check to make sure it's a real account
|
// Check to make sure it's a real account
|
||||||
if (account.email && account.username) {
|
if (
|
||||||
|
account.email &&
|
||||||
|
account.username &&
|
||||||
|
(await mainPlexTv.checkUserAccess(Number(account.id)))
|
||||||
|
) {
|
||||||
const newUser = new User({
|
const newUser = new User({
|
||||||
plexUsername: account.username,
|
plexUsername: account.username,
|
||||||
email: account.email,
|
email: account.email,
|
||||||
|
Reference in New Issue
Block a user