mirror of
https://github.com/nextcloud/server.git
synced 2026-06-07 15:53:04 -04:00
enh(settings): Load from disabled users endpoint
Signed-off-by: Christopher Ng <chrng8@gmail.com> (cherry picked from commit 7affbba6aecebf68b9c2e9ae6cb75fb251f94861)
This commit is contained in:
parent
fa1c1ac19d
commit
c7fc085849
2 changed files with 57 additions and 6 deletions
|
|
@ -223,6 +223,14 @@ export default {
|
|||
return this.$store.getters.getUsersLimit
|
||||
},
|
||||
|
||||
disabledUsersOffset() {
|
||||
return this.$store.getters.getDisabledUsersOffset
|
||||
},
|
||||
|
||||
disabledUsersLimit() {
|
||||
return this.$store.getters.getDisabledUsersLimit
|
||||
},
|
||||
|
||||
usersCount() {
|
||||
return this.users.length
|
||||
},
|
||||
|
|
@ -297,12 +305,19 @@ export default {
|
|||
async loadUsers() {
|
||||
this.loading.users = true
|
||||
try {
|
||||
await this.$store.dispatch('getUsers', {
|
||||
offset: this.usersOffset,
|
||||
limit: this.usersLimit,
|
||||
group: this.selectedGroup !== 'disabled' ? this.selectedGroup : '',
|
||||
search: this.searchQuery,
|
||||
})
|
||||
if (this.selectedGroup === 'disabled') {
|
||||
await this.$store.dispatch('getDisabledUsers', {
|
||||
offset: this.disabledUsersOffset,
|
||||
limit: this.disabledUsersLimit,
|
||||
})
|
||||
} else {
|
||||
await this.$store.dispatch('getUsers', {
|
||||
offset: this.usersOffset,
|
||||
limit: this.usersLimit,
|
||||
group: this.selectedGroup,
|
||||
search: this.searchQuery,
|
||||
})
|
||||
}
|
||||
logger.debug(`${this.users.length} total user(s) loaded`)
|
||||
} catch (error) {
|
||||
logger.error('Failed to load users', { error })
|
||||
|
|
|
|||
|
|
@ -63,6 +63,8 @@ const state = {
|
|||
minPasswordLength: 0,
|
||||
usersOffset: 0,
|
||||
usersLimit: 25,
|
||||
disabledUsersOffset: 0,
|
||||
disabledUsersLimit: 25,
|
||||
userCount: 0,
|
||||
showConfig: {
|
||||
showStoragePath: false,
|
||||
|
|
@ -83,6 +85,9 @@ const mutations = {
|
|||
state.usersOffset += state.usersLimit
|
||||
state.users = users
|
||||
},
|
||||
updateDisabledUsers(state, _usersObj) {
|
||||
state.disabledUsersOffset += state.disabledUsersLimit
|
||||
},
|
||||
setPasswordPolicyMinLength(state, length) {
|
||||
state.minPasswordLength = length !== '' ? length : 0
|
||||
},
|
||||
|
|
@ -237,6 +242,7 @@ const mutations = {
|
|||
resetUsers(state) {
|
||||
state.users = []
|
||||
state.usersOffset = 0
|
||||
state.disabledUsersOffset = 0
|
||||
},
|
||||
|
||||
setShowConfig(state, { key, value }) {
|
||||
|
|
@ -264,6 +270,12 @@ const getters = {
|
|||
getUsersLimit(state) {
|
||||
return state.usersLimit
|
||||
},
|
||||
getDisabledUsersOffset(state) {
|
||||
return state.disabledUsersOffset
|
||||
},
|
||||
getDisabledUsersLimit(state) {
|
||||
return state.disabledUsersLimit
|
||||
},
|
||||
getUserCount(state) {
|
||||
return state.userCount
|
||||
},
|
||||
|
|
@ -373,6 +385,30 @@ const actions = {
|
|||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* Get disabled users with full details
|
||||
*
|
||||
* @param {object} context store context
|
||||
* @param {object} options destructuring object
|
||||
* @param {number} options.offset List offset to request
|
||||
* @param {number} options.limit List number to return from offset
|
||||
* @return {Promise<number>}
|
||||
*/
|
||||
async getDisabledUsers(context, { offset, limit }) {
|
||||
const url = generateOcsUrl('cloud/users/disabled?offset={offset}&limit={limit}', { offset, limit })
|
||||
try {
|
||||
const response = await api.get(url)
|
||||
const usersCount = Object.keys(response.data.ocs.data.users).length
|
||||
if (usersCount > 0) {
|
||||
context.commit('appendUsers', response.data.ocs.data.users)
|
||||
context.commit('updateDisabledUsers', response.data.ocs.data.users)
|
||||
}
|
||||
return usersCount
|
||||
} catch (error) {
|
||||
context.commit('API_FAILURE', error)
|
||||
}
|
||||
},
|
||||
|
||||
getGroups(context, { offset, limit, search }) {
|
||||
search = typeof search === 'string' ? search : ''
|
||||
const limitParam = limit === -1 ? '' : `&limit=${limit}`
|
||||
|
|
|
|||
Loading…
Reference in a new issue