Commit 5b9dd43e authored by Nick's avatar Nick

feat: import content + x-forwarded toggle

parent fddde494
...@@ -163,6 +163,7 @@ ...@@ -163,6 +163,7 @@
persistent-hint persistent-hint
hint='Prevents other websites from embedding your wiki in an iframe. This provides clickjacking protection.' hint='Prevents other websites from embedding your wiki in an iframe. This provides clickjacking protection.'
) )
v-divider.mt-3 v-divider.mt-3
v-switch( v-switch(
inset inset
...@@ -176,6 +177,16 @@ ...@@ -176,6 +177,16 @@
v-divider.mt-3 v-divider.mt-3
v-switch( v-switch(
inset inset
label='Trust X-Forwarded-* Proxy Headers'
color='red darken-2'
v-model='config.securityTrustProxy'
persistent-hint
hint='Should be enabled when using a reverse-proxy like nginx, apache, CloudFlare, etc in front of Wiki.js. Turn off otherwise.'
)
v-divider.mt-3
v-switch(
inset
label='Enforce HSTS' label='Enforce HSTS'
color='red darken-2' color='red darken-2'
v-model='config.securityHSTS' v-model='config.securityHSTS'
...@@ -250,6 +261,7 @@ export default { ...@@ -250,6 +261,7 @@ export default {
featureTinyPNG: false, featureTinyPNG: false,
securityIframe: true, securityIframe: true,
securityReferrerPolicy: true, securityReferrerPolicy: true,
securityTrustProxy: true,
securityHSTS: false, securityHSTS: false,
securityHSTSDuration: 0, securityHSTSDuration: 0,
securityCSP: false, securityCSP: false,
...@@ -296,6 +308,7 @@ export default { ...@@ -296,6 +308,7 @@ export default {
featurePersonalWikis: _.get(this.config, 'featurePersonalWikis', false), featurePersonalWikis: _.get(this.config, 'featurePersonalWikis', false),
securityIframe: _.get(this.config, 'securityIframe', false), securityIframe: _.get(this.config, 'securityIframe', false),
securityReferrerPolicy: _.get(this.config, 'securityReferrerPolicy', false), securityReferrerPolicy: _.get(this.config, 'securityReferrerPolicy', false),
securityTrustProxy: _.get(this.config, 'securityTrustProxy', false),
securityHSTS: _.get(this.config, 'securityHSTS', false), securityHSTS: _.get(this.config, 'securityHSTS', false),
securityHSTSDuration: _.get(this.config, 'securityHSTSDuration', 0), securityHSTSDuration: _.get(this.config, 'securityHSTSDuration', 0),
securityCSP: _.get(this.config, 'securityCSP', false), securityCSP: _.get(this.config, 'securityCSP', false),
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
v-icon(color='red') mdi-trash-can-outline v-icon(color='red') mdi-trash-can-outline
v-card v-card
.dialog-header.is-red Delete Group? .dialog-header.is-red Delete Group?
v-card-text Are you sure you want to delete group #[strong {{ group.name }}]? All users will be unassigned from this group. v-card-text.pa-4 Are you sure you want to delete group #[strong {{ group.name }}]? All users will be unassigned from this group.
v-card-actions v-card-actions
v-spacer v-spacer
v-btn(text, @click='deleteGroupDialog = false') Cancel v-btn(text, @click='deleteGroupDialog = false') Cancel
......
...@@ -13,6 +13,7 @@ mutation ( ...@@ -13,6 +13,7 @@ mutation (
$featurePersonalWikis: Boolean! $featurePersonalWikis: Boolean!
$securityIframe: Boolean! $securityIframe: Boolean!
$securityReferrerPolicy: Boolean! $securityReferrerPolicy: Boolean!
$securityTrustProxy: Boolean!
$securityHSTS: Boolean! $securityHSTS: Boolean!
$securityHSTSDuration: Int! $securityHSTSDuration: Int!
$securityCSP: Boolean! $securityCSP: Boolean!
...@@ -34,6 +35,7 @@ mutation ( ...@@ -34,6 +35,7 @@ mutation (
featurePersonalWikis: $featurePersonalWikis, featurePersonalWikis: $featurePersonalWikis,
securityIframe: $securityIframe, securityIframe: $securityIframe,
securityReferrerPolicy: $securityReferrerPolicy, securityReferrerPolicy: $securityReferrerPolicy,
securityTrustProxy: $securityTrustProxy,
securityHSTS: $securityHSTS, securityHSTS: $securityHSTS,
securityHSTSDuration: $securityHSTSDuration, securityHSTSDuration: $securityHSTSDuration,
securityCSP: $securityCSP, securityCSP: $securityCSP,
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
featurePersonalWikis featurePersonalWikis
securityIframe securityIframe
securityReferrerPolicy securityReferrerPolicy
securityTrustProxy
securityHSTS securityHSTS
securityHSTSDuration securityHSTSDuration
securityCSP securityCSP
......
...@@ -45,6 +45,7 @@ defaults: ...@@ -45,6 +45,7 @@ defaults:
security: security:
securityIframe: true securityIframe: true
securityReferrerPolicy: true securityReferrerPolicy: true
securityTrustProxy: true
securityHSTS: false securityHSTS: false
securityHSTSDuration: 300 securityHSTSDuration: 300
securityCSP: false securityCSP: false
......
...@@ -46,6 +46,7 @@ module.exports = { ...@@ -46,6 +46,7 @@ module.exports = {
WIKI.config.security = { WIKI.config.security = {
securityIframe: args.securityIframe, securityIframe: args.securityIframe,
securityReferrerPolicy: args.securityReferrerPolicy, securityReferrerPolicy: args.securityReferrerPolicy,
securityTrustProxy: args.securityTrustProxy,
securityHSTS: args.securityHSTS, securityHSTS: args.securityHSTS,
securityHSTSDuration: args.securityHSTSDuration, securityHSTSDuration: args.securityHSTSDuration,
securityCSP: args.securityCSP, securityCSP: args.securityCSP,
...@@ -53,6 +54,12 @@ module.exports = { ...@@ -53,6 +54,12 @@ module.exports = {
} }
await WIKI.configSvc.saveToDb(['host', 'title', 'company', 'seo', 'logo', 'features', 'security']) await WIKI.configSvc.saveToDb(['host', 'title', 'company', 'seo', 'logo', 'features', 'security'])
if (WIKI.config.security.securityTrustProxy) {
WIKI.app.enable('trust proxy')
} else {
WIKI.app.disable('trust proxy')
}
return { return {
responseResult: graphHelper.generateSuccess('Site configuration updated successfully') responseResult: graphHelper.generateSuccess('Site configuration updated successfully')
} }
......
...@@ -38,6 +38,7 @@ type SiteMutation { ...@@ -38,6 +38,7 @@ type SiteMutation {
featurePersonalWikis: Boolean! featurePersonalWikis: Boolean!
securityIframe: Boolean! securityIframe: Boolean!
securityReferrerPolicy: Boolean! securityReferrerPolicy: Boolean!
securityTrustProxy: Boolean!
securityHSTS: Boolean! securityHSTS: Boolean!
securityHSTSDuration: Int! securityHSTSDuration: Int!
securityCSP: Boolean! securityCSP: Boolean!
...@@ -64,6 +65,7 @@ type SiteConfig { ...@@ -64,6 +65,7 @@ type SiteConfig {
featurePersonalWikis: Boolean! featurePersonalWikis: Boolean!
securityIframe: Boolean! securityIframe: Boolean!
securityReferrerPolicy: Boolean! securityReferrerPolicy: Boolean!
securityTrustProxy: Boolean!
securityHSTS: Boolean! securityHSTS: Boolean!
securityHSTSDuration: Int! securityHSTSDuration: Int!
securityCSP: Boolean! securityCSP: Boolean!
......
...@@ -48,7 +48,7 @@ module.exports = async () => { ...@@ -48,7 +48,7 @@ module.exports = async () => {
app.use(mw.security) app.use(mw.security)
app.use(cors(WIKI.config.cors)) app.use(cors(WIKI.config.cors))
app.options('*', cors(WIKI.config.cors)) app.options('*', cors(WIKI.config.cors))
if (WIKI.config.trustProxy) { if (WIKI.config.security.securityTrustProxy) {
app.enable('trust proxy') app.enable('trust proxy')
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment