aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Ng <chrng8@gmail.com>2025-03-25 14:31:44 -0700
committerChristopher Ng <chrng8@gmail.com>2025-03-28 14:12:52 -0700
commitd32f2c761e541e4e18800e324a698cb552135467 (patch)
tree8ef7ebbb568e5592c8cba5e9614555cd1ed2a3d9
parent374197c7218c63f5738b8b4cf5e8a0aeae9188c6 (diff)
downloadnextcloud-server-d32f2c761e541e4e18800e324a698cb552135467.tar.gz
nextcloud-server-d32f2c761e541e4e18800e324a698cb552135467.zip
fix(settings): Fix loaded groups being undefined
Signed-off-by: Christopher Ng <chrng8@gmail.com>
-rw-r--r--apps/settings/src/components/Users/UserRow.vue10
-rw-r--r--apps/settings/src/service/groups.ts14
-rw-r--r--apps/settings/src/store/users.js18
3 files changed, 16 insertions, 26 deletions
diff --git a/apps/settings/src/components/Users/UserRow.vue b/apps/settings/src/components/Users/UserRow.vue
index 830a688ccfc..45e05642f11 100644
--- a/apps/settings/src/components/Users/UserRow.vue
+++ b/apps/settings/src/components/Users/UserRow.vue
@@ -300,6 +300,7 @@ import UserRowActions from './UserRowActions.vue'
import UserRowMixin from '../../mixins/UserRowMixin.js'
import { isObfuscated, unlimitedQuota } from '../../utils/userUtils.ts'
+import { searchGroups, loadUserGroups } from '../../service/groups.ts'
import logger from '../../logger.ts'
export default {
@@ -556,14 +557,7 @@ export default {
async loadGroupDetails() {
this.loading.groups = true
try {
- const { data } = await this.$store.dispatch('getUserGroups', {
- userId: this.user.id,
- })
- const groups = data.ocs?.data?.groups
- if (!groups) {
- logger.error(t('settings', 'Failed to load groups with details'))
- return
- }
+ const groups = await loadUserGroups({ userId: this.user.id })
this.availableGroups = this.availableGroups.map(availableGroup => groups.find(group => group.id === availableGroup.id) ?? availableGroup)
} catch (error) {
logger.error(t('settings', 'Failed to load groups with details'), { error })
diff --git a/apps/settings/src/service/groups.ts b/apps/settings/src/service/groups.ts
index fa8d1a46e4a..060e133e84e 100644
--- a/apps/settings/src/service/groups.ts
+++ b/apps/settings/src/service/groups.ts
@@ -53,3 +53,17 @@ export const searchGroups = ({ search, offset, limit }): CancelablePromise<Requi
}
})
}
+
+/**
+ * Load user groups
+ *
+ * @param {object} options Options
+ * @param {string} options.userId User id
+ */
+export const loadUserGroups = async ({ userId }): Promise<Required<IGroup>[]> => {
+ const url = generateOcsUrl('/cloud/users/{userId}/groups/details', { userId })
+ const { data } = await axios.get(url)
+ const groups: Group[] = data.ocs?.data?.groups ?? []
+ const formattedGroups = groups.map(formatGroup)
+ return formattedGroups
+},
diff --git a/apps/settings/src/store/users.js b/apps/settings/src/store/users.js
index 0914db6471b..2a3a2d272d9 100644
--- a/apps/settings/src/store/users.js
+++ b/apps/settings/src/store/users.js
@@ -465,24 +465,6 @@ const actions = {
},
/**
- * Get user groups
- *
- * @param {object} context store context
- * @param {object} options destructuring object
- * @param {number} options.userId User id
- * @return {Promise}
- */
- async getUserGroups(context, { userId }) {
- const url = generateOcsUrl('cloud/users/{userId}/groups/details', { userId })
- try {
- const response = await api.get(url)
- return response
- } catch (error) {
- context.commit('API_FAILURE', error)
- }
- },
-
- /**
* Get all users with full details
*
* @param {object} context store context