fix: site title check + UI fixes + 2FA setup on account verify
This commit is contained in:
		| @@ -177,6 +177,8 @@ import editorStore from '../../store/editor' | ||||
|  | ||||
| /* global WIKI */ | ||||
|  | ||||
| const titleRegex = /[<>"]/i | ||||
|  | ||||
| WIKI.$store.registerModule('editor', editorStore) | ||||
|  | ||||
| export default { | ||||
| @@ -186,12 +188,6 @@ export default { | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       analyticsServices: [ | ||||
|         { text: 'None', value: '' }, | ||||
|         { text: 'Elasticsearch APM RUM', value: 'elk' }, | ||||
|         { text: 'Google Analytics', value: 'ga' }, | ||||
|         { text: 'Google Tag Manager', value: 'gtm' } | ||||
|       ], | ||||
|       config: { | ||||
|         host: '', | ||||
|         title: '', | ||||
| @@ -238,6 +234,15 @@ export default { | ||||
|   }, | ||||
|   methods: { | ||||
|     async save () { | ||||
|       const title = _.get(this.config, 'title', '') | ||||
|       if (titleRegex.test(title)) { | ||||
|         this.$store.commit('showNotification', { | ||||
|           style: 'error', | ||||
|           message: this.$t('admin:general.siteTitleInvalidChars'), | ||||
|           icon: 'alert' | ||||
|         }) | ||||
|         return | ||||
|       } | ||||
|       try { | ||||
|         await this.$apollo.mutate({ | ||||
|           mutation: gql` | ||||
| @@ -300,7 +305,7 @@ export default { | ||||
|         }) | ||||
|         this.$store.commit('showNotification', { | ||||
|           style: 'success', | ||||
|           message: 'Configuration saved successfully.', | ||||
|           message: this.$t('admin:general.saveSuccess'), | ||||
|           icon: 'check' | ||||
|         }) | ||||
|         this.siteTitle = this.config.title | ||||
|   | ||||
| @@ -8,7 +8,7 @@ | ||||
|           :size='60' | ||||
|           color='#FFF' | ||||
|           ) | ||||
|         img(v-else-if='mode === `icon`', :src='`/svg/icon-` + icon + `.svg`', :alt='icon') | ||||
|         img(v-else-if='mode === `icon`', :src='`/_assets/svg/icon-` + icon + `.svg`', :alt='icon') | ||||
|         .subtitle-1.white--text {{ title }} | ||||
|         .caption {{ subtitle }} | ||||
| </template> | ||||
|   | ||||
| @@ -93,7 +93,7 @@ | ||||
|  | ||||
|     loader(v-model='isLoading', :mode='loaderMode', :icon='loaderIcon', :color='loaderColor', :title='loaderTitle', :subtitle='loaderSubtitle') | ||||
|     nav-footer(color='grey darken-5', dark-color='grey darken-5') | ||||
|     notify | ||||
|     notify(style='padding-top: 64px;') | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
|   | ||||
| @@ -135,10 +135,14 @@ router.get('/verify/:token', bruteforce.prevent, async (req, res, next) => { | ||||
|   try { | ||||
|     const usr = await WIKI.models.userKeys.validateToken({ kind: 'verify', token: req.params.token }) | ||||
|     await WIKI.models.users.query().patch({ isVerified: true }).where('id', usr.id) | ||||
|     const result = await WIKI.models.users.refreshToken(usr) | ||||
|     req.brute.reset() | ||||
|     res.cookie('jwt', result.token, { expires: moment().add(1, 'years').toDate() }) | ||||
|     res.redirect('/') | ||||
|     if (WIKI.config.auth.enforce2FA) { | ||||
|       res.redirect('/login') | ||||
|     } else { | ||||
|       const result = await WIKI.models.users.refreshToken(usr) | ||||
|       res.cookie('jwt', result.token, { expires: moment().add(1, 'years').toDate() }) | ||||
|       res.redirect('/') | ||||
|     } | ||||
|   } catch (err) { | ||||
|     next(err) | ||||
|   } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user