mirror of
https://github.com/nextcloud/server.git
synced 2026-06-15 11:41:20 -04:00
Merge pull request #51834 from nextcloud/backport/46418/stable29
[stable29] fix(users): Improve error handling of some fields update
This commit is contained in:
commit
131ccd0dff
6 changed files with 54 additions and 41 deletions
|
|
@ -640,18 +640,21 @@ export default {
|
|||
*
|
||||
* @param {string} displayName The display name
|
||||
*/
|
||||
updateDisplayName() {
|
||||
async updateDisplayName() {
|
||||
this.loading.displayName = true
|
||||
this.$store.dispatch('setUserData', {
|
||||
userid: this.user.id,
|
||||
key: 'displayname',
|
||||
value: this.editedDisplayName,
|
||||
}).then(() => {
|
||||
this.loading.displayName = false
|
||||
try {
|
||||
await this.$store.dispatch('setUserData', {
|
||||
userid: this.user.id,
|
||||
key: 'displayname',
|
||||
value: this.editedDisplayName,
|
||||
})
|
||||
|
||||
if (this.editedDisplayName === this.user.displayname) {
|
||||
showSuccess(t('settings', 'Display name was successfully changed'))
|
||||
}
|
||||
})
|
||||
} finally {
|
||||
this.loading.displayName = false
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
|
|
@ -659,21 +662,23 @@ export default {
|
|||
*
|
||||
* @param {string} password The email address
|
||||
*/
|
||||
updatePassword() {
|
||||
async updatePassword() {
|
||||
this.loading.password = true
|
||||
if (this.editedPassword.length === 0) {
|
||||
showError(t('settings', "Password can't be empty"))
|
||||
this.loading.password = false
|
||||
} else {
|
||||
this.$store.dispatch('setUserData', {
|
||||
userid: this.user.id,
|
||||
key: 'password',
|
||||
value: this.editedPassword,
|
||||
}).then(() => {
|
||||
this.loading.password = false
|
||||
try {
|
||||
await this.$store.dispatch('setUserData', {
|
||||
userid: this.user.id,
|
||||
key: 'password',
|
||||
value: this.editedPassword,
|
||||
})
|
||||
this.editedPassword = ''
|
||||
showSuccess(t('settings', 'Password was successfully changed'))
|
||||
})
|
||||
} finally {
|
||||
this.loading.password = false
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -682,23 +687,26 @@ export default {
|
|||
*
|
||||
* @param {string} mailAddress The email address
|
||||
*/
|
||||
updateEmail() {
|
||||
async updateEmail() {
|
||||
this.loading.mailAddress = true
|
||||
if (this.editedMail === '') {
|
||||
showError(t('settings', "Email can't be empty"))
|
||||
this.loading.mailAddress = false
|
||||
this.editedMail = this.user.email
|
||||
} else {
|
||||
this.$store.dispatch('setUserData', {
|
||||
userid: this.user.id,
|
||||
key: 'email',
|
||||
value: this.editedMail,
|
||||
}).then(() => {
|
||||
this.loading.mailAddress = false
|
||||
try {
|
||||
await this.$store.dispatch('setUserData', {
|
||||
userid: this.user.id,
|
||||
key: 'email',
|
||||
value: this.editedMail,
|
||||
})
|
||||
|
||||
if (this.editedMail === this.user.email) {
|
||||
showSuccess(t('settings', 'Email was successfully changed'))
|
||||
}
|
||||
})
|
||||
} finally {
|
||||
this.loading.mailAddress = false
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -636,11 +636,14 @@ const actions = {
|
|||
* @param {string} userid User id
|
||||
* @return {Promise}
|
||||
*/
|
||||
wipeUserDevices(context, userid) {
|
||||
return api.requireAdmin().then((response) => {
|
||||
return api.post(generateOcsUrl('cloud/users/{userid}/wipe', { userid }))
|
||||
.catch((error) => { throw error })
|
||||
}).catch((error) => context.commit('API_FAILURE', { userid, error }))
|
||||
async wipeUserDevices(context, userid) {
|
||||
try {
|
||||
await api.requireAdmin()
|
||||
return await api.post(generateOcsUrl('cloud/users/{userid}/wipe', { userid }))
|
||||
} catch (error) {
|
||||
context.commit('API_FAILURE', { userid, error })
|
||||
return Promise.reject(new Error('Failed to wipe user devices'))
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
|
|
@ -730,7 +733,7 @@ const actions = {
|
|||
* @param {string} options.value Value of the change
|
||||
* @return {Promise}
|
||||
*/
|
||||
setUserData(context, { userid, key, value }) {
|
||||
async setUserData(context, { userid, key, value }) {
|
||||
const allowedEmpty = ['email', 'displayname', 'manager']
|
||||
if (['email', 'language', 'quota', 'displayname', 'password', 'manager'].indexOf(key) !== -1) {
|
||||
// We allow empty email or displayname
|
||||
|
|
@ -740,11 +743,13 @@ const actions = {
|
|||
|| allowedEmpty.indexOf(key) !== -1
|
||||
)
|
||||
) {
|
||||
return api.requireAdmin().then((response) => {
|
||||
return api.put(generateOcsUrl('cloud/users/{userid}', { userid }), { key, value })
|
||||
.then((response) => context.commit('setUserData', { userid, key, value }))
|
||||
.catch((error) => { throw error })
|
||||
}).catch((error) => context.commit('API_FAILURE', { userid, error }))
|
||||
try {
|
||||
await api.requireAdmin()
|
||||
await api.put(generateOcsUrl('cloud/users/{userid}', { userid }), { key, value })
|
||||
return context.commit('setUserData', { userid, key, value })
|
||||
} catch (error) {
|
||||
context.commit('API_FAILURE', { userid, error })
|
||||
}
|
||||
}
|
||||
}
|
||||
return Promise.reject(new Error('Invalid request data'))
|
||||
|
|
|
|||
4
dist/settings-users-3239.js
vendored
4
dist/settings-users-3239.js
vendored
File diff suppressed because one or more lines are too long
2
dist/settings-users-3239.js.map
vendored
2
dist/settings-users-3239.js.map
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue