mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-08-09 13:50:42 +02:00
Move SSOSettings to settings db & initialize with env vars
This commit is contained in:
parent
c11c0ff54e
commit
adae905953
@ -1,6 +1,3 @@
|
||||
|
||||
import Vue from 'vue'
|
||||
|
||||
const defaultSSOSettings = {
|
||||
oidc: {
|
||||
issuer: "",
|
||||
@ -10,7 +7,7 @@ const defaultSSOSettings = {
|
||||
clientID: "",
|
||||
clientSecret: "",
|
||||
callbackURL: "/oidc/callback",
|
||||
scope: "openid email profile"
|
||||
scope: "openid email profile"
|
||||
},
|
||||
user: {
|
||||
createNewUser: false,
|
||||
|
12
index.js
12
index.js
@ -13,12 +13,12 @@ if (isDev) {
|
||||
process.env.AUDIOBOOK_PATH = devEnv.AudiobookPath
|
||||
process.env.FFMPEG_PATH = devEnv.FFmpegPath
|
||||
process.env.FFPROBE_PATH = devEnv.FFProbePath
|
||||
process.env.OIDC_CLIENT_ID = devEnv.OIDC.ClientID
|
||||
process.env.OIDC_CLIENT_SECRET = devEnv.OIDC.ClientSecret
|
||||
process.env.OIDC_ISSUER = devEnv.OIDC.Issuer
|
||||
process.env.OIDC_AUTHORIZATION_URL = devEnv.OIDC.AuthorizationURL
|
||||
process.env.OIDC_TOKEN_URL = devEnv.OIDC.TokenURL
|
||||
process.env.OIDC_USER_INFO_URL = devEnv.OIDC.UserInfoURL
|
||||
process.env.OIDC_CLIENT_ID = devEnv.OIDC ? devEnv.OIDC.ClientID : ''
|
||||
process.env.OIDC_CLIENT_SECRET = devEnv.OIDC ? devEnv.OIDC.ClientSecret : ''
|
||||
process.env.OIDC_ISSUER = devEnv.OIDC ? devEnv.OIDC.Issuer : ''
|
||||
process.env.OIDC_AUTHORIZATION_URL = devEnv.OIDC ? devEnv.OIDC.AuthorizationURL : ''
|
||||
process.env.OIDC_TOKEN_URL = devEnv.OIDC ? devEnv.OIDC.TokenURL : ''
|
||||
process.env.OIDC_USER_INFO_URL = devEnv.OIDC ? devEnv.OIDC.UserInfoURL : ''
|
||||
}
|
||||
|
||||
const PORT = process.env.PORT || 80
|
||||
|
17
njodb.properties
Normal file
17
njodb.properties
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"datadir": "data",
|
||||
"dataname": "data",
|
||||
"datastores": 2,
|
||||
"tempdir": "tmp",
|
||||
"lockoptions": {
|
||||
"stale": 5000,
|
||||
"update": 1000,
|
||||
"retries": {
|
||||
"retries": 5000,
|
||||
"minTimeout": 250,
|
||||
"maxTimeout": 5000,
|
||||
"factor": 0.15,
|
||||
"randomize": false
|
||||
}
|
||||
}
|
||||
}
|
17
server/Db.js
17
server/Db.js
@ -31,7 +31,6 @@ class Db {
|
||||
this.sessionsDb = new njodb.Database(this.SessionsPath)
|
||||
this.librariesDb = new njodb.Database(this.LibrariesPath, { datastores: 2 })
|
||||
this.settingsDb = new njodb.Database(this.SettingsPath, { datastores: 2 })
|
||||
this.SSODb = new njodb.Database(this.SSODb, { datastores: 2 })
|
||||
this.collectionsDb = new njodb.Database(this.CollectionsPath, { datastores: 2 })
|
||||
this.authorsDb = new njodb.Database(this.AuthorsPath)
|
||||
|
||||
@ -132,6 +131,11 @@ class Db {
|
||||
this.serverSettings = new ServerSettings()
|
||||
await this.insertEntity('settings', this.serverSettings)
|
||||
}
|
||||
|
||||
if (!this.SSOSettings) {
|
||||
this.SSOSettings = new SSOSettings()
|
||||
await this.insertEntity('settings', this.SSOSettings)
|
||||
}
|
||||
}
|
||||
|
||||
async load() {
|
||||
@ -150,6 +154,7 @@ class Db {
|
||||
let p4 = this.settingsDb.select(() => true).then((results) => {
|
||||
if (results.data && results.data.length) {
|
||||
this.settings = results.data
|
||||
|
||||
let serverSettings = this.settings.find(s => s.id === 'server-settings')
|
||||
if (serverSettings) {
|
||||
this.serverSettings = new ServerSettings(serverSettings)
|
||||
@ -159,6 +164,11 @@ class Db {
|
||||
this.previousVersion = this.serverSettings.version || '1.0.0'
|
||||
}
|
||||
}
|
||||
|
||||
let ssoSettings = this.settings.find(s => s.id === 'sso-settings')
|
||||
if (ssoSettings) {
|
||||
this.SSOSettings = new SSOSettings(ssoSettings)
|
||||
}
|
||||
}
|
||||
})
|
||||
let p5 = this.collectionsDb.select(() => true).then((results) => {
|
||||
@ -169,10 +179,7 @@ class Db {
|
||||
this.authors = results.data.map(l => new Author(l))
|
||||
Logger.info(`[DB] ${this.authors.length} Authors Loaded`)
|
||||
})
|
||||
let p7 = this.SSODb.select(() => true).then((results) => {
|
||||
this.SSOSettings = new SSOSettings(results.data)
|
||||
})
|
||||
await Promise.all([p1, p2, p3, p4, p5, p6, p7])
|
||||
await Promise.all([p1, p2, p3, p4, p5, p6])
|
||||
|
||||
// Update server version in server settings
|
||||
if (this.previousVersion) {
|
||||
|
@ -4,14 +4,14 @@ const User = require('./User')
|
||||
|
||||
const defaultSettings = {
|
||||
oidc: {
|
||||
issuer: "",
|
||||
authorizationURL: "",
|
||||
tokenURL: "",
|
||||
userInfoURL: "",
|
||||
clientID: "",
|
||||
clientSecret: "",
|
||||
issuer: process.env.OIDC_ISSUER || '',
|
||||
authorizationURL: process.env.OIDC_AUTHORIZATION_URL || '',
|
||||
tokenURL: process.env.OIDC_TOKEN_URL || '',
|
||||
userInfoURL: process.env.OIDC_USER_INFO_URL || '',
|
||||
clientID: process.env.OIDC_CLIENT_ID || '',
|
||||
clientSecret: process.env.OIDC_CLIENT_SECRET || '',
|
||||
callbackURL: "/oidc/callback",
|
||||
scope: "openid email profile"
|
||||
scope: "openid email profile"
|
||||
},
|
||||
user: {
|
||||
createNewUser: false,
|
||||
@ -38,16 +38,17 @@ const defaultSettings = {
|
||||
}
|
||||
|
||||
class SSOSettings {
|
||||
constructor(settings=defaultSettings) {
|
||||
constructor(settings = defaultSettings) {
|
||||
this.id = 'sso-settings'
|
||||
this.oidc = {...settings.oidc}
|
||||
this.user = {...settings.user}
|
||||
this.oidc = { ...settings.oidc }
|
||||
this.user = { ...settings.user }
|
||||
}
|
||||
|
||||
toJSON() {
|
||||
return {
|
||||
oidc: {...this.oidc},
|
||||
user: {...this.user}
|
||||
id: this.id,
|
||||
oidc: { ...this.oidc },
|
||||
user: { ...this.user }
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user