feat: enforce 2fa admin setting + hide local on login screen

This commit is contained in:
NGPixel
2020-07-05 23:55:11 -04:00
parent b8d15915cd
commit 1ced9649c7
5 changed files with 25 additions and 6 deletions

View File

@@ -278,6 +278,7 @@ export default {
mutation: gql`
mutation (
$authAutoLogin: Boolean
$authEnforce2FA: Boolean
$authHideLocal: Boolean
$authLoginBgUrl: String
$authJwtAudience: String
@@ -298,6 +299,7 @@ export default {
site {
updateConfig(
authAutoLogin: $authAutoLogin,
authEnforce2FA: $authEnforce2FA,
authHideLocal: $authHideLocal,
authLoginBgUrl: $authLoginBgUrl,
authJwtAudience: $authJwtAudience,
@@ -327,6 +329,7 @@ export default {
`,
variables: {
authAutoLogin: _.get(this.config, 'authAutoLogin', false),
authEnforce2FA: _.get(this.config, 'authEnforce2FA', false),
authHideLocal: _.get(this.config, 'authHideLocal', false),
authLoginBgUrl: _.get(this.config, 'authLoginBgUrl', ''),
authJwtAudience: _.get(this.config, 'authJwtAudience', ''),
@@ -377,6 +380,7 @@ export default {
site {
config {
authAutoLogin
authEnforce2FA
authHideLocal
authLoginBgUrl
authJwtAudience

View File

@@ -18,7 +18,7 @@
v-list.elevation-1.radius-7(nav)
v-list-item-group(v-model='selectedStrategyKey')
v-list-item(
v-for='(stg, idx) of strategies'
v-for='(stg, idx) of filteredStrategies'
:key='stg.key'
:value='stg.key'
:color='stg.strategy.color'
@@ -252,8 +252,8 @@ export default {
return {
error: false,
strategies: [],
selectedStrategyKey: 'local',
selectedStrategy: { key: 'local', strategy: { useForm: true } },
selectedStrategyKey: 'unselected',
selectedStrategy: { key: 'unselected', strategy: { useForm: false } },
screen: 'login',
username: '',
password: '',
@@ -276,11 +276,21 @@ export default {
isSocialShown () {
return this.strategies.length > 1
},
logoUrl () { return siteConfig.logoUrl }
logoUrl () { return siteConfig.logoUrl },
filteredStrategies () {
const qParams = new URLSearchParams(window.location.search)
if (this.hideLocal && !qParams.has('all')) {
return _.reject(this.strategies, ['key', 'local'])
} else {
return this.strategies
}
}
},
watch: {
strategies(newValue, oldValue) {
this.selectedStrategy = _.head(newValue)
filteredStrategies (newValue, oldValue) {
if (_.head(newValue).strategy.useForm) {
this.selectedStrategyKey = _.head(newValue).key
}
},
selectedStrategyKey (newValue, oldValue) {
this.selectedStrategy = _.find(this.strategies, ['key', newValue])