settings-vue-settings-apps-users-management.js.map 95 KB

1
  1. {"version":3,"file":"settings-vue-settings-apps-users-management.js?v=11389865362424de714e","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/settings/src/store/api.js","webpack:///nextcloud/apps/settings/src/store/users.js","webpack:///nextcloud/apps/settings/src/store/apps.js","webpack:///nextcloud/apps/settings/src/store/users-settings.js","webpack:///nextcloud/apps/settings/src/store/oc.js","webpack:///nextcloud/apps/settings/src/store/index.js","webpack:///nextcloud/apps/settings/src/constants/GroupManagement.ts","webpack:///nextcloud/apps/settings/src/logger.ts","webpack:///nextcloud/apps/settings/src/views/SettingsApp.vue","webpack:///nextcloud/apps/settings/src/views/SettingsApp.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/views/SettingsApp.vue?3a67","webpack:///nextcloud/apps/settings/src/router/routes.ts","webpack:///nextcloud/apps/settings/src/router/index.ts","webpack:///nextcloud/apps/settings/src/main-apps-users-management.ts","webpack:///nextcloud/node_modules/vuex-router-sync/index.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\nimport '@nextcloud/password-confirmation/dist/style.css'\n\nconst sanitize = function(url) {\n\treturn url.replace(/\\/$/, '') // Remove last url slash\n}\n\nexport default {\n\n\t/**\n\t * This Promise is used to chain a request that require an admin password confirmation\n\t * Since chaining Promise have a very precise behavior concerning catch and then,\n\t * you'll need to be careful when using it.\n\t * e.g\n\t * // store\n\t * action(context) {\n\t * return api.requireAdmin().then((response) => {\n\t * return api.get('url')\n\t * .then((response) => {API success})\n\t * .catch((error) => {API failure});\n\t * }).catch((error) => {requireAdmin failure});\n\t * }\n\t * // vue\n\t * this.$store.dispatch('action').then(() => {always executed})\n\t *\n\t * Since Promise.then().catch().then() will always execute the last then\n\t * this.$store.dispatch('action').then will always be executed\n\t *\n\t * If you want requireAdmin failure to also catch the API request failure\n\t * you will need to throw a new error in the api.get.catch()\n\t *\n\t * e.g\n\t * api.requireAdmin().then((response) => {\n\t * api.get('url')\n\t * .then((response) => {API success})\n\t * .catch((error) => {throw error;});\n\t * }).catch((error) => {requireAdmin OR API failure});\n\t *\n\t * @return {Promise}\n\t */\n\trequireAdmin() {\n\t\treturn confirmPassword()\n\t},\n\tget(url, options) {\n\t\treturn axios.get(sanitize(url), options)\n\t},\n\tpost(url, data) {\n\t\treturn axios.post(sanitize(url), data)\n\t},\n\tpatch(url, data) {\n\t\treturn axios.patch(sanitize(url), data)\n\t},\n\tput(url, data) {\n\t\treturn axios.put(sanitize(url), data)\n\t},\n\tdelete(url, data) {\n\t\treturn axios.delete(sanitize(url), { params: data })\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getBuilder } from '@nextcloud/browser-storage'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { parseFileSize } from '@nextcloud/files'\nimport { showError } from '@nextcloud/dialogs'\nimport { generateOcsUrl, generateUrl } from '@nextcloud/router'\nimport axios from '@nextcloud/axios'\n\nimport { GroupSorting } from '../constants/GroupManagement.ts'\nimport api from './api.js'\nimport logger from '../logger.ts'\n\nconst localStorage = getBuilder('settings').persist(true).build()\n\nconst defaults = {\n\tgroup: {\n\t\tid: '',\n\t\tname: '',\n\t\tusercount: 0,\n\t\tdisabled: 0,\n\t\tcanAdd: true,\n\t\tcanRemove: true,\n\t},\n}\n\nconst state = {\n\tusers: [],\n\tgroups: [],\n\torderBy: GroupSorting.UserCount,\n\tminPasswordLength: 0,\n\tusersOffset: 0,\n\tusersLimit: 25,\n\tdisabledUsersOffset: 0,\n\tdisabledUsersLimit: 25,\n\tuserCount: 0,\n\tshowConfig: {\n\t\tshowStoragePath: localStorage.getItem('account_settings__showStoragePath') === 'true',\n\t\tshowUserBackend: localStorage.getItem('account_settings__showUserBackend') === 'true',\n\t\tshowLastLogin: localStorage.getItem('account_settings__showLastLogin') === 'true',\n\t\tshowNewUserForm: localStorage.getItem('account_settings__showNewUserForm') === 'true',\n\t\tshowLanguages: localStorage.getItem('account_settings__showLanguages') === 'true',\n\t},\n}\n\nconst mutations = {\n\tappendUsers(state, usersObj) {\n\t\tconst existingUsers = state.users.map(({ id }) => id)\n\t\tconst newUsers = Object.values(usersObj)\n\t\t\t.filter(({ id }) => !existingUsers.includes(id))\n\n\t\tconst users = state.users.concat(newUsers)\n\t\tstate.usersOffset += state.usersLimit\n\t\tstate.users = users\n\t},\n\tupdateDisabledUsers(state, _usersObj) {\n\t\tstate.disabledUsersOffset += state.disabledUsersLimit\n\t},\n\tsetPasswordPolicyMinLength(state, length) {\n\t\tstate.minPasswordLength = length !== '' ? length : 0\n\t},\n\tinitGroups(state, { groups, orderBy, userCount }) {\n\t\tstate.groups = groups.map(group => Object.assign({}, defaults.group, group))\n\t\tstate.orderBy = orderBy\n\t\tstate.userCount = userCount\n\t},\n\taddGroup(state, { gid, displayName }) {\n\t\ttry {\n\t\t\tif (typeof state.groups.find((group) => group.id === gid) !== 'undefined') {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// extend group to default values\n\t\t\tconst group = Object.assign({}, defaults.group, {\n\t\t\t\tid: gid,\n\t\t\t\tname: displayName,\n\t\t\t})\n\t\t\tstate.groups.unshift(group)\n\t\t} catch (e) {\n\t\t\tconsole.error('Can\\'t create group', e)\n\t\t}\n\t},\n\trenameGroup(state, { gid, displayName }) {\n\t\tconst groupIndex = state.groups.findIndex(groupSearch => groupSearch.id === gid)\n\t\tif (groupIndex >= 0) {\n\t\t\tconst updatedGroup = state.groups[groupIndex]\n\t\t\tupdatedGroup.name = displayName\n\t\t\tstate.groups.splice(groupIndex, 1, updatedGroup)\n\t\t}\n\t},\n\tremoveGroup(state, gid) {\n\t\tconst groupIndex = state.groups.findIndex(groupSearch => groupSearch.id === gid)\n\t\tif (groupIndex >= 0) {\n\t\t\tstate.groups.splice(groupIndex, 1)\n\t\t}\n\t},\n\taddUserGroup(state, { userid, gid }) {\n\t\tconst group = state.groups.find(groupSearch => groupSearch.id === gid)\n\t\tconst user = state.users.find(user => user.id === userid)\n\t\t// increase count if user is enabled\n\t\tif (group && user.enabled && state.userCount > 0) {\n\t\t\tgroup.usercount++\n\t\t}\n\t\tconst groups = user.groups\n\t\tgroups.push(gid)\n\t},\n\tremoveUserGroup(state, { userid, gid }) {\n\t\tconst group = state.groups.find(groupSearch => groupSearch.id === gid)\n\t\tconst user = state.users.find(user => user.id === userid)\n\t\t// lower count if user is enabled\n\t\tif (group && user.enabled && state.userCount > 0) {\n\t\t\tgroup.usercount--\n\t\t}\n\t\tconst groups = user.groups\n\t\tgroups.splice(groups.indexOf(gid), 1)\n\t},\n\taddUserSubAdmin(state, { userid, gid }) {\n\t\tconst groups = state.users.find(user => user.id === userid).subadmin\n\t\tgroups.push(gid)\n\t},\n\tremoveUserSubAdmin(state, { userid, gid }) {\n\t\tconst groups = state.users.find(user => user.id === userid).subadmin\n\t\tgroups.splice(groups.indexOf(gid), 1)\n\t},\n\tdeleteUser(state, userid) {\n\t\tconst userIndex = state.users.findIndex(user => user.id === userid)\n\t\tthis.commit('updateUserCounts', { user: state.users[userIndex], actionType: 'remove' })\n\t\tstate.users.splice(userIndex, 1)\n\t},\n\taddUserData(state, response) {\n\t\tconst user = response.data.ocs.data\n\t\tstate.users.unshift(user)\n\t\tthis.commit('updateUserCounts', { user, actionType: 'create' })\n\t},\n\tenableDisableUser(state, { userid, enabled }) {\n\t\tconst user = state.users.find(user => user.id === userid)\n\t\tuser.enabled = enabled\n\t\tthis.commit('updateUserCounts', { user, actionType: enabled ? 'enable' : 'disable' })\n\t},\n\t// update active/disabled counts, groups counts\n\tupdateUserCounts(state, { user, actionType }) {\n\t\t// 0 is a special value\n\t\tif (state.userCount === 0) {\n\t\t\treturn\n\t\t}\n\n\t\tconst recentGroup = state.groups.find(group => group.id === '__nc_internal_recent')\n\t\tconst disabledGroup = state.groups.find(group => group.id === 'disabled')\n\t\tswitch (actionType) {\n\t\tcase 'enable':\n\t\tcase 'disable':\n\t\t\tdisabledGroup.usercount += user.enabled ? -1 : 1 // update Disabled Users count\n\t\t\trecentGroup.usercount += user.enabled ? 1 : -1\n\t\t\tstate.userCount += user.enabled ? 1 : -1 // update Active Users count\n\t\t\tuser.groups.forEach(userGroup => {\n\t\t\t\tconst group = state.groups.find(groupSearch => groupSearch.id === userGroup)\n\t\t\t\tgroup.disabled += user.enabled ? -1 : 1 // update group disabled count\n\t\t\t})\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\trecentGroup.usercount++\n\t\t\tstate.userCount++ // increment Active Users count\n\n\t\t\tuser.groups.forEach(userGroup => {\n\t\t\t\tstate.groups\n\t\t\t\t\t.find(groupSearch => groupSearch.id === userGroup)\n\t\t\t\t .usercount++ // increment group total count\n\t\t\t})\n\t\t\tbreak\n\t\tcase 'remove':\n\t\t\tif (user.enabled) {\n\t\t\t\trecentGroup.usercount--\n\t\t\t\tstate.userCount-- // decrement Active Users count\n\t\t\t\tuser.groups.forEach(userGroup => {\n\t\t\t\t\tconst group = state.groups.find(groupSearch => groupSearch.id === userGroup)\n\t\t\t\t\tif (!group) {\n\t\t\t\t\t\tconsole.warn('User group ' + userGroup + ' does not exist during user removal')\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tgroup.usercount-- // decrement group total count\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tdisabledGroup.usercount-- // decrement Disabled Users count\n\t\t\t\tuser.groups.forEach(userGroup => {\n\t\t\t\t\tconst group = state.groups.find(groupSearch => groupSearch.id === userGroup)\n\t\t\t\t\tgroup.disabled-- // decrement group disabled count\n\t\t\t\t})\n\t\t\t}\n\t\t\tbreak\n\t\tdefault:\n\t\t\tlogger.error(`Unknown action type in updateUserCounts: '${actionType}'`)\n\t\t\t// not throwing error to interrupt execution as this is not fatal\n\t\t}\n\t},\n\tsetUserData(state, { userid, key, value }) {\n\t\tif (key === 'quota') {\n\t\t\tconst humanValue = parseFileSize(value, true)\n\t\t\tstate.users.find(user => user.id === userid)[key][key] = humanValue !== null ? humanValue : value\n\t\t} else {\n\t\t\tstate.users.find(user => user.id === userid)[key] = value\n\t\t}\n\t},\n\n\t/**\n\t * Reset users list\n\t *\n\t * @param {object} state the store state\n\t */\n\tresetUsers(state) {\n\t\tstate.users = []\n\t\tstate.usersOffset = 0\n\t\tstate.disabledUsersOffset = 0\n\t},\n\n\tsetShowConfig(state, { key, value }) {\n\t\tlocalStorage.setItem(`account_settings__${key}`, JSON.stringify(value))\n\t\tstate.showConfig[key] = value\n\t},\n\n\tsetGroupSorting(state, sorting) {\n\t\tconst oldValue = state.orderBy\n\t\tstate.orderBy = sorting\n\n\t\t// Persist the value on the server\n\t\taxios.post(\n\t\t\tgenerateUrl('/settings/users/preferences/group.sortBy'),\n\t\t\t{\n\t\t\t\tvalue: String(sorting),\n\t\t\t},\n\t\t).catch((error) => {\n\t\t\tstate.orderBy = oldValue\n\t\t\tshowError(t('settings', 'Could not set group sorting'))\n\t\t\tlogger.error(error)\n\t\t})\n\t},\n}\n\nconst getters = {\n\tgetUsers(state) {\n\t\treturn state.users\n\t},\n\tgetGroups(state) {\n\t\treturn state.groups\n\t},\n\tgetSubadminGroups(state) {\n\t\t// Can't be subadmin of admin, recent, or disabled\n\t\treturn state.groups.filter(group => group.id !== 'admin' && group.id !== '__nc_internal_recent' && group.id !== 'disabled')\n\t},\n\tgetSortedGroups(state) {\n\t\tconst groups = [...state.groups]\n\t\tif (state.orderBy === GroupSorting.UserCount) {\n\t\t\treturn groups.sort((a, b) => {\n\t\t\t\tconst numA = a.usercount - a.disabled\n\t\t\t\tconst numB = b.usercount - b.disabled\n\t\t\t\treturn (numA < numB) ? 1 : (numB < numA ? -1 : a.name.localeCompare(b.name))\n\t\t\t})\n\t\t} else {\n\t\t\treturn groups.sort((a, b) => a.name.localeCompare(b.name))\n\t\t}\n\t},\n\tgetGroupSorting(state) {\n\t\treturn state.orderBy\n\t},\n\tgetPasswordPolicyMinLength(state) {\n\t\treturn state.minPasswordLength\n\t},\n\tgetUsersOffset(state) {\n\t\treturn state.usersOffset\n\t},\n\tgetUsersLimit(state) {\n\t\treturn state.usersLimit\n\t},\n\tgetDisabledUsersOffset(state) {\n\t\treturn state.disabledUsersOffset\n\t},\n\tgetDisabledUsersLimit(state) {\n\t\treturn state.disabledUsersLimit\n\t},\n\tgetUserCount(state) {\n\t\treturn state.userCount\n\t},\n\tgetShowConfig(state) {\n\t\treturn state.showConfig\n\t},\n}\n\nconst CancelToken = axios.CancelToken\nlet searchRequestCancelSource = null\n\nconst actions = {\n\n\t/**\n\t * search users\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search amongst users\n\t * @return {Promise}\n\t */\n\tsearchUsers(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search })).catch((error) => {\n\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Get user details\n\t *\n\t * @param {object} context store context\n\t * @param {string} userId user id\n\t * @return {Promise}\n\t */\n\tgetUser(context, userId) {\n\t\treturn api.get(generateOcsUrl(`cloud/users/${userId}`)).catch((error) => {\n\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Get all users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search amongst users\n\t * @param {string} options.group Get users from group\n\t * @return {Promise}\n\t */\n\tgetUsers(context, { offset, limit, search, group }) {\n\t\tif (searchRequestCancelSource) {\n\t\t\tsearchRequestCancelSource.cancel('Operation canceled by another search request.')\n\t\t}\n\t\tsearchRequestCancelSource = CancelToken.source()\n\t\tsearch = typeof search === 'string' ? search : ''\n\n\t\t/**\n\t\t * Adding filters in the search bar such as in:files, in:users, etc.\n\t\t * collides with this particular search, so we need to remove them\n\t\t * here and leave only the original search query\n\t\t */\n\t\tsearch = search.replace(/in:[^\\s]+/g, '').trim()\n\n\t\tgroup = typeof group === 'string' ? group : ''\n\t\tif (group !== '') {\n\t\t\treturn api.get(generateOcsUrl('cloud/groups/{group}/users/details?offset={offset}&limit={limit}&search={search}', { group: encodeURIComponent(group), offset, limit, search }), {\n\t\t\t\tcancelToken: searchRequestCancelSource.token,\n\t\t\t})\n\t\t\t\t.then((response) => {\n\t\t\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\t\t\tif (usersCount > 0) {\n\t\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t\t}\n\t\t\t\t\treturn usersCount\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search }), {\n\t\t\tcancelToken: searchRequestCancelSource.token,\n\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\t\tif (usersCount > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t}\n\t\t\t\treturn usersCount\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t\t}\n\t\t\t})\n\t},\n\n\t/**\n\t * Get recent users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search query\n\t * @return {Promise<number>}\n\t */\n\tasync getRecentUsers(context, { offset, limit, search }) {\n\t\tconst url = generateOcsUrl('cloud/users/recent?offset={offset}&limit={limit}&search={search}', { offset, limit, search })\n\t\ttry {\n\t\t\tconst response = await api.get(url)\n\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\tif (usersCount > 0) {\n\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t}\n\t\t\treturn usersCount\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', error)\n\t\t}\n\t},\n\n\t/**\n\t * Get disabled users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param options.search\n\t * @return {Promise<number>}\n\t */\n\tasync getDisabledUsers(context, { offset, limit, search }) {\n\t\tconst url = generateOcsUrl('cloud/users/disabled?offset={offset}&limit={limit}&search={search}', { offset, limit, search })\n\t\ttry {\n\t\t\tconst response = await api.get(url)\n\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\tif (usersCount > 0) {\n\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\tcontext.commit('updateDisabledUsers', response.data.ocs.data.users)\n\t\t\t}\n\t\t\treturn usersCount\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', error)\n\t\t}\n\t},\n\n\tgetGroups(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\t\tconst limitParam = limit === -1 ? '' : `&limit=${limit}`\n\t\treturn api.get(generateOcsUrl('cloud/groups?offset={offset}&search={search}', { offset, search }) + limitParam)\n\t\t\t.then((response) => {\n\t\t\t\tif (Object.keys(response.data.ocs.data.groups).length > 0) {\n\t\t\t\t\tresponse.data.ocs.data.groups.forEach(function(group) {\n\t\t\t\t\t\tcontext.commit('addGroup', { gid: group, displayName: group })\n\t\t\t\t\t})\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\t/**\n\t * Get all users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search -\n\t * @return {Promise}\n\t */\n\tgetUsersFromList(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search }))\n\t\t\t.then((response) => {\n\t\t\t\tif (Object.keys(response.data.ocs.data.users).length > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\t/**\n\t * Get all users with full details from a groupid\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.groupid -\n\t * @return {Promise}\n\t */\n\tgetUsersFromGroup(context, { groupid, offset, limit }) {\n\t\treturn api.get(generateOcsUrl('cloud/users/{groupId}/details?offset={offset}&limit={limit}', { groupId: encodeURIComponent(groupid), offset, limit }))\n\t\t\t.then((response) => context.commit('getUsersFromList', response.data.ocs.data.users))\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\tgetPasswordPolicyMinLength(context) {\n\t\tif (getCapabilities().password_policy && getCapabilities().password_policy.minLength) {\n\t\t\tcontext.commit('setPasswordPolicyMinLength', getCapabilities().password_policy.minLength)\n\t\t\treturn getCapabilities().password_policy.minLength\n\t\t}\n\t\treturn false\n\t},\n\n\t/**\n\t * Add group\n\t *\n\t * @param {object} context store context\n\t * @param {string} gid Group id\n\t * @return {Promise}\n\t */\n\taddGroup(context, gid) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/groups'), { groupid: gid })\n\t\t\t\t.then((response) => {\n\t\t\t\t\tcontext.commit('addGroup', { gid, displayName: gid })\n\t\t\t\t\treturn { gid, displayName: gid }\n\t\t\t\t})\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { gid, error })\n\t\t\t// let's throw one more time to prevent the view\n\t\t\t// from adding the user to a group that doesn't exists\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Rename group\n\t *\n\t * @param {object} context store context\n\t * @param {string} groupid Group id\n\t * @param {string} displayName Group display name\n\t * @return {Promise}\n\t */\n\trenameGroup(context, { groupid, displayName }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.put(generateOcsUrl('cloud/groups/{groupId}', { groupId: encodeURIComponent(groupid) }), { key: 'displayname', value: displayName })\n\t\t\t\t.then((response) => {\n\t\t\t\t\tcontext.commit('renameGroup', { gid: groupid, displayName })\n\t\t\t\t\treturn { groupid, displayName }\n\t\t\t\t})\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { groupid, error })\n\t\t\t// let's throw one more time to prevent the view\n\t\t\t// from renaming the group\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Remove group\n\t *\n\t * @param {object} context store context\n\t * @param {string} gid Group id\n\t * @return {Promise}\n\t */\n\tremoveGroup(context, gid) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/groups/{groupId}', { groupId: encodeURIComponent(gid) }))\n\t\t\t\t.then((response) => context.commit('removeGroup', gid))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { gid, error }))\n\t},\n\n\t/**\n\t * Add user to group\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\taddUserGroup(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/groups', { userid }), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('addUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Remove user from group\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\tremoveUserGroup(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}/groups', { userid }), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('removeUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\t// let's throw one more time to prevent\n\t\t\t// the view from removing the user row on failure\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Add user to group admin\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\taddUserSubAdmin(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/subadmins', { userid }), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('addUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Remove user from group admin\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\tremoveUserSubAdmin(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}/subadmins', { userid }), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('removeUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Mark all user devices for remote wipe\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tasync wipeUserDevices(context, userid) {\n\t\ttry {\n\t\t\tawait api.requireAdmin()\n\t\t\treturn await api.post(generateOcsUrl('cloud/users/{userid}/wipe', { userid }))\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\treturn Promise.reject(new Error('Failed to wipe user devices'))\n\t\t}\n\t},\n\n\t/**\n\t * Delete a user\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tdeleteUser(context, userid) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}', { userid }))\n\t\t\t\t.then((response) => context.commit('deleteUser', userid))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Add a user\n\t *\n\t * @param {object} context store context\n\t * @param {Function} context.commit -\n\t * @param {Function} context.dispatch -\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.password User password\n\t * @param {string} options.displayName User display name\n\t * @param {string} options.email User email\n\t * @param {string} options.groups User groups\n\t * @param {string} options.subadmin User subadmin groups\n\t * @param {string} options.quota User email\n\t * @param {string} options.language User language\n\t * @param {string} options.manager User manager\n\t * @return {Promise}\n\t */\n\taddUser({ commit, dispatch }, { userid, password, displayName, email, groups, subadmin, quota, language, manager }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users'), { userid, password, displayName, email, groups, subadmin, quota, language, manager })\n\t\t\t\t.then((response) => dispatch('addUserData', userid || response.data.ocs.data.id))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcommit('API_FAILURE', { userid, error })\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Get user data and commit addition\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\taddUserData(context, userid) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.get(generateOcsUrl('cloud/users/{userid}', { userid }))\n\t\t\t\t.then((response) => context.commit('addUserData', response))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Enable or disable user\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {boolean} options.enabled User enablement status\n\t * @return {Promise}\n\t */\n\tenableDisableUser(context, { userid, enabled = true }) {\n\t\tconst userStatus = enabled ? 'enable' : 'disable'\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.put(generateOcsUrl('cloud/users/{userid}/{userStatus}', { userid, userStatus }))\n\t\t\t\t.then((response) => context.commit('enableDisableUser', { userid, enabled }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Edit user data\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.key User field to edit\n\t * @param {string} options.value Value of the change\n\t * @return {Promise}\n\t */\n\tasync setUserData(context, { userid, key, value }) {\n\t\tconst allowedEmpty = ['email', 'displayname', 'manager']\n\t\tif (['email', 'language', 'quota', 'displayname', 'password', 'manager'].indexOf(key) !== -1) {\n\t\t\t// We allow empty email or displayname\n\t\t\tif (typeof value === 'string'\n\t\t\t\t&& (\n\t\t\t\t\t(allowedEmpty.indexOf(key) === -1 && value.length > 0)\n\t\t\t\t\t|| allowedEmpty.indexOf(key) !== -1\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\ttry {\n\t\t\t\t\tawait api.requireAdmin()\n\t\t\t\t\tawait api.put(generateOcsUrl('cloud/users/{userid}', { userid }), { key, value })\n\t\t\t\t\treturn context.commit('setUserData', { userid, key, value })\n\t\t\t\t} catch (error) {\n\t\t\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn Promise.reject(new Error('Invalid request data'))\n\t},\n\n\t/**\n\t * Send welcome mail\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tsendWelcomeMail(context, userid) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/welcome', { userid }))\n\t\t\t\t.then(response => true)\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport api from './api.js'\nimport Vue from 'vue'\nimport { generateUrl } from '@nextcloud/router'\nimport { showError, showInfo } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\n\nconst state = {\n\tapps: [],\n\tbundles: loadState('settings', 'appstoreBundles', []),\n\tcategories: [],\n\tupdateCount: loadState('settings', 'appstoreUpdateCount', 0),\n\tloading: {},\n\tgettingCategoriesPromise: null,\n}\n\nconst mutations = {\n\n\tAPPS_API_FAILURE(state, error) {\n\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.') + '<br>' + error.error.response.data.data.message, { isHTML: true })\n\t\tconsole.error(state, error)\n\t},\n\n\tinitCategories(state, { categories, updateCount }) {\n\t\tstate.categories = categories\n\t\tstate.updateCount = updateCount\n\t},\n\n\tupdateCategories(state, categoriesPromise) {\n\t\tstate.gettingCategoriesPromise = categoriesPromise\n\t},\n\n\tsetUpdateCount(state, updateCount) {\n\t\tstate.updateCount = updateCount\n\t},\n\n\taddCategory(state, category) {\n\t\tstate.categories.push(category)\n\t},\n\n\tappendCategories(state, categoriesArray) {\n\t\t// convert obj to array\n\t\tstate.categories = categoriesArray\n\t},\n\n\tsetAllApps(state, apps) {\n\t\tstate.apps = apps\n\t},\n\n\tsetError(state, { appId, error }) {\n\t\tif (!Array.isArray(appId)) {\n\t\t\tappId = [appId]\n\t\t}\n\t\tappId.forEach((_id) => {\n\t\t\tconst app = state.apps.find(app => app.id === _id)\n\t\t\tapp.error = error\n\t\t})\n\t},\n\n\tclearError(state, { appId, error }) {\n\t\tconst app = state.apps.find(app => app.id === appId)\n\t\tapp.error = null\n\t},\n\n\tenableApp(state, { appId, groups }) {\n\t\tconst app = state.apps.find(app => app.id === appId)\n\t\tapp.active = true\n\t\tapp.groups = groups\n\t},\n\n\tsetInstallState(state, { appId, canInstall }) {\n\t\tconst app = state.apps.find(app => app.id === appId)\n\t\tif (app) {\n\t\t\tapp.canInstall = canInstall === true\n\t\t}\n\t},\n\n\tdisableApp(state, appId) {\n\t\tconst app = state.apps.find(app => app.id === appId)\n\t\tapp.active = false\n\t\tapp.groups = []\n\t\tif (app.removable) {\n\t\t\tapp.canUnInstall = true\n\t\t}\n\t},\n\n\tuninstallApp(state, appId) {\n\t\tstate.apps.find(app => app.id === appId).active = false\n\t\tstate.apps.find(app => app.id === appId).groups = []\n\t\tstate.apps.find(app => app.id === appId).needsDownload = true\n\t\tstate.apps.find(app => app.id === appId).installed = false\n\t\tstate.apps.find(app => app.id === appId).canUnInstall = false\n\t\tstate.apps.find(app => app.id === appId).canInstall = true\n\t},\n\n\tupdateApp(state, appId) {\n\t\tconst app = state.apps.find(app => app.id === appId)\n\t\tconst version = app.update\n\t\tapp.update = null\n\t\tapp.version = version\n\t\tstate.updateCount--\n\n\t},\n\n\tresetApps(state) {\n\t\tstate.apps = []\n\t},\n\treset(state) {\n\t\tstate.apps = []\n\t\tstate.categories = []\n\t\tstate.updateCount = 0\n\t},\n\tstartLoading(state, id) {\n\t\tif (Array.isArray(id)) {\n\t\t\tid.forEach((_id) => {\n\t\t\t\tVue.set(state.loading, _id, true)\n\t\t\t})\n\t\t} else {\n\t\t\tVue.set(state.loading, id, true)\n\t\t}\n\t},\n\tstopLoading(state, id) {\n\t\tif (Array.isArray(id)) {\n\t\t\tid.forEach((_id) => {\n\t\t\t\tVue.set(state.loading, _id, false)\n\t\t\t})\n\t\t} else {\n\t\t\tVue.set(state.loading, id, false)\n\t\t}\n\t},\n}\n\nconst getters = {\n\tloading(state) {\n\t\treturn function(id) {\n\t\t\treturn state.loading[id]\n\t\t}\n\t},\n\tgetCategories(state) {\n\t\treturn state.categories\n\t},\n\tgetAllApps(state) {\n\t\treturn state.apps\n\t},\n\tgetAppBundles(state) {\n\t\treturn state.bundles\n\t},\n\tgetUpdateCount(state) {\n\t\treturn state.updateCount\n\t},\n\tgetCategoryById: (state) => (selectedCategoryId) => {\n\t\treturn state.categories.find((category) => category.id === selectedCategoryId)\n\t},\n}\n\nconst actions = {\n\n\tenableApp(context, { appId, groups }) {\n\t\tlet apps\n\t\tif (Array.isArray(appId)) {\n\t\t\tapps = appId\n\t\t} else {\n\t\t\tapps = [appId]\n\t\t}\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\tcontext.commit('startLoading', 'install')\n\t\t\treturn api.post(generateUrl('settings/apps/enable'), { appIds: apps, groups })\n\t\t\t\t.then((response) => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tapps.forEach(_appId => {\n\t\t\t\t\t\tcontext.commit('enableApp', { appId: _appId, groups })\n\t\t\t\t\t})\n\n\t\t\t\t\t// check for server health\n\t\t\t\t\treturn api.get(generateUrl('apps/files/'))\n\t\t\t\t\t\t.then(() => {\n\t\t\t\t\t\t\tif (response.data.update_required) {\n\t\t\t\t\t\t\t\tshowInfo(\n\t\t\t\t\t\t\t\t\tt(\n\t\t\t\t\t\t\t\t\t\t'settings',\n\t\t\t\t\t\t\t\t\t\t'The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds.',\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tonClick: () => window.location.reload(),\n\t\t\t\t\t\t\t\t\t\tclose: false,\n\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\t\t\tlocation.reload()\n\t\t\t\t\t\t\t\t}, 5000)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(() => {\n\t\t\t\t\t\t\tif (!Array.isArray(appId)) {\n\t\t\t\t\t\t\t\tshowError(t('settings', 'Error: This app cannot be enabled because it makes the server unstable'))\n\t\t\t\t\t\t\t\tcontext.commit('setError', {\n\t\t\t\t\t\t\t\t\tappId: apps,\n\t\t\t\t\t\t\t\t\terror: t('settings', 'Error: This app cannot be enabled because it makes the server unstable'),\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\tcontext.dispatch('disableApp', { appId })\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tcontext.commit('setError', {\n\t\t\t\t\t\tappId: apps,\n\t\t\t\t\t\terror: error.response.data.data.message,\n\t\t\t\t\t})\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\tforceEnableApp(context, { appId, groups }) {\n\t\tlet apps\n\t\tif (Array.isArray(appId)) {\n\t\t\tapps = appId\n\t\t} else {\n\t\t\tapps = [appId]\n\t\t}\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\tcontext.commit('startLoading', 'install')\n\t\t\treturn api.post(generateUrl('settings/apps/force'), { appId })\n\t\t\t\t.then((response) => {\n\t\t\t\t\tcontext.commit('setInstallState', { appId, canInstall: true })\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tcontext.commit('setError', {\n\t\t\t\t\t\tappId: apps,\n\t\t\t\t\t\terror: error.response.data.data.message,\n\t\t\t\t\t})\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\tdisableApp(context, { appId }) {\n\t\tlet apps\n\t\tif (Array.isArray(appId)) {\n\t\t\tapps = appId\n\t\t} else {\n\t\t\tapps = [appId]\n\t\t}\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\treturn api.post(generateUrl('settings/apps/disable'), { appIds: apps })\n\t\t\t\t.then((response) => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tapps.forEach(_appId => {\n\t\t\t\t\t\tcontext.commit('disableApp', _appId)\n\t\t\t\t\t})\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\tuninstallApp(context, { appId }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\tcontext.commit('startLoading', appId)\n\t\t\treturn api.get(generateUrl(`settings/apps/uninstall/${appId}`))\n\t\t\t\t.then((response) => {\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('uninstallApp', appId)\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\n\tupdateApp(context, { appId }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\tcontext.commit('startLoading', appId)\n\t\t\tcontext.commit('startLoading', 'install')\n\t\t\treturn api.get(generateUrl(`settings/apps/update/${appId}`))\n\t\t\t\t.then((response) => {\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('updateApp', appId)\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\n\tgetAllApps(context) {\n\t\tcontext.commit('startLoading', 'list')\n\t\treturn api.get(generateUrl('settings/apps/list'))\n\t\t\t.then((response) => {\n\t\t\t\tcontext.commit('setAllApps', response.data.apps)\n\t\t\t\tcontext.commit('stopLoading', 'list')\n\t\t\t\treturn true\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\tasync getCategories(context, { shouldRefetchCategories = false } = {}) {\n\t\tif (shouldRefetchCategories || !context.state.gettingCategoriesPromise) {\n\t\t\tcontext.commit('startLoading', 'categories')\n\t\t\ttry {\n\t\t\t\tconst categoriesPromise = api.get(generateUrl('settings/apps/categories'))\n\t\t\t\tcontext.commit('updateCategories', categoriesPromise)\n\t\t\t\tconst categoriesPromiseResponse = await categoriesPromise\n\t\t\t\tif (categoriesPromiseResponse.data.length > 0) {\n\t\t\t\t\tcontext.commit('appendCategories', categoriesPromiseResponse.data)\n\t\t\t\t\tcontext.commit('stopLoading', 'categories')\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\tcontext.commit('stopLoading', 'categories')\n\t\t\t\treturn false\n\t\t\t} catch (error) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t}\n\t\treturn context.state.gettingCategoriesPromise\n\t},\n\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { loadState } from '@nextcloud/initial-state'\n\nconst state = {\n\tserverData: loadState('settings', 'usersSettings', {}),\n}\nconst mutations = {\n\tsetServerData(state, data) {\n\t\tstate.serverData = data\n\t},\n}\nconst getters = {\n\tgetServerData(state) {\n\t\treturn state.serverData\n\t},\n}\nconst actions = {}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport api from './api.js'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nconst state = {}\nconst mutations = {}\nconst getters = {}\nconst actions = {\n\t/**\n\t * Set application config in database\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.app Application name\n\t * @param {boolean} options.key Config key\n\t * @param {boolean} options.value Value to set\n\t * @return {Promise}\n\t */\n\tsetAppConfig(context, { app, key, value }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(generateOcsUrl('apps/provisioning_api/api/v1/config/apps/{app}/{key}', { app, key }), { value })\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { app, key, value, error }))\n\t},\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Vue from 'vue'\nimport Vuex, { Store } from 'vuex'\nimport users from './users.js'\nimport apps from './apps.js'\nimport settings from './users-settings.js'\nimport oc from './oc.js'\nimport { showError } from '@nextcloud/dialogs'\n\nVue.use(Vuex)\n\nconst debug = process.env.NODE_ENV !== 'production'\n\nconst mutations = {\n\tAPI_FAILURE(state, error) {\n\t\ttry {\n\t\t\tconst message = error.error.response.data.ocs.meta.message\n\t\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.') + '<br>' + message, { isHTML: true })\n\t\t} catch (e) {\n\t\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.'))\n\t\t}\n\t\tconsole.error(state, error)\n\t},\n}\n\nlet store = null\n\nexport const useStore = () => {\n\tif (store === null) {\n\t\tstore = new Store({\n\t\t\tmodules: {\n\t\t\t\tusers,\n\t\t\t\tapps,\n\t\t\t\tsettings,\n\t\t\t\toc,\n\t\t\t},\n\t\t\tstrict: debug,\n\t\t\tmutations,\n\t\t})\n\t}\n\treturn store\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * https://github.com/nextcloud/server/blob/208e38e84e1a07a49699aa90dc5b7272d24489f0/lib/private/Group/MetaData.php#L34\n */\nexport var GroupSorting;\n(function (GroupSorting) {\n GroupSorting[GroupSorting[\"UserCount\"] = 1] = \"UserCount\";\n GroupSorting[GroupSorting[\"GroupName\"] = 2] = \"GroupName\";\n})(GroupSorting || (GroupSorting = {}));\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport default getLoggerBuilder()\n .setApp('settings')\n .detectUser()\n .build();\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcContent,{attrs:{\"app-name\":\"settings\"}},[_c('router-view',{attrs:{\"name\":\"navigation\"}}),_vm._v(\" \"),_c('router-view'),_vm._v(\" \"),_c('router-view',{attrs:{\"name\":\"sidebar\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsApp.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsApp.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./SettingsApp.vue?vue&type=template&id=02c6e0e9\"\nimport script from \"./SettingsApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SettingsApp.vue?vue&type=script&setup=true&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// Dynamic loading\nconst AppStore = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStore.vue');\nconst AppStoreNavigation = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStoreNavigation.vue');\nconst AppStoreSidebar = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStoreSidebar.vue');\nconst UserManagement = () => import(/* webpackChunkName: 'settings-users' */ '../views/UserManagement.vue');\nconst UserManagementNavigation = () => import(/* webpackChunkName: 'settings-users' */ '../views/UserManagementNavigation.vue');\nconst routes = [\n {\n name: 'users',\n path: '/:index(index.php/)?settings/users',\n components: {\n default: UserManagement,\n navigation: UserManagementNavigation,\n },\n props: true,\n children: [\n {\n path: ':selectedGroup',\n name: 'group',\n },\n ],\n },\n {\n path: '/:index(index.php/)?settings/apps',\n name: 'apps',\n // redirect to our default route - the app discover section\n redirect: {\n name: 'apps-category',\n params: {\n category: 'discover',\n },\n },\n components: {\n default: AppStore,\n navigation: AppStoreNavigation,\n sidebar: AppStoreSidebar,\n },\n children: [\n {\n path: ':category',\n name: 'apps-category',\n children: [\n {\n path: ':id',\n name: 'apps-details',\n },\n ],\n },\n ],\n },\n];\nexport default routes;\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport Vue from 'vue';\nimport Router from 'vue-router';\nimport { generateUrl } from '@nextcloud/router';\nimport routes from './routes.ts';\nVue.use(Router);\nconst router = new Router({\n mode: 'history',\n // if index.php is in the url AND we got this far, then it's working:\n // let's keep using index.php in the url\n base: generateUrl(''),\n linkActiveClass: 'active',\n routes,\n});\nexport default router;\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport Vue from 'vue';\nimport VTooltip from 'v-tooltip';\nimport { sync } from 'vuex-router-sync';\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n';\nimport SettingsApp from './views/SettingsApp.vue';\nimport router from './router/index.ts';\nimport { useStore } from './store/index.js';\nimport { getRequestToken } from '@nextcloud/auth';\nimport { PiniaVuePlugin, createPinia } from 'pinia';\nVue.use(VTooltip, { defaultHtml: false });\nconst store = useStore();\nsync(store, router);\n// CSP config for webpack dynamic chunk loading\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(getRequestToken() ?? '');\n// bind to window\nVue.prototype.t = t;\nVue.prototype.n = n;\nVue.use(PiniaVuePlugin);\nconst pinia = createPinia();\nexport default new Vue({\n router,\n store,\n pinia,\n render: h => h(SettingsApp),\n el: '#content',\n});\n","exports.sync = function (store, router, options) {\n var moduleName = (options || {}).moduleName || 'route'\n\n store.registerModule(moduleName, {\n namespaced: true,\n state: cloneRoute(router.currentRoute),\n mutations: {\n 'ROUTE_CHANGED': function ROUTE_CHANGED (state, transition) {\n store.state[moduleName] = cloneRoute(transition.to, transition.from)\n }\n }\n })\n\n var isTimeTraveling = false\n var currentPath\n\n // sync router on store change\n var storeUnwatch = store.watch(\n function (state) { return state[moduleName]; },\n function (route) {\n var fullPath = route.fullPath;\n if (fullPath === currentPath) {\n return\n }\n if (currentPath != null) {\n isTimeTraveling = true\n router.push(route)\n }\n currentPath = fullPath\n },\n { sync: true }\n )\n\n // sync store on router navigation\n var afterEachUnHook = router.afterEach(function (to, from) {\n if (isTimeTraveling) {\n isTimeTraveling = false\n return\n }\n currentPath = to.fullPath\n store.commit(moduleName + '/ROUTE_CHANGED', { to: to, from: from })\n })\n\n return function unsync () {\n // On unsync, remove router hook\n if (afterEachUnHook != null) {\n afterEachUnHook()\n }\n\n // On unsync, remove store watch\n if (storeUnwatch != null) {\n storeUnwatch()\n }\n\n // On unsync, unregister Module with store\n store.unregisterModule(moduleName)\n }\n}\n\nfunction cloneRoute (to, from) {\n var clone = {\n name: to.name,\n path: to.path,\n hash: to.hash,\n query: to.query,\n params: to.params,\n fullPath: to.fullPath,\n meta: to.meta\n }\n if (from) {\n clone.from = cloneRoute(from)\n }\n return Object.freeze(clone)\n}\n\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + ({\"3239\":\"settings-users\",\"4529\":\"settings-apps-view\"}[chunkId] || chunkId) + \"-\" + chunkId + \".js?v=\" + {\"1439\":\"ea7fe1a8ac2a5151d64a\",\"1521\":\"492376df2ab62aeaa4a6\",\"3239\":\"289d864aa1f722369990\",\"4254\":\"5c2324570f66dff0c8a1\",\"4529\":\"de18838ad6dec08f6c9f\",\"5085\":\"64c92a904d2e63e1f8f0\",\"8737\":\"3bd25eeb3ff8eb505faf\",\"9480\":\"26f38e1d6dabdd83315b\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2689;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2689: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(18539)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","sanitize","url","replace","requireAdmin","confirmPassword","get","options","axios","post","data","put","delete","params","localStorage","getBuilder","persist","build","defaults","id","name","usercount","disabled","canAdd","canRemove","state","users","groups","orderBy","GroupSorting","UserCount","minPasswordLength","usersOffset","usersLimit","disabledUsersOffset","disabledUsersLimit","userCount","showConfig","showStoragePath","getItem","showUserBackend","showLastLogin","showNewUserForm","showLanguages","mutations","appendUsers","usersObj","existingUsers","map","_ref","newUsers","Object","values","filter","_ref2","includes","concat","updateDisabledUsers","_usersObj","setPasswordPolicyMinLength","length","initGroups","_ref3","group","assign","addGroup","_ref4","gid","displayName","find","unshift","e","console","error","renameGroup","_ref5","groupIndex","findIndex","groupSearch","updatedGroup","splice","removeGroup","addUserGroup","_ref6","userid","user","enabled","push","removeUserGroup","_ref7","indexOf","addUserSubAdmin","_ref8","subadmin","removeUserSubAdmin","_ref9","deleteUser","userIndex","this","commit","actionType","addUserData","response","ocs","enableDisableUser","_ref10","updateUserCounts","_ref11","recentGroup","disabledGroup","forEach","userGroup","warn","logger","setUserData","_ref12","key","value","humanValue","parseFileSize","resetUsers","setShowConfig","_ref13","setItem","JSON","stringify","setGroupSorting","sorting","oldValue","generateUrl","String","catch","showError","t","getters","getUsers","getGroups","getSubadminGroups","getSortedGroups","sort","a","b","numA","numB","localeCompare","getGroupSorting","getPasswordPolicyMinLength","getUsersOffset","getUsersLimit","getDisabledUsersOffset","getDisabledUsersLimit","getUserCount","getShowConfig","CancelToken","searchRequestCancelSource","actions","searchUsers","context","_ref14","offset","limit","search","api","generateOcsUrl","getUser","userId","_ref15","cancel","source","trim","encodeURIComponent","cancelToken","token","then","usersCount","keys","getRecentUsers","_ref16","getDisabledUsers","_ref17","_ref18","limitParam","getUsersFromList","_ref19","getUsersFromGroup","_ref20","groupid","groupId","getCapabilities","password_policy","minLength","_ref21","_ref22","_ref23","_ref24","_ref25","wipeUserDevices","Promise","reject","Error","addUser","_ref26","_ref27","dispatch","password","email","quota","language","manager","_ref28","userStatus","_ref29","allowedEmpty","sendWelcomeMail","APPS_API_FAILURE","message","isHTML","initCategories","categories","updateCount","updateCategories","categoriesPromise","gettingCategoriesPromise","setUpdateCount","addCategory","category","appendCategories","categoriesArray","setAllApps","apps","setError","appId","Array","isArray","_id","app","clearError","enableApp","active","setInstallState","canInstall","disableApp","removable","canUnInstall","uninstallApp","needsDownload","installed","updateApp","version","update","resetApps","reset","startLoading","Vue","loading","stopLoading","appIds","_appId","update_required","showInfo","onClick","window","location","reload","close","setTimeout","forceEnableApp","finally","getAllApps","getCategories","shouldRefetchCategories","arguments","undefined","categoriesPromiseResponse","bundles","loadState","getAppBundles","getUpdateCount","getCategoryById","selectedCategoryId","setServerData","serverData","getServerData","setAppConfig","use","Vuex","API_FAILURE","meta","store","useStore","Store","modules","settings","oc","strict","process","getLoggerBuilder","setApp","detectUser","_defineComponent","__name","setup","__props","__sfc","NcContent","_vm","_c","_self","_setupProxy","attrs","_v","path","components","default","UserManagement","navigation","UserManagementNavigation","props","children","redirect","AppStore","AppStoreNavigation","sidebar","AppStoreSidebar","Router","mode","base","linkActiveClass","routes","VTooltip","defaultHtml","sync","router","__webpack_nonce__","btoa","_getRequestToken","getRequestToken","prototype","n","PiniaVuePlugin","pinia","createPinia","render","h","SettingsApp","el","cloneRoute","to","from","clone","hash","query","fullPath","freeze","exports","moduleName","registerModule","namespaced","currentRoute","transition","currentPath","isTimeTraveling","storeUnwatch","watch","route","afterEachUnHook","afterEach","unregisterModule","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","module","loaded","__webpack_modules__","call","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","r","getter","__esModule","d","definition","o","defineProperty","enumerable","f","chunkId","all","reduce","promises","u","g","globalThis","Function","obj","prop","hasOwnProperty","l","done","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","bind","type","target","head","appendChild","Symbol","toStringTag","nmd","paths","scriptUrl","importScripts","currentScript","test","p","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}