mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
fix(users): Improve error handling of some fields update
Signed-off-by: Louis Chemineau <louis@chmn.me>
This commit is contained in:
parent
1768bd6280
commit
1af827fdb3
2 changed files with 48 additions and 35 deletions
|
|
@ -624,18 +624,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('setting', 'Display name was successfully changed'))
|
||||
}
|
||||
})
|
||||
} finally {
|
||||
this.loading.displayName = false
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
|
|
@ -643,21 +646,23 @@ export default {
|
|||
*
|
||||
* @param {string} password The email address
|
||||
*/
|
||||
updatePassword() {
|
||||
async updatePassword() {
|
||||
this.loading.password = true
|
||||
if (this.editedPassword.length === 0) {
|
||||
showError(t('setting', "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('setting', 'Password was successfully changed'))
|
||||
})
|
||||
} finally {
|
||||
this.loading.password = false
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -666,23 +671,26 @@ export default {
|
|||
*
|
||||
* @param {string} mailAddress The email address
|
||||
*/
|
||||
updateEmail() {
|
||||
async updateEmail() {
|
||||
this.loading.mailAddress = true
|
||||
if (this.editedMail === '') {
|
||||
showError(t('setting', "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('setting', 'Email was successfully changed'))
|
||||
}
|
||||
})
|
||||
} finally {
|
||||
this.loading.mailAddress = false
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -641,11 +641,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'))
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
|
|
@ -735,7 +738,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
|
||||
|
|
@ -745,11 +748,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'))
|
||||
|
|
|
|||
Loading…
Reference in a new issue