Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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.$toBase64AndURIEncoded = function (text) {
Comment thread
weizhouapache marked this conversation as resolved.
const base64regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/
if (base64regex.test(text)) {
Comment thread
weizhouapache marked this conversation as resolved.
return text
Comment thread
weizhouapache marked this conversation as resolved.
}
return encodeURIComponent(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 = this.$toBase64AndURIEncoded(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 = this.$toBase64AndURIEncoded(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 = this.$toBase64AndURIEncoded(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 = this.$toBase64AndURIEncoded(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 = this.$toBase64AndURIEncoded(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 = this.$toBase64AndURIEncoded(values.userdata)
}
if (values.userdataid) {
params.userdataid = values.userdataid
Expand Down