Added --singleuser flag to server

replaces the old --serverwide-arl flag of deemix-pyweb
it's always off on the gui
This commit is contained in:
RemixDev
2022-03-09 12:34:18 +01:00
parent 79d602a490
commit c8f02b310d
10 changed files with 86 additions and 6 deletions

View File

@@ -4,6 +4,7 @@ import { Deezer } from 'deezer-js'
import { sessionDZ } from '../../../app'
import { ApiHandler } from '../../../types'
import { logger } from '../../../helpers/logger'
import { saveLoginCredentials, resetLoginCredentials } from '../../../helpers/loginStorage'
export interface RawLoginArlBody {
arl: string
@@ -24,6 +25,7 @@ const handler: RequestHandler<{}, {}, RawLoginArlBody, {}> = async (req, res, _)
if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer()
const deemix = req.app.get('deemix')
const dz = sessionDZ[req.session.id]
const isSingleUser = req.app.get('isSingleUser')
if (!req.body) {
return res.status(400).send()
@@ -69,7 +71,14 @@ const handler: RequestHandler<{}, {}, RawLoginArlBody, {}> = async (req, res, _)
currentChild: dz.selected_account
}
if (response !== LoginStatus.NOT_AVAILABLE && response !== LoginStatus.FAILED) deemix.startQueue(dz)
if (response !== LoginStatus.NOT_AVAILABLE && response !== LoginStatus.FAILED) {
deemix.startQueue(dz)
if (isSingleUser)
saveLoginCredentials({
accessToken: null,
arl: returnValue.arl
})
} else if (isSingleUser) resetLoginCredentials()
return res.status(200).send(returnValue)
}

View File

@@ -1,9 +1,11 @@
import { ApiHandler } from '../../../types'
import { getAccessToken, getArlFromAccessToken } from '../../../app'
import { saveLoginCredentials } from '../../../helpers/loginStorage'
const path = '/loginEmail'
const handler: ApiHandler['handler'] = async (req, res) => {
const isSingleUser = req.app.get('isSingleUser')
const { email, password } = req.body
let accessToken = req.body.accessToken
@@ -14,6 +16,12 @@ const handler: ApiHandler['handler'] = async (req, res) => {
let arl
if (accessToken) arl = await getArlFromAccessToken(accessToken)
if (isSingleUser && accessToken)
saveLoginCredentials({
accessToken,
arl: arl || null
})
res.send({ accessToken, arl })
}

View File

@@ -2,12 +2,14 @@
import { Deezer } from 'deezer-js'
import { ApiHandler } from '../../../types'
import { sessionDZ } from '../../../app'
import { resetLoginCredentials } from '../../../helpers/loginStorage'
const path: ApiHandler['path'] = '/logout'
const handler: ApiHandler['handler'] = (req, res) => {
sessionDZ[req.session.id] = new Deezer()
res.send({ logged_out: true })
if (req.app.get('isSingleUser')) resetLoginCredentials()
}
const apiHandler: ApiHandler = { path, handler }