Browse Source

Fix bug where OIDC icon was not being displayed due to misconfiguration

pull/1920/head
Peter Clement 5 years ago
parent
commit
4ae29f6b54
  1. 1
      packages/bbui/src/Form/Core/Picker.svelte
  2. 1
      packages/builder/src/pages/builder/auth/_components/OIDCButton.svelte
  3. 6
      packages/builder/src/pages/builder/portal/manage/auth/index.svelte
  4. 23
      packages/worker/src/api/controllers/admin/configs.js
  5. 12
      packages/worker/src/api/routes/admin/configs.js

1
packages/bbui/src/Form/Core/Picker.svelte

@ -31,7 +31,6 @@
}
open = true
}
console.log(fieldIcon)
</script>
<button

1
packages/builder/src/pages/builder/auth/_components/OIDCButton.svelte

@ -18,7 +18,6 @@
AD: MicrosoftLogo
}
$: show = $admin.checklist?.oidc
console.log(preDefinedIcons[oidcIcon])
</script>
{#if show}

6
packages/builder/src/pages/builder/portal/manage/auth/index.svelte

@ -19,8 +19,6 @@
} from "@budibase/bbui"
import { onMount } from "svelte"
import api from "builderStore/api"
import { writable } from "svelte/store"
import { organisation } from "stores/portal"
const ConfigTypes = {
Google: "google",
@ -41,12 +39,12 @@
}
const OIDCConfigFields = {
Oidc: ["configUrl", "clientId", "clientSecret"],
Oidc: ["configUrl", "clientID", "clientSecret"],
}
const OIDCConfigLabels = {
Oidc: {
configUrl: "Config URL",
clientId: "Client ID",
clientID: "Client ID",
clientSecret: "Client Secret",
},
}

23
packages/worker/src/api/controllers/admin/configs.js

@ -111,15 +111,24 @@ exports.publicSettings = async function (ctx) {
const oidcConfig = await getScopedFullConfig(db, {
type: Configs.OIDC,
})
if (!publicConfig) {
ctx.body = {}
} else {
if (publicConfig && !oidcConfig) {
ctx.body = publicConfig
if (oidcConfig.config) {
publicConfig.config.oidcIcon = oidcConfig.config.iconName
publicConfig.config.oidcName = oidcConfig.config.name
}
}
else if(!publicConfig && oidcConfig) {
// Pull out the OIDC icon and name because the other properties shouldn't
// be made public
let config = {}
config.oidcIcon = oidcConfig.config.iconName
config.oidcName = oidcConfig.config.name
oidcConfig.config = config
ctx.body = oidcConfig
}
else if (publicConfig && oidcConfig) {
ctx.body = publicConfig
publicConfig.config.oidcIcon = oidcConfig.config.iconName
publicConfig.config.oidcName = oidcConfig.config.name
}
} catch (err) {
ctx.throw(err.status, err)
}

12
packages/worker/src/api/routes/admin/configs.js

@ -3,7 +3,7 @@ const controller = require("../../controllers/admin/configs")
const joiValidator = require("../../../middleware/joi-validator")
const adminOnly = require("../../../middleware/adminOnly")
const Joi = require("joi")
const { Configs, ConfigUploads } = require("../../../constants")
const { Configs } = require("../../../constants")
const router = Router()
@ -41,16 +41,14 @@ function googleValidation() {
}).unknown(true)
}
function OidcValidation() {
function oidcValidation() {
// prettier-ignore
return Joi.object({
clientID: Joi.string().required(),
authUrl: Joi.string().required(),
tokenUrl: Joi.string().required(),
userInfoUrl: Joi.string().required(),
clientId: Joi.string().required(),
clientSecret: Joi.string().required(),
callbackUrl: Joi.string().required(),
configUrl: Joi.string().required(),
iconName: Joi.string().required(),
name: Joi.string().required(),
}).unknown(true)
}

Loading…
Cancel
Save