Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions ui/src/utils/plugins.js
Original file line number Diff line number Diff line change
Expand Up @@ -484,6 +484,14 @@ export const genericUtilPlugin = {
const regexExp = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/gi
return regexExp.test(uuid)
}

app.config.globalProperties.$toBase64Encoded = function (text) {
const base64regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/
if (base64regex.test(text)) {
return text
Comment thread
weizhouapache marked this conversation as resolved.
}
return btoa(unescape(encodeURIComponent(text)))
}
}
}

Expand Down
10 changes: 1 addition & 9 deletions ui/src/views/compute/AutoScaleVmProfile.vue
Original file line number Diff line number Diff line change
Expand Up @@ -519,7 +519,7 @@ export default {
params.autoscaleuserid = this.autoscaleuserid
}
if (this.userdata && this.userdata.length > 0) {
params.userdata = encodeURIComponent(btoa(this.sanitizeReverse(this.userdata)))
params.userdata = encodeURIComponent(this.$toBase64Encoded(this.userdata))
}

const httpMethod = params.userdata ? 'POST' : 'GET'
Expand All @@ -539,14 +539,6 @@ export default {
this.loading = false
})
},
sanitizeReverse (value) {
const reversedValue = value
.replace(/&/g, '&')
.replace(/&lt;/g, '<')
.replace(/&gt;/g, '>')

return reversedValue
},
decodeUserData (userdata) {
const decodedData = Buffer.from(userdata, 'base64')
return decodedData.toString('utf-8')
Expand Down
10 changes: 1 addition & 9 deletions ui/src/views/compute/CreateAutoScaleVmGroup.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2425,7 +2425,7 @@ export default {
createVmGroupData.keypairs = this.sshKeyPairs.join(',')
createVmGroupData.affinitygroupids = (values.affinitygroupids || []).join(',')
if (values.userdata && values.userdata.length > 0) {
createVmGroupData.userdata = encodeURIComponent(btoa(this.sanitizeReverse(values.userdata)))
createVmGroupData.userdata = encodeURIComponent(this.$toBase64Encoded(values.userdata))
}

// vm profile details
Expand Down Expand Up @@ -2702,14 +2702,6 @@ export default {
this.params[name].options = { ...this.params[name].options, ...options }
this.fetchOptions(this.params[name], name)
},
sanitizeReverse (value) {
const reversedValue = value
.replace(/&amp;/g, '&')
.replace(/&lt;/g, '<')
.replace(/&gt;/g, '>')

return reversedValue
},
fetchTemplateNics (template) {
var nics = []
this.nicToNetworkSelection = []
Expand Down
3 changes: 1 addition & 2 deletions ui/src/views/compute/DeployVM.vue
Original file line number Diff line number Diff line change
Expand Up @@ -836,7 +836,6 @@ import UserDataSelection from '@views/compute/wizard/UserDataSelection'
import SecurityGroupSelection from '@views/compute/wizard/SecurityGroupSelection'
import TooltipLabel from '@/components/widgets/TooltipLabel'
import InstanceNicsNetworkSelectListView from '@/components/view/InstanceNicsNetworkSelectListView.vue'
import { sanitizeReverse } from '@/utils/util'

export default {
name: 'Wizard',
Expand Down Expand Up @@ -1971,7 +1970,7 @@ export default {
deployVmData.iothreadsenabled = values.iothreadsenabled
deployVmData.iodriverpolicy = values.iodriverpolicy
if (values.userdata && values.userdata.length > 0) {
deployVmData.userdata = encodeURIComponent(btoa(sanitizeReverse(values.userdata)))
deployVmData.userdata = encodeURIComponent(this.$toBase64Encoded(values.userdata))
}
// step 2: select template/iso
if (this.tabKey === 'templateid') {
Expand Down
3 changes: 1 addition & 2 deletions ui/src/views/compute/EditVM.vue
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,6 @@
import { ref, reactive, toRaw } from 'vue'
import { api } from '@/api'
import TooltipLabel from '@/components/widgets/TooltipLabel'
import { sanitizeReverse } from '@/utils/util'

export default {
name: 'EditVM',
Expand Down Expand Up @@ -317,7 +316,7 @@ export default {
params.group = values.group
}
if (values.userdata && values.userdata.length > 0) {
params.userdata = encodeURIComponent(btoa(sanitizeReverse(values.userdata)))
params.userdata = encodeURIComponent(this.$toBase64Encoded(values.userdata))
}
this.loading = true

Expand Down
10 changes: 1 addition & 9 deletions ui/src/views/compute/RegisterUserData.vue
Original file line number Diff line number Diff line change
Expand Up @@ -184,14 +184,6 @@ export default {
handleDomainChanged (domain) {
this.selectedDomain = domain
},
sanitizeReverse (value) {
const reversedValue = value
.replace(/&amp;/g, '&')
.replace(/&lt;/g, '<')
.replace(/&gt;/g, '>')

return reversedValue
},
handleSubmit (e) {
e.preventDefault()
if (this.loading) return
Expand All @@ -209,7 +201,7 @@ export default {
if (this.isValidValueForKey(values, 'account') && values.account.length > 0) {
params.account = values.account
}
params.userdata = encodeURIComponent(btoa(this.sanitizeReverse(values.userdata)))
params.userdata = encodeURIComponent(this.toBase64Encoded(values.userdata))

if (values.params != null && values.params.length > 0) {
var userdataparams = values.params.join(',')
Expand Down
10 changes: 1 addition & 9 deletions ui/src/views/compute/ResetUserData.vue
Original file line number Diff line number Diff line change
Expand Up @@ -289,14 +289,6 @@ export default {
this[type] = key
this.userDataParams = []
},
sanitizeReverse (value) {
const reversedValue = value
.replace(/&amp;/g, '&')
.replace(/&lt;/g, '<')
.replace(/&gt;/g, '>')

return reversedValue
},
isUserAllowedToListUserDatas () {
return Boolean('listUserData' in this.$store.getters.apis)
},
Expand Down Expand Up @@ -346,7 +338,7 @@ export default {
id: this.resource.id
}
if (values.userdata && values.userdata.length > 0) {
params.userdata = encodeURIComponent(btoa(this.sanitizeReverse(values.userdata)))
params.userdata = encodeURIComponent(this.$toBase64Encoded(values.userdata))
}
if (values.userdataid) {
params.userdataid = values.userdataid
Expand Down