nextcloud/apps/settings/js/vue-settings-users-0cb35b72...

4777 lines
178 KiB
JavaScript

(window["webpackJsonpSettings"] = window["webpackJsonpSettings"] || []).push([["settings-users"],{
/***/ "./apps/settings/src/components/UserList.vue":
/*!***************************************************!*\
!*** ./apps/settings/src/components/UserList.vue ***!
\***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _UserList_vue_vue_type_template_id_6cba3aca_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./UserList.vue?vue&type=template&id=6cba3aca&scoped=true& */ "./apps/settings/src/components/UserList.vue?vue&type=template&id=6cba3aca&scoped=true&");
/* harmony import */ var _UserList_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./UserList.vue?vue&type=script&lang=js& */ "./apps/settings/src/components/UserList.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _UserList_vue_vue_type_style_index_0_id_6cba3aca_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./UserList.vue?vue&type=style&index=0&id=6cba3aca&scoped=true&lang=css& */ "./apps/settings/src/components/UserList.vue?vue&type=style&index=0&id=6cba3aca&scoped=true&lang=css&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");
/* normalize component */
var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
_UserList_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
_UserList_vue_vue_type_template_id_6cba3aca_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
_UserList_vue_vue_type_template_id_6cba3aca_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
false,
null,
"6cba3aca",
null
)
/* hot reload */
if (false) { var api; }
component.options.__file = "apps/settings/src/components/UserList.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);
/***/ }),
/***/ "./apps/settings/src/components/UserList.vue?vue&type=script&lang=js&":
/*!****************************************************************************!*\
!*** ./apps/settings/src/components/UserList.vue?vue&type=script&lang=js& ***!
\****************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserList_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib??vue-loader-options!./UserList.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserList_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ "./apps/settings/src/components/UserList.vue?vue&type=style&index=0&id=6cba3aca&scoped=true&lang=css&":
/*!************************************************************************************************************!*\
!*** ./apps/settings/src/components/UserList.vue?vue&type=style&index=0&id=6cba3aca&scoped=true&lang=css& ***!
\************************************************************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserList_vue_vue_type_style_index_0_id_6cba3aca_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib??vue-loader-options!./UserList.vue?vue&type=style&index=0&id=6cba3aca&scoped=true&lang=css& */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList.vue?vue&type=style&index=0&id=6cba3aca&scoped=true&lang=css&");
/* empty/unused harmony star reexport */
/***/ }),
/***/ "./apps/settings/src/components/UserList.vue?vue&type=template&id=6cba3aca&scoped=true&":
/*!**********************************************************************************************!*\
!*** ./apps/settings/src/components/UserList.vue?vue&type=template&id=6cba3aca&scoped=true& ***!
\**********************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_UserList_vue_vue_type_template_id_6cba3aca_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./UserList.vue?vue&type=template&id=6cba3aca&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList.vue?vue&type=template&id=6cba3aca&scoped=true&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_UserList_vue_vue_type_template_id_6cba3aca_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_UserList_vue_vue_type_template_id_6cba3aca_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
/***/ }),
/***/ "./apps/settings/src/components/UserList/UserRow.vue":
/*!***********************************************************!*\
!*** ./apps/settings/src/components/UserList/UserRow.vue ***!
\***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _UserRow_vue_vue_type_template_id_77960baa_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./UserRow.vue?vue&type=template&id=77960baa&scoped=true& */ "./apps/settings/src/components/UserList/UserRow.vue?vue&type=template&id=77960baa&scoped=true&");
/* harmony import */ var _UserRow_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./UserRow.vue?vue&type=script&lang=js& */ "./apps/settings/src/components/UserList/UserRow.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _UserRow_vue_vue_type_style_index_0_id_77960baa_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss& */ "./apps/settings/src/components/UserList/UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");
/* normalize component */
var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
_UserRow_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
_UserRow_vue_vue_type_template_id_77960baa_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
_UserRow_vue_vue_type_template_id_77960baa_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
false,
null,
"77960baa",
null
)
/* hot reload */
if (false) { var api; }
component.options.__file = "apps/settings/src/components/UserList/UserRow.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);
/***/ }),
/***/ "./apps/settings/src/components/UserList/UserRow.vue?vue&type=script&lang=js&":
/*!************************************************************************************!*\
!*** ./apps/settings/src/components/UserList/UserRow.vue?vue&type=script&lang=js& ***!
\************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRow_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib!../../../../../node_modules/vue-loader/lib??vue-loader-options!./UserRow.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRow.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRow_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ "./apps/settings/src/components/UserList/UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss&":
/*!*********************************************************************************************************************!*\
!*** ./apps/settings/src/components/UserList/UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss& ***!
\*********************************************************************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRow_vue_vue_type_style_index_0_id_77960baa_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib??vue-loader-options!./UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss& */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss&");
/* empty/unused harmony star reexport */
/***/ }),
/***/ "./apps/settings/src/components/UserList/UserRow.vue?vue&type=template&id=77960baa&scoped=true&":
/*!******************************************************************************************************!*\
!*** ./apps/settings/src/components/UserList/UserRow.vue?vue&type=template&id=77960baa&scoped=true& ***!
\******************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRow_vue_vue_type_template_id_77960baa_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../node_modules/vue-loader/lib??vue-loader-options!./UserRow.vue?vue&type=template&id=77960baa&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRow.vue?vue&type=template&id=77960baa&scoped=true&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRow_vue_vue_type_template_id_77960baa_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRow_vue_vue_type_template_id_77960baa_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
/***/ }),
/***/ "./apps/settings/src/components/UserList/UserRowSimple.vue":
/*!*****************************************************************!*\
!*** ./apps/settings/src/components/UserList/UserRowSimple.vue ***!
\*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _UserRowSimple_vue_vue_type_template_id_ff154a08___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./UserRowSimple.vue?vue&type=template&id=ff154a08& */ "./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=template&id=ff154a08&");
/* harmony import */ var _UserRowSimple_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./UserRowSimple.vue?vue&type=script&lang=js& */ "./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _UserRowSimple_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./UserRowSimple.vue?vue&type=style&index=0&lang=scss& */ "./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=style&index=0&lang=scss&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");
/* normalize component */
var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
_UserRowSimple_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
_UserRowSimple_vue_vue_type_template_id_ff154a08___WEBPACK_IMPORTED_MODULE_0__["render"],
_UserRowSimple_vue_vue_type_template_id_ff154a08___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
false,
null,
null,
null
)
/* hot reload */
if (false) { var api; }
component.options.__file = "apps/settings/src/components/UserList/UserRowSimple.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);
/***/ }),
/***/ "./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=script&lang=js&":
/*!******************************************************************************************!*\
!*** ./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=script&lang=js& ***!
\******************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRowSimple_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib!../../../../../node_modules/vue-loader/lib??vue-loader-options!./UserRowSimple.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRowSimple_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ "./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=style&index=0&lang=scss&":
/*!***************************************************************************************************!*\
!*** ./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=style&index=0&lang=scss& ***!
\***************************************************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRowSimple_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib??vue-loader-options!./UserRowSimple.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=style&index=0&lang=scss&");
/* empty/unused harmony star reexport */
/***/ }),
/***/ "./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=template&id=ff154a08&":
/*!************************************************************************************************!*\
!*** ./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=template&id=ff154a08& ***!
\************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRowSimple_vue_vue_type_template_id_ff154a08___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../node_modules/vue-loader/lib??vue-loader-options!./UserRowSimple.vue?vue&type=template&id=ff154a08& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=template&id=ff154a08&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRowSimple_vue_vue_type_template_id_ff154a08___WEBPACK_IMPORTED_MODULE_0__["render"]; });
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRowSimple_vue_vue_type_template_id_ff154a08___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
/***/ }),
/***/ "./apps/settings/src/mixins/UserRowMixin.js":
/*!**************************************************!*\
!*** ./apps/settings/src/mixins/UserRowMixin.js ***!
\**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.js");
/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_router__WEBPACK_IMPORTED_MODULE_0__);
/**
* @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
*
* @author Greta Doci <gretadoci@gmail.com>
* @author John Molakvoæ <skjnldsv@protonmail.com>
* @author Roeland Jago Douma <roeland@famdouma.nl>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/* harmony default export */ __webpack_exports__["default"] = ({
props: {
user: {
type: Object,
required: true
},
settings: {
type: Object,
default: () => ({})
},
groups: {
type: Array,
default: () => []
},
subAdminsGroups: {
type: Array,
default: () => []
},
quotaOptions: {
type: Array,
default: () => []
},
showConfig: {
type: Object,
default: () => ({})
},
languages: {
type: Array,
required: true
},
externalActions: {
type: Array,
default: () => []
}
},
computed: {
/* GROUPS MANAGEMENT */
userGroups() {
const userGroups = this.groups.filter(group => this.user.groups.includes(group.id));
return userGroups;
},
userSubAdminsGroups() {
const userSubAdminsGroups = this.subAdminsGroups.filter(group => this.user.subadmin.includes(group.id));
return userSubAdminsGroups;
},
availableGroups() {
return this.groups.map(group => {
// clone object because we don't want
// to edit the original groups
const groupClone = Object.assign({}, group); // two settings here:
// 1. user NOT in group but no permission to add
// 2. user is in group but no permission to remove
groupClone.$isDisabled = group.canAdd === false && !this.user.groups.includes(group.id) || group.canRemove === false && this.user.groups.includes(group.id);
return groupClone;
});
},
/* QUOTA MANAGEMENT */
usedSpace() {
if (this.user.quota.used) {
return t('settings', '{size} used', {
size: OC.Util.humanFileSize(this.user.quota.used)
});
}
return t('settings', '{size} used', {
size: OC.Util.humanFileSize(0)
});
},
usedQuota() {
let quota = this.user.quota.quota;
if (quota > 0) {
quota = Math.min(100, Math.round(this.user.quota.used / quota * 100));
} else {
const usedInGB = this.user.quota.used / (10 * Math.pow(2, 30)); // asymptotic curve approaching 50% at 10GB to visualize used stace with infinite quota
quota = 95 * (1 - 1 / (usedInGB + 1));
}
return isNaN(quota) ? 0 : quota;
},
// Mapping saved values to objects
userQuota() {
if (this.user.quota.quota >= 0) {
// if value is valid, let's map the quotaOptions or return custom quota
const humanQuota = OC.Util.humanFileSize(this.user.quota.quota);
const userQuota = this.quotaOptions.find(quota => quota.id === humanQuota);
return userQuota || {
id: humanQuota,
label: humanQuota
};
} else if (this.user.quota.quota === 'default') {
// default quota is replaced by the proper value on load
return this.quotaOptions[0];
}
return this.quotaOptions[1]; // unlimited
},
/* PASSWORD POLICY? */
minPasswordLength() {
return this.$store.getters.getPasswordPolicyMinLength;
},
/* LANGUAGE */
userLanguage() {
const availableLanguages = this.languages[0].languages.concat(this.languages[1].languages);
const userLang = availableLanguages.find(lang => lang.code === this.user.language);
if (typeof userLang !== 'object' && this.user.language !== '') {
return {
code: this.user.language,
name: this.user.language
};
} else if (this.user.language === '') {
return false;
}
return userLang;
},
/* LAST LOGIN */
userLastLoginTooltip() {
if (this.user.lastLogin > 0) {
return OC.Util.formatDate(this.user.lastLogin);
}
return '';
},
userLastLogin() {
if (this.user.lastLogin > 0) {
return OC.Util.relativeModifiedDate(this.user.lastLogin);
}
return t('settings', 'Never');
}
},
methods: {
/**
* Generate avatar url
*
* @param {string} user The user name
* @param {int} size Size integer, default 32
* @returns {string}
*/
generateAvatar(user, size = 32) {
return Object(_nextcloud_router__WEBPACK_IMPORTED_MODULE_0__["generateUrl"])('/avatar/{user}/{size}?v={version}', {
user,
size,
version: oc_userconfig.avatar.version
});
}
}
});
/***/ }),
/***/ "./apps/settings/src/views/Users.vue":
/*!*******************************************!*\
!*** ./apps/settings/src/views/Users.vue ***!
\*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Users_vue_vue_type_template_id_889b7562_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Users.vue?vue&type=template&id=889b7562&scoped=true& */ "./apps/settings/src/views/Users.vue?vue&type=template&id=889b7562&scoped=true&");
/* harmony import */ var _Users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Users.vue?vue&type=script&lang=js& */ "./apps/settings/src/views/Users.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _Users_vue_vue_type_style_index_0_id_889b7562_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Users.vue?vue&type=style&index=0&id=889b7562&lang=scss&scoped=true& */ "./apps/settings/src/views/Users.vue?vue&type=style&index=0&id=889b7562&lang=scss&scoped=true&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");
/* normalize component */
var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
_Users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
_Users_vue_vue_type_template_id_889b7562_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
_Users_vue_vue_type_template_id_889b7562_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
false,
null,
"889b7562",
null
)
/* hot reload */
if (false) { var api; }
component.options.__file = "apps/settings/src/views/Users.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);
/***/ }),
/***/ "./apps/settings/src/views/Users.vue?vue&type=script&lang=js&":
/*!********************************************************************!*\
!*** ./apps/settings/src/views/Users.vue?vue&type=script&lang=js& ***!
\********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib??vue-loader-options!./Users.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/views/Users.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ "./apps/settings/src/views/Users.vue?vue&type=style&index=0&id=889b7562&lang=scss&scoped=true&":
/*!*****************************************************************************************************!*\
!*** ./apps/settings/src/views/Users.vue?vue&type=style&index=0&id=889b7562&lang=scss&scoped=true& ***!
\*****************************************************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Users_vue_vue_type_style_index_0_id_889b7562_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib??vue-loader-options!./Users.vue?vue&type=style&index=0&id=889b7562&lang=scss&scoped=true& */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/views/Users.vue?vue&type=style&index=0&id=889b7562&lang=scss&scoped=true&");
/* empty/unused harmony star reexport */
/***/ }),
/***/ "./apps/settings/src/views/Users.vue?vue&type=template&id=889b7562&scoped=true&":
/*!**************************************************************************************!*\
!*** ./apps/settings/src/views/Users.vue?vue&type=template&id=889b7562&scoped=true& ***!
\**************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Users_vue_vue_type_template_id_889b7562_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./Users.vue?vue&type=template&id=889b7562&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/views/Users.vue?vue&type=template&id=889b7562&scoped=true&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Users_vue_vue_type_template_id_889b7562_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Users_vue_vue_type_template_id_889b7562_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
/***/ }),
/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList.vue?vue&type=script&lang=js&":
/*!**************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/components/UserList.vue?vue&type=script&lang=js& ***!
\**************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/event-bus */ "./node_modules/@nextcloud/event-bus/dist/index.es.js");
/* harmony import */ var vue_infinite_loading__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue-infinite-loading */ "./node_modules/vue-infinite-loading/dist/vue-infinite-loading.js");
/* harmony import */ var vue_infinite_loading__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(vue_infinite_loading__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js");
/* harmony import */ var _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue */ "./node_modules/@nextcloud/vue/dist/ncvuecomponents.js");
/* harmony import */ var _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _nextcloud_vue_dist_Components_Multiselect__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/Multiselect */ "./node_modules/@nextcloud/vue/dist/Components/Multiselect.js");
/* harmony import */ var _nextcloud_vue_dist_Components_Multiselect__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_vue_dist_Components_Multiselect__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _UserList_UserRow__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./UserList/UserRow */ "./apps/settings/src/components/UserList/UserRow.vue");
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
const unlimitedQuota = {
id: 'none',
label: t('settings', 'Unlimited')
};
const defaultQuota = {
id: 'default',
label: t('settings', 'Default quota')
};
const newUser = {
id: '',
displayName: '',
password: '',
mailAddress: '',
groups: [],
subAdminsGroups: [],
quota: defaultQuota,
language: {
code: 'en',
name: t('settings', 'Default language')
}
};
/* harmony default export */ __webpack_exports__["default"] = ({
name: 'UserList',
components: {
Modal: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__["Modal"],
userRow: _UserList_UserRow__WEBPACK_IMPORTED_MODULE_5__["default"],
Multiselect: (_nextcloud_vue_dist_Components_Multiselect__WEBPACK_IMPORTED_MODULE_4___default()),
InfiniteLoading: (vue_infinite_loading__WEBPACK_IMPORTED_MODULE_1___default())
},
props: {
users: {
type: Array,
default: () => []
},
showConfig: {
type: Object,
required: true
},
selectedGroup: {
type: String,
default: null
},
externalActions: {
type: Array,
default: () => []
}
},
data() {
return {
unlimitedQuota,
defaultQuota,
loading: {
all: false,
groups: false
},
scrolled: false,
searchQuery: '',
newUser: Object.assign({}, newUser)
};
},
computed: {
settings() {
return this.$store.getters.getServerData;
},
selectedGroupDecoded() {
return decodeURIComponent(this.selectedGroup);
},
filteredUsers() {
if (this.selectedGroup === 'disabled') {
return this.users.filter(user => user.enabled === false);
}
if (!this.settings.isAdmin) {
// we don't want subadmins to edit themselves
return this.users.filter(user => user.enabled !== false);
}
return this.users.filter(user => user.enabled !== false);
},
groups() {
// data provided php side + remove the disabled group
return this.$store.getters.getGroups.filter(group => group.id !== 'disabled').sort((a, b) => a.name.localeCompare(b.name));
},
canAddGroups() {
// disabled if no permission to add new users to group
return this.groups.map(group => {
// clone object because we don't want
// to edit the original groups
group = Object.assign({}, group);
group.$isDisabled = group.canAdd === false;
return group;
});
},
subAdminsGroups() {
// data provided php side
return this.$store.getters.getSubadminGroups;
},
quotaOptions() {
// convert the preset array into objects
const quotaPreset = this.settings.quotaPreset.reduce((acc, cur) => acc.concat({
id: cur,
label: cur
}), []); // add default presets
quotaPreset.unshift(this.unlimitedQuota);
quotaPreset.unshift(this.defaultQuota);
return quotaPreset;
},
minPasswordLength() {
return this.$store.getters.getPasswordPolicyMinLength;
},
usersOffset() {
return this.$store.getters.getUsersOffset;
},
usersLimit() {
return this.$store.getters.getUsersLimit;
},
usersCount() {
return this.users.length;
},
/* LANGUAGES */
languages() {
return [{
label: t('settings', 'Common languages'),
languages: this.settings.languages.commonlanguages
}, {
label: t('settings', 'All languages'),
languages: this.settings.languages.languages
}];
}
},
watch: {
// watch url change and group select
selectedGroup(val, old) {
// if selected is the disabled group but it's empty
this.redirectIfDisabled();
this.$store.commit('resetUsers');
this.$refs.infiniteLoading.stateChanger.reset();
this.setNewUserDefaultGroup(val);
},
// make sure the infiniteLoading state is changed if we manually
// add/remove data from the store
usersCount(val, old) {
// deleting the last user, reset the list
if (val === 0 && old === 1) {
this.$refs.infiniteLoading.stateChanger.reset(); // adding the first user, warn the infiniteLoader that
// the list is not empty anymore (we don't fetch the newly
// added user as we already have all the info we need)
} else if (val === 1 && old === 0) {
this.$refs.infiniteLoading.stateChanger.loaded();
}
}
},
mounted() {
if (!this.settings.canChangePassword) {
OC.Notification.showTemporary(t('settings', 'Password change is disabled because the master key is disabled'));
}
/**
* Reset and init new user form
*/
this.resetForm();
/**
* Register search
*/
Object(_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_0__["subscribe"])('nextcloud:unified-search.search', this.search);
Object(_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_0__["subscribe"])('nextcloud:unified-search.reset', this.resetSearch);
/**
* If disabled group but empty, redirect
*/
this.redirectIfDisabled();
},
beforeDestroy() {
Object(_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_0__["unsubscribe"])('nextcloud:unified-search.search', this.search);
Object(_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_0__["unsubscribe"])('nextcloud:unified-search.reset', this.resetSearch);
},
methods: {
onScroll(event) {
this.scrolled = event.target.scrollTo > 0;
},
/**
* Validate quota string to make sure it's a valid human file size
*
* @param {string} quota Quota in readable format '5 GB'
* @returns {Object}
*/
validateQuota(quota) {
// only used for new presets sent through @Tag
const validQuota = OC.Util.computerFileSize(quota);
if (validQuota !== null && validQuota >= 0) {
// unify format output
quota = OC.Util.humanFileSize(OC.Util.computerFileSize(quota));
this.newUser.quota = {
id: quota,
label: quota
};
return this.newUser.quota;
} // Default is unlimited
this.newUser.quota = this.quotaOptions[0];
return this.quotaOptions[0];
},
infiniteHandler($state) {
this.$store.dispatch('getUsers', {
offset: this.usersOffset,
limit: this.usersLimit,
group: this.selectedGroup !== 'disabled' ? this.selectedGroup : '',
search: this.searchQuery
}).then(response => {
response ? $state.loaded() : $state.complete();
});
},
/* SEARCH */
search({
query
}) {
this.searchQuery = query;
this.$store.commit('resetUsers');
this.$refs.infiniteLoading.stateChanger.reset();
},
resetSearch() {
this.search({
query: ''
});
},
resetForm() {
// revert form to original state
this.newUser = Object.assign({}, newUser);
/**
* Init default language from server data. The use of this.settings
* requires a computed variable, which break the v-model binding of the form,
* this is a much easier solution than getter and setter on a computed var
*/
if (this.settings.defaultLanguage) {
vue__WEBPACK_IMPORTED_MODULE_2__["default"].set(this.newUser.language, 'code', this.settings.defaultLanguage);
}
/**
* In case the user directly loaded the user list within a group
* the watch won't be triggered. We need to initialize it.
*/
this.setNewUserDefaultGroup(this.selectedGroup);
this.loading.all = false;
},
createUser() {
this.loading.all = true;
this.$store.dispatch('addUser', {
userid: this.newUser.id,
password: this.newUser.password,
displayName: this.newUser.displayName,
email: this.newUser.mailAddress,
groups: this.newUser.groups.map(group => group.id),
subadmin: this.newUser.subAdminsGroups.map(group => group.id),
quota: this.newUser.quota.id,
language: this.newUser.language.code
}).then(() => {
this.resetForm();
this.$refs.newusername.focus();
this.closeModal();
}).catch(error => {
this.loading.all = false;
if (error.response && error.response.data && error.response.data.ocs && error.response.data.ocs.meta) {
const statuscode = error.response.data.ocs.meta.statuscode;
if (statuscode === 102) {
// wrong username
this.$refs.newusername.focus();
} else if (statuscode === 107) {
// wrong password
this.$refs.newuserpassword.focus();
}
}
});
},
setNewUserDefaultGroup(value) {
if (value && value.length > 0) {
// setting new user default group to the current selected one
const currentGroup = this.groups.find(group => group.id === value);
if (currentGroup) {
this.newUser.groups = [currentGroup];
return;
}
} // fallback, empty selected group
this.newUser.groups = [];
},
/**
* Create a new group
*
* @param {string} gid Group id
* @returns {Promise}
*/
createGroup(gid) {
this.loading.groups = true;
this.$store.dispatch('addGroup', gid).then(group => {
this.newUser.groups.push(this.groups.find(group => group.id === gid));
this.loading.groups = false;
}).catch(() => {
this.loading.groups = false;
});
return this.$store.getters.getGroups[this.groups.length];
},
/**
* If the selected group is the disabled group but the count is 0
* redirect to the all users page.
* * we only check for 0 because we don't have the count on ldap
* * and we therefore set the usercount to -1 in this specific case
*/
redirectIfDisabled() {
const allGroups = this.$store.getters.getGroups;
if (this.selectedGroup === 'disabled' && allGroups.findIndex(group => group.id === 'disabled' && group.usercount === 0) > -1) {
// disabled group is empty, redirection to all users
this.$router.push({
name: 'users'
});
this.$refs.infiniteLoading.stateChanger.reset();
}
},
closeModal() {
this.showConfig.showNewUserForm = false;
}
}
});
/***/ }),
/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRow.vue?vue&type=script&lang=js&":
/*!**********************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/components/UserList/UserRow.vue?vue&type=script&lang=js& ***!
\**********************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var vue_click_outside__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue-click-outside */ "./node_modules/vue-click-outside/index.js");
/* harmony import */ var vue_click_outside__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue_click_outside__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js");
/* harmony import */ var v_tooltip__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! v-tooltip */ "./node_modules/v-tooltip/dist/v-tooltip.esm.js");
/* harmony import */ var _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue */ "./node_modules/@nextcloud/vue/dist/ncvuecomponents.js");
/* harmony import */ var _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _UserRowSimple__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./UserRowSimple */ "./apps/settings/src/components/UserList/UserRowSimple.vue");
/* harmony import */ var _mixins_UserRowMixin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/UserRowMixin */ "./apps/settings/src/mixins/UserRowMixin.js");
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
vue__WEBPACK_IMPORTED_MODULE_1__["default"].use(v_tooltip__WEBPACK_IMPORTED_MODULE_2__["default"]);
/* harmony default export */ __webpack_exports__["default"] = ({
name: 'UserRow',
components: {
UserRowSimple: _UserRowSimple__WEBPACK_IMPORTED_MODULE_4__["default"],
PopoverMenu: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__["PopoverMenu"],
Actions: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__["Actions"],
ActionButton: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__["ActionButton"],
Multiselect: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__["Multiselect"]
},
directives: {
ClickOutside: (vue_click_outside__WEBPACK_IMPORTED_MODULE_0___default())
},
mixins: [_mixins_UserRowMixin__WEBPACK_IMPORTED_MODULE_5__["default"]],
props: {
user: {
type: Object,
required: true
},
settings: {
type: Object,
default: () => ({})
},
groups: {
type: Array,
default: () => []
},
subAdminsGroups: {
type: Array,
default: () => []
},
quotaOptions: {
type: Array,
default: () => []
},
showConfig: {
type: Object,
default: () => ({})
},
languages: {
type: Array,
required: true
},
externalActions: {
type: Array,
default: () => []
}
},
data() {
return {
rand: parseInt(Math.random() * 1000),
openedMenu: false,
feedbackMessage: '',
editing: false,
loading: {
all: false,
displayName: false,
password: false,
mailAddress: false,
groups: false,
subadmins: false,
quota: false,
delete: false,
disable: false,
languages: false,
wipe: false
}
};
},
computed: {
/* USER POPOVERMENU ACTIONS */
userActions() {
const actions = [{
icon: 'icon-delete',
text: t('settings', 'Delete user'),
action: this.deleteUser
}, {
icon: 'icon-delete',
text: t('settings', 'Wipe all devices'),
action: this.wipeUserDevices
}, {
icon: this.user.enabled ? 'icon-close' : 'icon-add',
text: this.user.enabled ? t('settings', 'Disable user') : t('settings', 'Enable user'),
action: this.enableDisableUser
}];
if (this.user.email !== null && this.user.email !== '') {
actions.push({
icon: 'icon-mail',
text: t('settings', 'Resend welcome email'),
action: this.sendWelcomeMail
});
}
return actions.concat(this.externalActions);
}
},
methods: {
/* MENU HANDLING */
toggleMenu() {
this.openedMenu = !this.openedMenu;
},
hideMenu() {
this.openedMenu = false;
},
wipeUserDevices() {
const userid = this.user.id;
OC.dialogs.confirmDestructive(t('settings', 'In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet.', {
userid
}), t('settings', 'Remote wipe of devices'), {
type: OC.dialogs.YES_NO_BUTTONS,
confirm: t('settings', 'Wipe {userid}\'s devices', {
userid
}),
confirmClasses: 'error',
cancel: t('settings', 'Cancel')
}, result => {
if (result) {
this.loading.wipe = true;
this.loading.all = true;
this.$store.dispatch('wipeUserDevices', userid).then(() => {
this.loading.wipe = false;
this.loading.all = false;
});
}
}, true);
},
deleteUser() {
const userid = this.user.id;
OC.dialogs.confirmDestructive(t('settings', 'Fully delete {userid}\'s account including all their personal files, app data, etc.', {
userid
}), t('settings', 'Account deletion'), {
type: OC.dialogs.YES_NO_BUTTONS,
confirm: t('settings', 'Delete {userid}\'s account', {
userid
}),
confirmClasses: 'error',
cancel: t('settings', 'Cancel')
}, result => {
if (result) {
this.loading.delete = true;
this.loading.all = true;
return this.$store.dispatch('deleteUser', userid).then(() => {
this.loading.delete = false;
this.loading.all = false;
});
}
}, true);
},
enableDisableUser() {
this.loading.delete = true;
this.loading.all = true;
const userid = this.user.id;
const enabled = !this.user.enabled;
return this.$store.dispatch('enableDisableUser', {
userid,
enabled
}).then(() => {
this.loading.delete = false;
this.loading.all = false;
});
},
/**
* Set user displayName
*
* @param {string} displayName The display name
*/
updateDisplayName() {
const displayName = this.$refs.displayName.value;
this.loading.displayName = true;
this.$store.dispatch('setUserData', {
userid: this.user.id,
key: 'displayname',
value: displayName
}).then(() => {
this.loading.displayName = false;
this.$refs.displayName.value = displayName;
});
},
/**
* Set user password
*
* @param {string} password The email adress
*/
updatePassword() {
const password = this.$refs.password.value;
this.loading.password = true;
this.$store.dispatch('setUserData', {
userid: this.user.id,
key: 'password',
value: password
}).then(() => {
this.loading.password = false;
this.$refs.password.value = ''; // empty & show placeholder
});
},
/**
* Set user mailAddress
*
* @param {string} mailAddress The email adress
*/
updateEmail() {
const mailAddress = this.$refs.mailAddress.value;
this.loading.mailAddress = true;
this.$store.dispatch('setUserData', {
userid: this.user.id,
key: 'email',
value: mailAddress
}).then(() => {
this.loading.mailAddress = false;
this.$refs.mailAddress.value = mailAddress;
});
},
/**
* Create a new group and add user to it
*
* @param {string} gid Group id
*/
async createGroup(gid) {
this.loading = {
groups: true,
subadmins: true
};
try {
await this.$store.dispatch('addGroup', gid);
const userid = this.user.id;
await this.$store.dispatch('addUserGroup', {
userid,
gid
});
} catch (error) {
console.error(error);
} finally {
this.loading = {
groups: false,
subadmins: false
};
}
return this.$store.getters.getGroups[this.groups.length];
},
/**
* Add user to group
*
* @param {object} group Group object
*/
async addUserGroup(group) {
if (group.canAdd === false) {
return false;
}
this.loading.groups = true;
const userid = this.user.id;
const gid = group.id;
try {
await this.$store.dispatch('addUserGroup', {
userid,
gid
});
} catch (error) {
console.error(error);
} finally {
this.loading.groups = false;
}
},
/**
* Remove user from group
*
* @param {object} group Group object
*/
async removeUserGroup(group) {
if (group.canRemove === false) {
return false;
}
this.loading.groups = true;
const userid = this.user.id;
const gid = group.id;
try {
await this.$store.dispatch('removeUserGroup', {
userid,
gid
});
this.loading.groups = false; // remove user from current list if current list is the removed group
if (this.$route.params.selectedGroup === gid) {
this.$store.commit('deleteUser', userid);
}
} catch {
this.loading.groups = false;
}
},
/**
* Add user to group
*
* @param {object} group Group object
*/
async addUserSubAdmin(group) {
this.loading.subadmins = true;
const userid = this.user.id;
const gid = group.id;
try {
await this.$store.dispatch('addUserSubAdmin', {
userid,
gid
});
this.loading.subadmins = false;
} catch (error) {
console.error(error);
}
},
/**
* Remove user from group
*
* @param {object} group Group object
*/
async removeUserSubAdmin(group) {
this.loading.subadmins = true;
const userid = this.user.id;
const gid = group.id;
try {
await this.$store.dispatch('removeUserSubAdmin', {
userid,
gid
});
} catch (error) {
console.error(error);
} finally {
this.loading.subadmins = false;
}
},
/**
* Dispatch quota set request
*
* @param {string|Object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'}
* @returns {string}
*/
async setUserQuota(quota = 'none') {
this.loading.quota = true; // ensure we only send the preset id
quota = quota.id ? quota.id : quota;
try {
await this.$store.dispatch('setUserData', {
userid: this.user.id,
key: 'quota',
value: quota
});
} catch (error) {
console.error(error);
} finally {
this.loading.quota = false;
}
return quota;
},
/**
* Validate quota string to make sure it's a valid human file size
*
* @param {string} quota Quota in readable format '5 GB'
* @returns {Promise|boolean}
*/
validateQuota(quota) {
// only used for new presets sent through @Tag
const validQuota = OC.Util.computerFileSize(quota);
if (validQuota !== null && validQuota >= 0) {
// unify format output
return this.setUserQuota(OC.Util.humanFileSize(OC.Util.computerFileSize(quota)));
} // if no valid do not change
return false;
},
/**
* Dispatch language set request
*
* @param {Object} lang language object {code:'en', name:'English'}
* @returns {Object}
*/
async setUserLanguage(lang) {
this.loading.languages = true; // ensure we only send the preset id
try {
await this.$store.dispatch('setUserData', {
userid: this.user.id,
key: 'language',
value: lang.code
});
} catch (error) {
console.error(error);
} finally {
this.loading.languages = false;
}
return lang;
},
/**
* Dispatch new welcome mail request
*/
sendWelcomeMail() {
this.loading.all = true;
this.$store.dispatch('sendWelcomeMail', this.user.id).then(success => {
if (success) {
// Show feedback to indicate the success
this.feedbackMessage = t('setting', 'Welcome mail sent!');
setTimeout(() => {
this.feedbackMessage = '';
}, 2000);
}
this.loading.all = false;
});
}
}
});
/***/ }),
/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=script&lang=js&":
/*!****************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=script&lang=js& ***!
\****************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _nextcloud_vue_dist_Components_PopoverMenu__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/PopoverMenu */ "./node_modules/@nextcloud/vue/dist/Components/PopoverMenu.js");
/* harmony import */ var _nextcloud_vue_dist_Components_PopoverMenu__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_vue_dist_Components_PopoverMenu__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _nextcloud_vue_dist_Components_Actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/Actions */ "./node_modules/@nextcloud/vue/dist/Components/Actions.js");
/* harmony import */ var _nextcloud_vue_dist_Components_Actions__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_vue_dist_Components_Actions__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _nextcloud_vue_dist_Components_ActionButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/ActionButton */ "./node_modules/@nextcloud/vue/dist/Components/ActionButton.js");
/* harmony import */ var _nextcloud_vue_dist_Components_ActionButton__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_vue_dist_Components_ActionButton__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var vue_click_outside__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue-click-outside */ "./node_modules/vue-click-outside/index.js");
/* harmony import */ var vue_click_outside__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(vue_click_outside__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _nextcloud_auth__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/auth */ "./node_modules/@nextcloud/auth/dist/index.js");
/* harmony import */ var _nextcloud_auth__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_auth__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _mixins_UserRowMixin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/UserRowMixin */ "./apps/settings/src/mixins/UserRowMixin.js");
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
name: 'UserRowSimple',
components: {
PopoverMenu: (_nextcloud_vue_dist_Components_PopoverMenu__WEBPACK_IMPORTED_MODULE_0___default()),
ActionButton: (_nextcloud_vue_dist_Components_ActionButton__WEBPACK_IMPORTED_MODULE_2___default()),
Actions: (_nextcloud_vue_dist_Components_Actions__WEBPACK_IMPORTED_MODULE_1___default())
},
directives: {
ClickOutside: (vue_click_outside__WEBPACK_IMPORTED_MODULE_3___default())
},
mixins: [_mixins_UserRowMixin__WEBPACK_IMPORTED_MODULE_5__["default"]],
props: {
user: {
type: Object,
required: true
},
loading: {
type: Object,
required: true
},
showConfig: {
type: Object,
required: true
},
userActions: {
type: Array,
required: true
},
openedMenu: {
type: Boolean,
required: true
},
feedbackMessage: {
type: String,
required: true
},
subAdminsGroups: {
type: Array,
required: true
},
settings: {
type: Object,
required: true
}
},
computed: {
userGroupsLabels() {
return this.userGroups.map(group => group.name).join(', ');
},
userSubAdminsGroupsLabels() {
return this.userSubAdminsGroups.map(group => group.name).join(', ');
},
usedSpace() {
if (this.user.quota.used) {
return t('settings', '{size} used', {
size: OC.Util.humanFileSize(this.user.quota.used)
});
}
return t('settings', '{size} used', {
size: OC.Util.humanFileSize(0)
});
},
canEdit() {
return Object(_nextcloud_auth__WEBPACK_IMPORTED_MODULE_4__["getCurrentUser"])().uid !== this.user.id || this.settings.isAdmin;
},
userQuota() {
let quota = this.user.quota.quota;
if (quota === 'default') {
quota = this.settings.defaultQuota;
if (quota !== 'none') {
// convert to numeric value to match what the server would usually return
quota = OC.Util.computerFileSize(quota);
}
} // when the default quota is unlimited, the server returns -3 here, map it to "none"
if (quota === 'none' || quota === -3) {
return t('settings', 'Unlimited');
} else if (quota >= 0) {
return OC.Util.humanFileSize(quota);
}
return OC.Util.humanFileSize(0);
}
},
methods: {
hideMenu() {
this.$emit('hideMenu');
},
toggleEdit() {
this.$emit('update:editing', true);
}
}
});
/***/ }),
/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/views/Users.vue?vue&type=script&lang=js&":
/*!******************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/views/Users.vue?vue&type=script&lang=js& ***!
\******************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _nextcloud_vue_dist_Components_ActionButton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/ActionButton */ "./node_modules/@nextcloud/vue/dist/Components/ActionButton.js");
/* harmony import */ var _nextcloud_vue_dist_Components_ActionButton__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_vue_dist_Components_ActionButton__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _nextcloud_vue_dist_Components_AppContent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/AppContent */ "./node_modules/@nextcloud/vue/dist/Components/AppContent.js");
/* harmony import */ var _nextcloud_vue_dist_Components_AppContent__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_vue_dist_Components_AppContent__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _nextcloud_vue_dist_Components_AppNavigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/AppNavigation */ "./node_modules/@nextcloud/vue/dist/Components/AppNavigation.js");
/* harmony import */ var _nextcloud_vue_dist_Components_AppNavigation__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_vue_dist_Components_AppNavigation__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _nextcloud_vue_dist_Components_AppNavigationCaption__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/AppNavigationCaption */ "./node_modules/@nextcloud/vue/dist/Components/AppNavigationCaption.js");
/* harmony import */ var _nextcloud_vue_dist_Components_AppNavigationCaption__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_vue_dist_Components_AppNavigationCaption__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _nextcloud_vue_dist_Components_AppNavigationCounter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/AppNavigationCounter */ "./node_modules/@nextcloud/vue/dist/Components/AppNavigationCounter.js");
/* harmony import */ var _nextcloud_vue_dist_Components_AppNavigationCounter__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_vue_dist_Components_AppNavigationCounter__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _nextcloud_vue_dist_Components_AppNavigationItem__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/AppNavigationItem */ "./node_modules/@nextcloud/vue/dist/Components/AppNavigationItem.js");
/* harmony import */ var _nextcloud_vue_dist_Components_AppNavigationItem__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_vue_dist_Components_AppNavigationItem__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _nextcloud_vue_dist_Components_AppNavigationNew__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/AppNavigationNew */ "./node_modules/@nextcloud/vue/dist/Components/AppNavigationNew.js");
/* harmony import */ var _nextcloud_vue_dist_Components_AppNavigationNew__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_vue_dist_Components_AppNavigationNew__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _nextcloud_vue_dist_Components_AppNavigationSettings__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/AppNavigationSettings */ "./node_modules/@nextcloud/vue/dist/Components/AppNavigationSettings.js");
/* harmony import */ var _nextcloud_vue_dist_Components_AppNavigationSettings__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_vue_dist_Components_AppNavigationSettings__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @nextcloud/axios */ "./node_modules/@nextcloud/axios/dist/index.js");
/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_axios__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _nextcloud_vue_dist_Components_Content__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/Content */ "./node_modules/@nextcloud/vue/dist/Components/Content.js");
/* harmony import */ var _nextcloud_vue_dist_Components_Content__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_vue_dist_Components_Content__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.js");
/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_router__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var _nextcloud_vue_dist_Components_Multiselect__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/Multiselect */ "./node_modules/@nextcloud/vue/dist/Components/Multiselect.js");
/* harmony import */ var _nextcloud_vue_dist_Components_Multiselect__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_vue_dist_Components_Multiselect__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js");
/* harmony import */ var vue_localstorage__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! vue-localstorage */ "./node_modules/vue-localstorage/dist/vue-local-storage.js");
/* harmony import */ var vue_localstorage__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(vue_localstorage__WEBPACK_IMPORTED_MODULE_13__);
/* harmony import */ var _components_UserList__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../components/UserList */ "./apps/settings/src/components/UserList.vue");
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
vue__WEBPACK_IMPORTED_MODULE_12__["default"].use(vue_localstorage__WEBPACK_IMPORTED_MODULE_13___default.a);
/* harmony default export */ __webpack_exports__["default"] = ({
name: 'Users',
components: {
ActionButton: (_nextcloud_vue_dist_Components_ActionButton__WEBPACK_IMPORTED_MODULE_0___default()),
AppContent: (_nextcloud_vue_dist_Components_AppContent__WEBPACK_IMPORTED_MODULE_1___default()),
AppNavigation: (_nextcloud_vue_dist_Components_AppNavigation__WEBPACK_IMPORTED_MODULE_2___default()),
AppNavigationCaption: (_nextcloud_vue_dist_Components_AppNavigationCaption__WEBPACK_IMPORTED_MODULE_3___default()),
AppNavigationCounter: (_nextcloud_vue_dist_Components_AppNavigationCounter__WEBPACK_IMPORTED_MODULE_4___default()),
AppNavigationItem: (_nextcloud_vue_dist_Components_AppNavigationItem__WEBPACK_IMPORTED_MODULE_5___default()),
AppNavigationNew: (_nextcloud_vue_dist_Components_AppNavigationNew__WEBPACK_IMPORTED_MODULE_6___default()),
AppNavigationSettings: (_nextcloud_vue_dist_Components_AppNavigationSettings__WEBPACK_IMPORTED_MODULE_7___default()),
Content: (_nextcloud_vue_dist_Components_Content__WEBPACK_IMPORTED_MODULE_9___default()),
Multiselect: (_nextcloud_vue_dist_Components_Multiselect__WEBPACK_IMPORTED_MODULE_11___default()),
UserList: _components_UserList__WEBPACK_IMPORTED_MODULE_14__["default"]
},
props: {
selectedGroup: {
type: String,
default: null
}
},
data() {
return {
// default quota is set to unlimited
unlimitedQuota: {
id: 'none',
label: t('settings', 'Unlimited')
},
// temporary value used for multiselect change
selectedQuota: false,
externalActions: [],
loadingAddGroup: false,
loadingSendMail: false,
showConfig: {
showStoragePath: false,
showUserBackend: false,
showLastLogin: false,
showNewUserForm: false,
showLanguages: false
}
};
},
computed: {
selectedGroupDecoded() {
return this.selectedGroup ? decodeURIComponent(this.selectedGroup) : null;
},
users() {
return this.$store.getters.getUsers;
},
groups() {
return this.$store.getters.getGroups;
},
usersOffset() {
return this.$store.getters.getUsersOffset;
},
usersLimit() {
return this.$store.getters.getUsersLimit;
},
// Local settings
showLanguages: {
get() {
return this.getLocalstorage('showLanguages');
},
set(status) {
this.setLocalStorage('showLanguages', status);
}
},
showLastLogin: {
get() {
return this.getLocalstorage('showLastLogin');
},
set(status) {
this.setLocalStorage('showLastLogin', status);
}
},
showUserBackend: {
get() {
return this.getLocalstorage('showUserBackend');
},
set(status) {
this.setLocalStorage('showUserBackend', status);
}
},
showStoragePath: {
get() {
return this.getLocalstorage('showStoragePath');
},
set(status) {
this.setLocalStorage('showStoragePath', status);
}
},
userCount() {
return this.$store.getters.getUserCount;
},
settings() {
return this.$store.getters.getServerData;
},
// default quota
quotaOptions() {
// convert the preset array into objects
const quotaPreset = this.settings.quotaPreset.reduce((acc, cur) => acc.concat({
id: cur,
label: cur
}), []); // add default presets
quotaPreset.unshift(this.unlimitedQuota);
return quotaPreset;
},
// mapping saved values to objects
defaultQuota: {
get() {
if (this.selectedQuota !== false) {
return this.selectedQuota;
}
if (this.settings.defaultQuota !== this.unlimitedQuota.id && OC.Util.computerFileSize(this.settings.defaultQuota) >= 0) {
// if value is valid, let's map the quotaOptions or return custom quota
return {
id: this.settings.defaultQuota,
label: this.settings.defaultQuota
};
}
return this.unlimitedQuota; // unlimited
},
set(quota) {
this.selectedQuota = quota;
}
},
sendWelcomeMail: {
get() {
return this.settings.newUserSendEmail;
},
async set(value) {
try {
this.loadingSendMail = true;
this.$store.commit('setServerData', { ...this.settings,
newUserSendEmail: value
});
await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_8___default.a.post(Object(_nextcloud_router__WEBPACK_IMPORTED_MODULE_10__["generateUrl"])('/settings/users/preferences/newUser.sendEmail'), {
value: value ? 'yes' : 'no'
});
} catch (e) {
console.error('could not update newUser.sendEmail preference: ' + e.message, e);
} finally {
this.loadingSendMail = false;
}
}
},
groupList() {
const groups = Array.isArray(this.groups) ? this.groups : [];
return groups // filter out disabled and admin
.filter(group => group.id !== 'disabled' && group.id !== 'admin').map(group => this.formatGroupMenu(group));
},
adminGroupMenu() {
return this.formatGroupMenu(this.groups.find(group => group.id === 'admin'));
},
disabledGroupMenu() {
return this.formatGroupMenu(this.groups.find(group => group.id === 'disabled'));
}
},
beforeMount() {
this.$store.commit('initGroups', {
groups: this.$store.getters.getServerData.groups,
orderBy: this.$store.getters.getServerData.sortGroups,
userCount: this.$store.getters.getServerData.userCount
});
this.$store.dispatch('getPasswordPolicyMinLength');
},
created() {
// init the OCA.Settings.UserList object
// and add the registerAction method
Object.assign(OCA, {
Settings: {
UserList: {
registerAction: this.registerAction
}
}
});
},
methods: {
showNewUserMenu() {
this.showConfig.showNewUserForm = true;
if (this.showConfig.showNewUserForm) {
vue__WEBPACK_IMPORTED_MODULE_12__["default"].nextTick(() => {
window.newusername.focus();
});
}
},
getLocalstorage(key) {
// force initialization
const localConfig = this.$localStorage.get(key); // if localstorage is null, fallback to original values
this.showConfig[key] = localConfig !== null ? localConfig === 'true' : this.showConfig[key];
return this.showConfig[key];
},
setLocalStorage(key, status) {
this.showConfig[key] = status;
this.$localStorage.set(key, status);
return status;
},
removeGroup(groupid) {
const self = this; // TODO migrate to a vue js confirm dialog component
OC.dialogs.confirm(t('settings', 'You are about to remove the group {group}. The users will NOT be deleted.', {
group: groupid
}), t('settings', 'Please confirm the group removal '), function (success) {
if (success) {
self.$store.dispatch('removeGroup', groupid);
}
});
},
/**
* Dispatch default quota set request
*
* @param {string|Object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'}
*/
setDefaultQuota(quota = 'none') {
this.$store.dispatch('setAppConfig', {
app: 'files',
key: 'default_quota',
// ensure we only send the preset id
value: quota.id ? quota.id : quota
}).then(() => {
if (typeof quota !== 'object') {
quota = {
id: quota,
label: quota
};
}
this.defaultQuota = quota;
});
},
/**
* Validate quota string to make sure it's a valid human file size
*
* @param {string} quota Quota in readable format '5 GB'
* @returns {Promise|boolean}
*/
validateQuota(quota) {
// only used for new presets sent through @Tag
const validQuota = OC.Util.computerFileSize(quota);
if (validQuota === null) {
return this.setDefaultQuota('none');
} else {
// unify format output
return this.setDefaultQuota(OC.Util.humanFileSize(OC.Util.computerFileSize(quota)));
}
},
/**
* Register a new action for the user menu
*
* @param {string} icon the icon class
* @param {string} text the text to display
* @param {Function} action the function to run
* @returns {Array}
*/
registerAction(icon, text, action) {
this.externalActions.push({
icon,
text,
action
});
return this.externalActions;
},
/**
* Create a new group
*
* @param {string} gid The group id
*/
async createGroup(gid) {
// group is not valid
if (gid.trim() === '') {
vue__WEBPACK_IMPORTED_MODULE_12__["default"].nextTick(() => {
this.toggleAddGroupEntry(true);
});
return;
}
try {
this.loadingAddGroup = true;
await this.$store.dispatch('addGroup', gid.trim());
this.toggleAddGroupEntry(false);
this.$router.push({
name: 'group',
params: {
selectedGroup: encodeURIComponent(gid.trim())
}
});
} catch {
this.toggleAddGroupEntry(true);
} finally {
this.loadingAddGroup = false;
}
},
/**
* Toggle the add group entry editing state
* @param {boolean} [state] set state instead of toggling
*/
toggleAddGroupEntry(state) {
if (state === undefined) {
state = !this.$refs.addGroup.editing;
}
this.$refs.addGroup.editing = state; // focus input
vue__WEBPACK_IMPORTED_MODULE_12__["default"].nextTick(() => {
if (this.$refs.addGroup.$el) {
const input = this.$refs.addGroup.$el.querySelector('form > input[type="text"]');
if (input) {
input.focus();
}
}
});
},
/**
* Format a group to a menu entry
* @param {Object} group the group
* @returns {Object}
*/
formatGroupMenu(group) {
const item = {};
if (typeof group === 'undefined') {
return {};
}
item.id = group.id;
item.title = group.name;
item.usercount = group.usercount; // users count for all groups
if (group.usercount - group.disabled > 0) {
item.count = group.usercount - group.disabled;
}
return item;
}
}
});
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss&":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/components/UserList/UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss& ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".row--menu-opened[data-v-77960baa] {\n z-index: 1 !important;\n}\n.row[data-v-77960baa] .multiselect__single {\n z-index: auto !important;\n}", ""]);
// Exports
/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=style&index=0&lang=scss&":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=style&index=0&lang=scss& ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".cellText {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.icon-more {\n background-color: var(--color-main-background);\n border: 0;\n}", ""]);
// Exports
/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/views/Users.vue?vue&type=style&index=0&id=889b7562&lang=scss&scoped=true&":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/views/Users.vue?vue&type=style&index=0&id=889b7562&lang=scss&scoped=true& ***!
\*********************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".app-navigation__list #addgroup[data-v-889b7562] .app-navigation-entry__utils {\n display: none;\n}", ""]);
// Exports
/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList.vue?vue&type=style&index=0&id=6cba3aca&scoped=true&lang=css&":
/*!*************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/components/UserList.vue?vue&type=style&index=0&id=6cba3aca&scoped=true&lang=css& ***!
\*************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.i, "\n.modal-wrapper[data-v-6cba3aca] {\n\tmargin: 2vh 0;\n\talign-items: flex-start;\n}\n.modal__content[data-v-6cba3aca] {\n\tdisplay: flex;\n\tpadding: 20px;\n\tflex-direction: column;\n\talign-items: center;\n\ttext-align: center;\n\toverflow: auto;\n}\n.modal__item[data-v-6cba3aca] {\n\tmargin-bottom: 16px;\n\twidth: 100%;\n}\n.modal__item[data-v-6cba3aca]:not(:focus):not(:active) {\n\tborder-color: var(--color-border-dark);\n}\n.modal__item[data-v-6cba3aca] .multiselect {\n\twidth: 100%;\n}\n.user-actions[data-v-6cba3aca] {\n\tmargin-top: 20px;\n}\n.modal__content[data-v-6cba3aca] .multiselect__single {\n\ttext-align: left;\n\tbox-sizing: border-box;\n}\n.modal__content[data-v-6cba3aca] .multiselect__content-wrapper {\n\tbox-sizing: border-box;\n}\n.row[data-v-6cba3aca] .multiselect__single {\n\tz-index: auto !important;\n}\n", ""]);
// Exports
/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
/***/ }),
/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss&":
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/components/UserList/UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss& ***!
\*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRow_vue_vue_type_style_index_0_id_77960baa_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib??vue-loader-options!./UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss&");
var options = {};
options.insert = "head";
options.singleton = false;
var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRow_vue_vue_type_style_index_0_id_77960baa_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_1__["default"], options);
/* harmony default export */ __webpack_exports__["default"] = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRow_vue_vue_type_style_index_0_id_77960baa_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_1__["default"].locals || {});
/***/ }),
/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=style&index=0&lang=scss&":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=style&index=0&lang=scss& ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRowSimple_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib??vue-loader-options!./UserRowSimple.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=style&index=0&lang=scss&");
var options = {};
options.insert = "head";
options.singleton = false;
var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRowSimple_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_1__["default"], options);
/* harmony default export */ __webpack_exports__["default"] = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRowSimple_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_1__["default"].locals || {});
/***/ }),
/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/views/Users.vue?vue&type=style&index=0&id=889b7562&lang=scss&scoped=true&":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/views/Users.vue?vue&type=style&index=0&id=889b7562&lang=scss&scoped=true& ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Users_vue_vue_type_style_index_0_id_889b7562_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib??vue-loader-options!./Users.vue?vue&type=style&index=0&id=889b7562&lang=scss&scoped=true& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/views/Users.vue?vue&type=style&index=0&id=889b7562&lang=scss&scoped=true&");
var options = {};
options.insert = "head";
options.singleton = false;
var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Users_vue_vue_type_style_index_0_id_889b7562_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_1__["default"], options);
/* harmony default export */ __webpack_exports__["default"] = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Users_vue_vue_type_style_index_0_id_889b7562_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_1__["default"].locals || {});
/***/ }),
/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList.vue?vue&type=style&index=0&id=6cba3aca&scoped=true&lang=css&":
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/components/UserList.vue?vue&type=style&index=0&id=6cba3aca&scoped=true&lang=css& ***!
\*****************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserList_vue_vue_type_style_index_0_id_6cba3aca_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib??vue-loader-options!./UserList.vue?vue&type=style&index=0&id=6cba3aca&scoped=true&lang=css& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList.vue?vue&type=style&index=0&id=6cba3aca&scoped=true&lang=css&");
var options = {};
options.insert = "head";
options.singleton = false;
var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserList_vue_vue_type_style_index_0_id_6cba3aca_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_1__["default"], options);
/* harmony default export */ __webpack_exports__["default"] = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserList_vue_vue_type_style_index_0_id_6cba3aca_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_1__["default"].locals || {});
/***/ }),
/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList.vue?vue&type=template&id=6cba3aca&scoped=true&":
/*!****************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/components/UserList.vue?vue&type=template&id=6cba3aca&scoped=true& ***!
\****************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c(
"div",
{
staticClass: "user-list-grid",
attrs: { id: "app-content" },
on: {
"&scroll": function($event) {
return _vm.onScroll($event)
}
}
},
[
_vm.showConfig.showNewUserForm
? _c("Modal", { on: { close: _vm.closeModal } }, [
_c(
"form",
{
staticClass: "modal__content",
attrs: { id: "new-user", disabled: _vm.loading.all },
on: {
submit: function($event) {
$event.preventDefault()
return _vm.createUser($event)
}
}
},
[
_c("h2", [_vm._v(_vm._s(_vm.t("settings", "New user")))]),
_vm._v(" "),
_c("input", {
directives: [
{
name: "model",
rawName: "v-model",
value: _vm.newUser.id,
expression: "newUser.id"
}
],
ref: "newusername",
staticClass: "modal__item",
attrs: {
id: "newusername",
disabled: _vm.settings.newUserGenerateUserID,
placeholder: _vm.settings.newUserGenerateUserID
? _vm.t("settings", "Will be autogenerated")
: _vm.t("settings", "Username"),
autocapitalize: "none",
autocomplete: "off",
autocorrect: "off",
name: "username",
pattern: "[a-zA-Z0-9 _\\.@\\-']+",
required: "",
type: "text"
},
domProps: { value: _vm.newUser.id },
on: {
input: function($event) {
if ($event.target.composing) {
return
}
_vm.$set(_vm.newUser, "id", $event.target.value)
}
}
}),
_vm._v(" "),
_c("input", {
directives: [
{
name: "model",
rawName: "v-model",
value: _vm.newUser.displayName,
expression: "newUser.displayName"
}
],
staticClass: "modal__item",
attrs: {
id: "newdisplayname",
placeholder: _vm.t("settings", "Display name"),
autocapitalize: "none",
autocomplete: "off",
autocorrect: "off",
name: "displayname",
type: "text"
},
domProps: { value: _vm.newUser.displayName },
on: {
input: function($event) {
if ($event.target.composing) {
return
}
_vm.$set(_vm.newUser, "displayName", $event.target.value)
}
}
}),
_vm._v(" "),
_c("input", {
directives: [
{
name: "model",
rawName: "v-model",
value: _vm.newUser.password,
expression: "newUser.password"
}
],
ref: "newuserpassword",
staticClass: "modal__item",
attrs: {
id: "newuserpassword",
minlength: _vm.minPasswordLength,
placeholder: _vm.t("settings", "Password"),
required: _vm.newUser.mailAddress === "",
autocapitalize: "none",
autocomplete: "new-password",
autocorrect: "off",
name: "password",
type: "password"
},
domProps: { value: _vm.newUser.password },
on: {
input: function($event) {
if ($event.target.composing) {
return
}
_vm.$set(_vm.newUser, "password", $event.target.value)
}
}
}),
_vm._v(" "),
_c("input", {
directives: [
{
name: "model",
rawName: "v-model",
value: _vm.newUser.mailAddress,
expression: "newUser.mailAddress"
}
],
staticClass: "modal__item",
attrs: {
id: "newemail",
placeholder: _vm.t("settings", "Email"),
required:
_vm.newUser.password === "" ||
_vm.settings.newUserRequireEmail,
autocapitalize: "none",
autocomplete: "off",
autocorrect: "off",
name: "email",
type: "email"
},
domProps: { value: _vm.newUser.mailAddress },
on: {
input: function($event) {
if ($event.target.composing) {
return
}
_vm.$set(_vm.newUser, "mailAddress", $event.target.value)
}
}
}),
_vm._v(" "),
_c(
"div",
{ staticClass: "groups modal__item" },
[
!_vm.settings.isAdmin
? _c("input", {
class: { "icon-loading-small": _vm.loading.groups },
attrs: {
id: "newgroups",
required: !_vm.settings.isAdmin,
tabindex: "-1",
type: "text"
},
domProps: { value: _vm.newUser.groups }
})
: _vm._e(),
_vm._v(" "),
_c(
"Multiselect",
{
staticClass: "multiselect-vue",
attrs: {
"close-on-select": false,
disabled: _vm.loading.groups || _vm.loading.all,
multiple: true,
options: _vm.canAddGroups,
placeholder: _vm.t("settings", "Add user to group"),
"tag-width": 60,
taggable: true,
label: "name",
"tag-placeholder": "create",
"track-by": "id"
},
on: { tag: _vm.createGroup },
model: {
value: _vm.newUser.groups,
callback: function($$v) {
_vm.$set(_vm.newUser, "groups", $$v)
},
expression: "newUser.groups"
}
},
[
_c(
"span",
{ attrs: { slot: "noResult" }, slot: "noResult" },
[_vm._v(_vm._s(_vm.t("settings", "No results")))]
)
]
)
],
1
),
_vm._v(" "),
_vm.subAdminsGroups.length > 0 && _vm.settings.isAdmin
? _c(
"div",
{ staticClass: "subadmins modal__item" },
[
_c(
"Multiselect",
{
staticClass: "multiselect-vue",
attrs: {
"close-on-select": false,
multiple: true,
options: _vm.subAdminsGroups,
placeholder: _vm.t(
"settings",
"Set user as admin for"
),
"tag-width": 60,
label: "name",
"track-by": "id"
},
model: {
value: _vm.newUser.subAdminsGroups,
callback: function($$v) {
_vm.$set(_vm.newUser, "subAdminsGroups", $$v)
},
expression: "newUser.subAdminsGroups"
}
},
[
_c(
"span",
{ attrs: { slot: "noResult" }, slot: "noResult" },
[_vm._v(_vm._s(_vm.t("settings", "No results")))]
)
]
)
],
1
)
: _vm._e(),
_vm._v(" "),
_c(
"div",
{ staticClass: "quota modal__item" },
[
_c("Multiselect", {
staticClass: "multiselect-vue",
attrs: {
"allow-empty": false,
options: _vm.quotaOptions,
placeholder: _vm.t("settings", "Select user quota"),
taggable: true,
label: "label",
"track-by": "id"
},
on: { tag: _vm.validateQuota },
model: {
value: _vm.newUser.quota,
callback: function($$v) {
_vm.$set(_vm.newUser, "quota", $$v)
},
expression: "newUser.quota"
}
})
],
1
),
_vm._v(" "),
_vm.showConfig.showLanguages
? _c(
"div",
{ staticClass: "languages modal__item" },
[
_c("Multiselect", {
staticClass: "multiselect-vue",
attrs: {
"allow-empty": false,
options: _vm.languages,
placeholder: _vm.t("settings", "Default language"),
"group-label": "label",
"group-values": "languages",
label: "name",
"track-by": "code"
},
model: {
value: _vm.newUser.language,
callback: function($$v) {
_vm.$set(_vm.newUser, "language", $$v)
},
expression: "newUser.language"
}
})
],
1
)
: _vm._e(),
_vm._v(" "),
_vm.showConfig.showStoragePath
? _c("div", { staticClass: "storageLocation" })
: _vm._e(),
_vm._v(" "),
_vm.showConfig.showUserBackend
? _c("div", { staticClass: "userBackend" })
: _vm._e(),
_vm._v(" "),
_vm.showConfig.showLastLogin
? _c("div", { staticClass: "lastLogin" })
: _vm._e(),
_vm._v(" "),
_c("div", { staticClass: "user-actions" }, [
_c(
"button",
{
staticClass: "button primary",
attrs: { id: "newsubmit", type: "submit", value: "" }
},
[
_vm._v(
"\n\t\t\t\t\t" +
_vm._s(_vm.t("settings", "Add a new user")) +
"\n\t\t\t\t"
)
]
)
])
]
)
])
: _vm._e(),
_vm._v(" "),
_c(
"div",
{
staticClass: "row",
class: { sticky: _vm.scrolled && !_vm.showConfig.showNewUserForm },
attrs: { id: "grid-header" }
},
[
_c("div", { staticClass: "avatar", attrs: { id: "headerAvatar" } }),
_vm._v(" "),
_c("div", { staticClass: "name", attrs: { id: "headerName" } }, [
_vm._v(
"\n\t\t\t" + _vm._s(_vm.t("settings", "Username")) + "\n\n\t\t\t"
),
_c("div", { staticClass: "subtitle" }, [
_vm._v(
"\n\t\t\t\t" +
_vm._s(_vm.t("settings", "Display name")) +
"\n\t\t\t"
)
])
]),
_vm._v(" "),
_c(
"div",
{ staticClass: "password", attrs: { id: "headerPassword" } },
[
_vm._v(
"\n\t\t\t" + _vm._s(_vm.t("settings", "Password")) + "\n\t\t"
)
]
),
_vm._v(" "),
_c(
"div",
{ staticClass: "mailAddress", attrs: { id: "headerAddress" } },
[_vm._v("\n\t\t\t" + _vm._s(_vm.t("settings", "Email")) + "\n\t\t")]
),
_vm._v(" "),
_c("div", { staticClass: "groups", attrs: { id: "headerGroups" } }, [
_vm._v("\n\t\t\t" + _vm._s(_vm.t("settings", "Groups")) + "\n\t\t")
]),
_vm._v(" "),
_vm.subAdminsGroups.length > 0 && _vm.settings.isAdmin
? _c(
"div",
{ staticClass: "subadmins", attrs: { id: "headerSubAdmins" } },
[
_vm._v(
"\n\t\t\t" +
_vm._s(_vm.t("settings", "Group admin for")) +
"\n\t\t"
)
]
)
: _vm._e(),
_vm._v(" "),
_c("div", { staticClass: "quota", attrs: { id: "headerQuota" } }, [
_vm._v("\n\t\t\t" + _vm._s(_vm.t("settings", "Quota")) + "\n\t\t")
]),
_vm._v(" "),
_vm.showConfig.showLanguages
? _c(
"div",
{ staticClass: "languages", attrs: { id: "headerLanguages" } },
[
_vm._v(
"\n\t\t\t" +
_vm._s(_vm.t("settings", "Language")) +
"\n\t\t"
)
]
)
: _vm._e(),
_vm._v(" "),
_vm.showConfig.showUserBackend || _vm.showConfig.showStoragePath
? _c("div", { staticClass: "headerUserBackend userBackend" }, [
_vm.showConfig.showUserBackend
? _c("div", { staticClass: "userBackend" }, [
_vm._v(
"\n\t\t\t\t" +
_vm._s(_vm.t("settings", "User backend")) +
"\n\t\t\t"
)
])
: _vm._e(),
_vm._v(" "),
_vm.showConfig.showStoragePath
? _c("div", { staticClass: "subtitle storageLocation" }, [
_vm._v(
"\n\t\t\t\t" +
_vm._s(_vm.t("settings", "Storage location")) +
"\n\t\t\t"
)
])
: _vm._e()
])
: _vm._e(),
_vm._v(" "),
_vm.showConfig.showLastLogin
? _c("div", { staticClass: "headerLastLogin lastLogin" }, [
_vm._v(
"\n\t\t\t" +
_vm._s(_vm.t("settings", "Last login")) +
"\n\t\t"
)
])
: _vm._e(),
_vm._v(" "),
_c("div", { staticClass: "userActions" })
]
),
_vm._v(" "),
_vm._l(_vm.filteredUsers, function(user) {
return _c("user-row", {
key: user.id,
attrs: {
"external-actions": _vm.externalActions,
groups: _vm.groups,
languages: _vm.languages,
"quota-options": _vm.quotaOptions,
settings: _vm.settings,
"show-config": _vm.showConfig,
"sub-admins-groups": _vm.subAdminsGroups,
user: user
}
})
}),
_vm._v(" "),
_c(
"InfiniteLoading",
{ ref: "infiniteLoading", on: { infinite: _vm.infiniteHandler } },
[
_c("div", { attrs: { slot: "spinner" }, slot: "spinner" }, [
_c("div", { staticClass: "users-icon-loading icon-loading" })
]),
_vm._v(" "),
_c("div", { attrs: { slot: "no-more" }, slot: "no-more" }, [
_c("div", { staticClass: "users-list-end" })
]),
_vm._v(" "),
_c("div", { attrs: { slot: "no-results" }, slot: "no-results" }, [
_c("div", { attrs: { id: "emptycontent" } }, [
_c("div", { staticClass: "icon-contacts-dark" }),
_vm._v(" "),
_c("h2", [_vm._v(_vm._s(_vm.t("settings", "No users in here")))])
])
])
]
)
],
2
)
}
var staticRenderFns = []
render._withStripped = true
/***/ }),
/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRow.vue?vue&type=template&id=77960baa&scoped=true&":
/*!************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/components/UserList/UserRow.vue?vue&type=template&id=77960baa&scoped=true& ***!
\************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return Object.keys(_vm.user).length === 1
? _c("div", { staticClass: "row", attrs: { "data-id": _vm.user.id } }, [
_c(
"div",
{
staticClass: "avatar",
class: {
"icon-loading-small":
_vm.loading.delete || _vm.loading.disable || _vm.loading.wipe
}
},
[
!_vm.loading.delete && !_vm.loading.disable && !_vm.loading.wipe
? _c("img", {
attrs: {
src: _vm.generateAvatar(_vm.user.id, 32),
srcset:
_vm.generateAvatar(_vm.user.id, 64) +
" 2x, " +
_vm.generateAvatar(_vm.user.id, 128) +
" 4x",
alt: "",
height: "32",
width: "32"
}
})
: _vm._e()
]
),
_vm._v(" "),
_c("div", { staticClass: "name" }, [
_vm._v("\n\t\t" + _vm._s(_vm.user.id) + "\n\t")
]),
_vm._v(" "),
_c("div", { staticClass: "obfuscated" }, [
_vm._v(
"\n\t\t" +
_vm._s(
_vm.t(
"settings",
"You do not have permissions to see the details of this user"
)
) +
"\n\t"
)
])
])
: !_vm.editing
? _c("UserRowSimple", {
class: { "row--menu-opened": _vm.openedMenu },
attrs: {
editing: _vm.editing,
"feedback-message": _vm.feedbackMessage,
groups: _vm.groups,
languages: _vm.languages,
loading: _vm.loading,
"opened-menu": _vm.openedMenu,
settings: _vm.settings,
"show-config": _vm.showConfig,
"sub-admins-groups": _vm.subAdminsGroups,
"user-actions": _vm.userActions,
user: _vm.user
},
on: {
"update:editing": function($event) {
_vm.editing = $event
},
hideMenu: _vm.hideMenu,
toggleMenu: _vm.toggleMenu
}
})
: _c(
"div",
{
staticClass: "row row--editable",
class: {
disabled: _vm.loading.delete || _vm.loading.disable,
"row--menu-opened": _vm.openedMenu
},
attrs: { "data-id": _vm.user.id }
},
[
_c(
"div",
{
staticClass: "avatar",
class: {
"icon-loading-small":
_vm.loading.delete || _vm.loading.disable || _vm.loading.wipe
}
},
[
!_vm.loading.delete && !_vm.loading.disable && !_vm.loading.wipe
? _c("img", {
attrs: {
src: _vm.generateAvatar(_vm.user.id, 32),
srcset:
_vm.generateAvatar(_vm.user.id, 64) +
" 2x, " +
_vm.generateAvatar(_vm.user.id, 128) +
" 4x",
alt: "",
height: "32",
width: "32"
}
})
: _vm._e()
]
),
_vm._v(" "),
_vm.user.backendCapabilities.setDisplayName
? _c("div", { staticClass: "displayName" }, [
_c(
"form",
{
staticClass: "displayName",
class: { "icon-loading-small": _vm.loading.displayName },
on: {
submit: function($event) {
$event.preventDefault()
return _vm.updateDisplayName($event)
}
}
},
[
_c("input", {
ref: "displayName",
attrs: {
id: "displayName" + _vm.user.id + _vm.rand,
disabled: _vm.loading.displayName || _vm.loading.all,
autocapitalize: "off",
autocomplete: "off",
autocorrect: "off",
spellcheck: "false",
type: "text"
},
domProps: { value: _vm.user.displayname }
}),
_vm._v(" "),
_c("input", {
staticClass: "icon-confirm",
attrs: { type: "submit", value: "" }
})
]
)
])
: _c("div", { staticClass: "name" }, [
_vm._v("\n\t\t" + _vm._s(_vm.user.id) + "\n\t\t"),
_c("div", { staticClass: "displayName subtitle" }, [
_c(
"div",
{
directives: [
{
name: "tooltip",
rawName: "v-tooltip",
value:
_vm.user.displayname.length > 20
? _vm.user.displayname
: "",
expression:
"user.displayname.length > 20 ? user.displayname : ''"
}
],
staticClass: "cellText"
},
[
_vm._v(
"\n\t\t\t\t" + _vm._s(_vm.user.displayname) + "\n\t\t\t"
)
]
)
])
]),
_vm._v(" "),
_vm.settings.canChangePassword &&
_vm.user.backendCapabilities.setPassword
? _c(
"form",
{
staticClass: "password",
class: { "icon-loading-small": _vm.loading.password },
on: {
submit: function($event) {
$event.preventDefault()
return _vm.updatePassword($event)
}
}
},
[
_c("input", {
ref: "password",
attrs: {
id: "password" + _vm.user.id + _vm.rand,
disabled: _vm.loading.password || _vm.loading.all,
minlength: _vm.minPasswordLength,
placeholder: _vm.t("settings", "Add new password"),
autocapitalize: "off",
autocomplete: "new-password",
autocorrect: "off",
required: "",
spellcheck: "false",
type: "password",
value: ""
}
}),
_vm._v(" "),
_c("input", {
staticClass: "icon-confirm",
attrs: { type: "submit", value: "" }
})
]
)
: _c("div"),
_vm._v(" "),
_c(
"form",
{
staticClass: "mailAddress",
class: { "icon-loading-small": _vm.loading.mailAddress },
on: {
submit: function($event) {
$event.preventDefault()
return _vm.updateEmail($event)
}
}
},
[
_c("input", {
ref: "mailAddress",
attrs: {
id: "mailAddress" + _vm.user.id + _vm.rand,
disabled: _vm.loading.mailAddress || _vm.loading.all,
placeholder: _vm.t("settings", "Add new email address"),
autocapitalize: "off",
autocomplete: "new-password",
autocorrect: "off",
spellcheck: "false",
type: "email"
},
domProps: { value: _vm.user.email }
}),
_vm._v(" "),
_c("input", {
staticClass: "icon-confirm",
attrs: { type: "submit", value: "" }
})
]
),
_vm._v(" "),
_c(
"div",
{
staticClass: "groups",
class: { "icon-loading-small": _vm.loading.groups }
},
[
_c(
"Multiselect",
{
staticClass: "multiselect-vue",
attrs: {
"close-on-select": false,
disabled: _vm.loading.groups || _vm.loading.all,
limit: 2,
multiple: true,
options: _vm.availableGroups,
placeholder: _vm.t("settings", "Add user to group"),
"tag-width": 60,
taggable: _vm.settings.isAdmin,
value: _vm.userGroups,
label: "name",
"tag-placeholder": "create",
"track-by": "id"
},
on: {
remove: _vm.removeUserGroup,
select: _vm.addUserGroup,
tag: _vm.createGroup
}
},
[
_c(
"span",
{ attrs: { slot: "noResult" }, slot: "noResult" },
[_vm._v(_vm._s(_vm.t("settings", "No results")))]
)
]
)
],
1
),
_vm._v(" "),
_vm.subAdminsGroups.length > 0 && _vm.settings.isAdmin
? _c(
"div",
{
staticClass: "subadmins",
class: { "icon-loading-small": _vm.loading.subadmins }
},
[
_c(
"Multiselect",
{
staticClass: "multiselect-vue",
attrs: {
"close-on-select": false,
disabled: _vm.loading.subadmins || _vm.loading.all,
limit: 2,
multiple: true,
options: _vm.subAdminsGroups,
placeholder: _vm.t("settings", "Set user as admin for"),
"tag-width": 60,
value: _vm.userSubAdminsGroups,
label: "name",
"track-by": "id"
},
on: {
remove: _vm.removeUserSubAdmin,
select: _vm.addUserSubAdmin
}
},
[
_c(
"span",
{ attrs: { slot: "noResult" }, slot: "noResult" },
[_vm._v(_vm._s(_vm.t("settings", "No results")))]
)
]
)
],
1
)
: _vm._e(),
_vm._v(" "),
_c(
"div",
{
directives: [
{
name: "tooltip",
rawName: "v-tooltip.auto",
value: _vm.usedSpace,
expression: "usedSpace",
modifiers: { auto: true }
}
],
staticClass: "quota",
class: { "icon-loading-small": _vm.loading.quota }
},
[
_c("Multiselect", {
staticClass: "multiselect-vue",
attrs: {
"allow-empty": false,
disabled: _vm.loading.quota || _vm.loading.all,
options: _vm.quotaOptions,
placeholder: _vm.t("settings", "Select user quota"),
taggable: true,
value: _vm.userQuota,
label: "label",
"tag-placeholder": "create",
"track-by": "id"
},
on: { input: _vm.setUserQuota, tag: _vm.validateQuota }
})
],
1
),
_vm._v(" "),
_vm.showConfig.showLanguages
? _c(
"div",
{
staticClass: "languages",
class: { "icon-loading-small": _vm.loading.languages }
},
[
_c("Multiselect", {
staticClass: "multiselect-vue",
attrs: {
"allow-empty": false,
disabled: _vm.loading.languages || _vm.loading.all,
options: _vm.languages,
placeholder: _vm.t("settings", "No language set"),
value: _vm.userLanguage,
"group-label": "label",
"group-values": "languages",
label: "name",
"track-by": "code"
},
on: { input: _vm.setUserLanguage }
})
],
1
)
: _vm._e(),
_vm._v(" "),
_vm.showConfig.showStoragePath || _vm.showConfig.showUserBackend
? _c("div", { staticClass: "storageLocation" })
: _vm._e(),
_vm._v(" "),
_vm.showConfig.showLastLogin ? _c("div") : _vm._e(),
_vm._v(" "),
_c("div", { staticClass: "userActions" }, [
!_vm.loading.all
? _c(
"div",
{ staticClass: "toggleUserActions" },
[
_c(
"Actions",
[
_c(
"ActionButton",
{
attrs: { icon: "icon-checkmark" },
on: {
click: function($event) {
_vm.editing = false
}
}
},
[
_vm._v(
"\n\t\t\t\t\t" +
_vm._s(_vm.t("settings", "Done")) +
"\n\t\t\t\t"
)
]
)
],
1
),
_vm._v(" "),
_c(
"div",
{
directives: [
{
name: "click-outside",
rawName: "v-click-outside",
value: _vm.hideMenu,
expression: "hideMenu"
}
],
staticClass: "userPopoverMenuWrapper"
},
[
_c("div", {
staticClass: "icon-more",
on: { click: _vm.toggleMenu }
}),
_vm._v(" "),
_c(
"div",
{
staticClass: "popovermenu",
class: { open: _vm.openedMenu }
},
[
_c("PopoverMenu", {
attrs: { menu: _vm.userActions }
})
],
1
)
]
)
],
1
)
: _vm._e(),
_vm._v(" "),
_c(
"div",
{
staticClass: "feedback",
style: { opacity: _vm.feedbackMessage !== "" ? 1 : 0 }
},
[
_c("div", { staticClass: "icon-checkmark" }),
_vm._v("\n\t\t\t" + _vm._s(_vm.feedbackMessage) + "\n\t\t")
]
)
])
]
)
}
var staticRenderFns = []
render._withStripped = true
/***/ }),
/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=template&id=ff154a08&":
/*!******************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=template&id=ff154a08& ***!
\******************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c(
"div",
{
staticClass: "row",
class: { disabled: _vm.loading.delete || _vm.loading.disable },
attrs: { "data-id": _vm.user.id }
},
[
_c(
"div",
{
staticClass: "avatar",
class: {
"icon-loading-small":
_vm.loading.delete || _vm.loading.disable || _vm.loading.wipe
}
},
[
!_vm.loading.delete && !_vm.loading.disable && !_vm.loading.wipe
? _c("img", {
attrs: {
alt: "",
width: "32",
height: "32",
src: _vm.generateAvatar(_vm.user.id, 32),
srcset:
_vm.generateAvatar(_vm.user.id, 64) +
" 2x, " +
_vm.generateAvatar(_vm.user.id, 128) +
" 4x"
}
})
: _vm._e()
]
),
_vm._v(" "),
_c("div", { staticClass: "name" }, [
_vm._v("\n\t\t" + _vm._s(_vm.user.id) + "\n\t\t"),
_c("div", { staticClass: "displayName subtitle" }, [
_c(
"div",
{
directives: [
{
name: "tooltip",
rawName: "v-tooltip",
value:
_vm.user.displayname.length > 20
? _vm.user.displayname
: "",
expression:
"user.displayname.length > 20 ? user.displayname : ''"
}
],
staticClass: "cellText"
},
[_vm._v("\n\t\t\t\t" + _vm._s(_vm.user.displayname) + "\n\t\t\t")]
)
])
]),
_vm._v(" "),
_c("div"),
_vm._v(" "),
_c("div", { staticClass: "mailAddress" }, [
_c(
"div",
{
directives: [
{
name: "tooltip",
rawName: "v-tooltip",
value:
_vm.user.email !== null && _vm.user.email.length > 20
? _vm.user.email
: "",
expression:
"user.email !== null && user.email.length > 20 ? user.email : ''"
}
],
staticClass: "cellText"
},
[_vm._v("\n\t\t\t" + _vm._s(_vm.user.email) + "\n\t\t")]
)
]),
_vm._v(" "),
_c("div", { staticClass: "groups" }, [
_vm._v("\n\t\t" + _vm._s(_vm.userGroupsLabels) + "\n\t")
]),
_vm._v(" "),
_vm.subAdminsGroups.length > 0 && _vm.settings.isAdmin
? _c("div", { staticClass: "subAdminsGroups" }, [
_vm._v("\n\t\t" + _vm._s(_vm.userSubAdminsGroupsLabels) + "\n\t")
])
: _vm._e(),
_vm._v(" "),
_c("div", { staticClass: "userQuota" }, [
_c("div", { staticClass: "quota" }, [
_vm._v(
"\n\t\t\t" +
_vm._s(_vm.userQuota) +
" (" +
_vm._s(_vm.usedSpace) +
")\n\t\t\t"
),
_c("progress", {
staticClass: "quota-user-progress",
class: { warn: _vm.usedQuota > 80 },
attrs: { max: "100" },
domProps: { value: _vm.usedQuota }
})
])
]),
_vm._v(" "),
_vm.showConfig.showLanguages
? _c("div", { staticClass: "languages" }, [
_vm._v("\n\t\t" + _vm._s(_vm.userLanguage.name) + "\n\t")
])
: _vm._e(),
_vm._v(" "),
_vm.showConfig.showUserBackend || _vm.showConfig.showStoragePath
? _c("div", { staticClass: "userBackend" }, [
_vm.showConfig.showUserBackend
? _c("div", { staticClass: "userBackend" }, [
_vm._v("\n\t\t\t" + _vm._s(_vm.user.backend) + "\n\t\t")
])
: _vm._e(),
_vm._v(" "),
_vm.showConfig.showStoragePath
? _c(
"div",
{
directives: [
{
name: "tooltip",
rawName: "v-tooltip",
value: _vm.user.storageLocation,
expression: "user.storageLocation"
}
],
staticClass: "storageLocation subtitle"
},
[
_vm._v(
"\n\t\t\t" + _vm._s(_vm.user.storageLocation) + "\n\t\t"
)
]
)
: _vm._e()
])
: _vm._e(),
_vm._v(" "),
_vm.showConfig.showLastLogin
? _c(
"div",
{
directives: [
{
name: "tooltip",
rawName: "v-tooltip.auto",
value: _vm.userLastLoginTooltip,
expression: "userLastLoginTooltip",
modifiers: { auto: true }
}
],
staticClass: "lastLogin"
},
[_vm._v("\n\t\t" + _vm._s(_vm.userLastLogin) + "\n\t")]
)
: _vm._e(),
_vm._v(" "),
_c("div", { staticClass: "userActions" }, [
_vm.canEdit && !_vm.loading.all
? _c(
"div",
{ staticClass: "toggleUserActions" },
[
_c(
"Actions",
[
_c(
"ActionButton",
{
attrs: { icon: "icon-rename" },
on: { click: _vm.toggleEdit }
},
[
_vm._v(
"\n\t\t\t\t\t" +
_vm._s(_vm.t("settings", "Edit User")) +
"\n\t\t\t\t"
)
]
)
],
1
),
_vm._v(" "),
_c("div", { staticClass: "userPopoverMenuWrapper" }, [
_c("button", {
directives: [
{
name: "click-outside",
rawName: "v-click-outside",
value: _vm.hideMenu,
expression: "hideMenu"
}
],
staticClass: "icon-more",
attrs: {
"aria-label": _vm.t(
"settings",
"Toggle user actions menu"
)
},
on: {
click: function($event) {
$event.preventDefault()
return _vm.$emit("toggleMenu")
}
}
}),
_vm._v(" "),
_c(
"div",
{
staticClass: "popovermenu",
class: { open: _vm.openedMenu },
attrs: { "aria-expanded": _vm.openedMenu }
},
[_c("PopoverMenu", { attrs: { menu: _vm.userActions } })],
1
)
])
],
1
)
: _vm._e(),
_vm._v(" "),
_c(
"div",
{
staticClass: "feedback",
style: { opacity: _vm.feedbackMessage !== "" ? 1 : 0 }
},
[
_c("div", { staticClass: "icon-checkmark" }),
_vm._v("\n\t\t\t" + _vm._s(_vm.feedbackMessage) + "\n\t\t")
]
)
])
]
)
}
var staticRenderFns = []
render._withStripped = true
/***/ }),
/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/views/Users.vue?vue&type=template&id=889b7562&scoped=true&":
/*!********************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/views/Users.vue?vue&type=template&id=889b7562&scoped=true& ***!
\********************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c(
"Content",
{
attrs: {
"app-name": "settings",
"navigation-class": { "icon-loading": _vm.loadingAddGroup }
}
},
[
_c(
"AppNavigation",
{
scopedSlots: _vm._u([
{
key: "list",
fn: function() {
return [
_c("AppNavigationItem", {
ref: "addGroup",
attrs: {
id: "addgroup",
"edit-placeholder": _vm.t("settings", "Enter group name"),
editable: true,
loading: _vm.loadingAddGroup,
title: _vm.t("settings", "Add group"),
icon: "icon-add"
},
on: {
click: function($event) {
return _vm.toggleAddGroupEntry(true)
},
"update:title": _vm.createGroup
}
}),
_vm._v(" "),
_c(
"AppNavigationItem",
{
attrs: {
id: "everyone",
exact: true,
title: _vm.t("settings", "Everyone"),
to: { name: "users" },
icon: "icon-contacts-dark"
}
},
[
_vm.userCount > 0
? _c(
"AppNavigationCounter",
{ attrs: { slot: "counter" }, slot: "counter" },
[
_vm._v(
"\n\t\t\t\t\t" +
_vm._s(_vm.userCount) +
"\n\t\t\t\t"
)
]
)
: _vm._e()
],
1
),
_vm._v(" "),
_vm.settings.isAdmin
? _c(
"AppNavigationItem",
{
attrs: {
id: "admin",
exact: true,
title: _vm.t("settings", "Admins"),
to: {
name: "group",
params: { selectedGroup: "admin" }
},
icon: "icon-user-admin"
}
},
[
_vm.adminGroupMenu.count
? _c(
"AppNavigationCounter",
{ attrs: { slot: "counter" }, slot: "counter" },
[
_vm._v(
"\n\t\t\t\t\t" +
_vm._s(_vm.adminGroupMenu.count) +
"\n\t\t\t\t"
)
]
)
: _vm._e()
],
1
)
: _vm._e(),
_vm._v(" "),
_vm.disabledGroupMenu.usercount > 0 ||
_vm.disabledGroupMenu.usercount === -1
? _c(
"AppNavigationItem",
{
attrs: {
id: "disabled",
exact: true,
title: _vm.t("settings", "Disabled users"),
to: {
name: "group",
params: { selectedGroup: "disabled" }
},
icon: "icon-disabled-users"
}
},
[
_vm.disabledGroupMenu.usercount > 0
? _c(
"AppNavigationCounter",
{ attrs: { slot: "counter" }, slot: "counter" },
[
_vm._v(
"\n\t\t\t\t\t" +
_vm._s(_vm.disabledGroupMenu.usercount) +
"\n\t\t\t\t"
)
]
)
: _vm._e()
],
1
)
: _vm._e(),
_vm._v(" "),
_vm.groupList.length > 0
? _c("AppNavigationCaption", {
attrs: { title: _vm.t("settings", "Groups") }
})
: _vm._e(),
_vm._v(" "),
_vm._l(_vm.groupList, function(group) {
return _c(
"AppNavigationItem",
{
key: group.id,
attrs: {
exact: true,
title: group.title,
to: {
name: "group",
params: {
selectedGroup: encodeURIComponent(group.id)
}
}
}
},
[
group.count
? _c(
"AppNavigationCounter",
{ attrs: { slot: "counter" }, slot: "counter" },
[
_vm._v(
"\n\t\t\t\t\t" +
_vm._s(group.count) +
"\n\t\t\t\t"
)
]
)
: _vm._e(),
_vm._v(" "),
_c(
"template",
{ slot: "actions" },
[
group.id !== "admin" &&
group.id !== "disabled" &&
_vm.settings.isAdmin
? _c(
"ActionButton",
{
attrs: { icon: "icon-delete" },
on: {
click: function($event) {
return _vm.removeGroup(group.id)
}
}
},
[
_vm._v(
"\n\t\t\t\t\t\t" +
_vm._s(
_vm.t("settings", "Remove group")
) +
"\n\t\t\t\t\t"
)
]
)
: _vm._e()
],
1
)
],
2
)
})
]
},
proxy: true
},
{
key: "footer",
fn: function() {
return [
_c("AppNavigationSettings", [
_c(
"div",
[
_c("p", [
_vm._v(_vm._s(_vm.t("settings", "Default quota:")))
]),
_vm._v(" "),
_c("Multiselect", {
attrs: {
value: _vm.defaultQuota,
options: _vm.quotaOptions,
"tag-placeholder": "create",
placeholder: _vm.t(
"settings",
"Select default quota"
),
label: "label",
"track-by": "id",
"allow-empty": false,
taggable: true
},
on: {
tag: _vm.validateQuota,
input: _vm.setDefaultQuota
}
})
],
1
),
_vm._v(" "),
_c("div", [
_c("input", {
directives: [
{
name: "model",
rawName: "v-model",
value: _vm.showLanguages,
expression: "showLanguages"
}
],
staticClass: "checkbox",
attrs: { id: "showLanguages", type: "checkbox" },
domProps: {
checked: Array.isArray(_vm.showLanguages)
? _vm._i(_vm.showLanguages, null) > -1
: _vm.showLanguages
},
on: {
change: function($event) {
var $$a = _vm.showLanguages,
$$el = $event.target,
$$c = $$el.checked ? true : false
if (Array.isArray($$a)) {
var $$v = null,
$$i = _vm._i($$a, $$v)
if ($$el.checked) {
$$i < 0 &&
(_vm.showLanguages = $$a.concat([$$v]))
} else {
$$i > -1 &&
(_vm.showLanguages = $$a
.slice(0, $$i)
.concat($$a.slice($$i + 1)))
}
} else {
_vm.showLanguages = $$c
}
}
}
}),
_vm._v(" "),
_c("label", { attrs: { for: "showLanguages" } }, [
_vm._v(_vm._s(_vm.t("settings", "Show Languages")))
])
]),
_vm._v(" "),
_c("div", [
_c("input", {
directives: [
{
name: "model",
rawName: "v-model",
value: _vm.showLastLogin,
expression: "showLastLogin"
}
],
staticClass: "checkbox",
attrs: { id: "showLastLogin", type: "checkbox" },
domProps: {
checked: Array.isArray(_vm.showLastLogin)
? _vm._i(_vm.showLastLogin, null) > -1
: _vm.showLastLogin
},
on: {
change: function($event) {
var $$a = _vm.showLastLogin,
$$el = $event.target,
$$c = $$el.checked ? true : false
if (Array.isArray($$a)) {
var $$v = null,
$$i = _vm._i($$a, $$v)
if ($$el.checked) {
$$i < 0 &&
(_vm.showLastLogin = $$a.concat([$$v]))
} else {
$$i > -1 &&
(_vm.showLastLogin = $$a
.slice(0, $$i)
.concat($$a.slice($$i + 1)))
}
} else {
_vm.showLastLogin = $$c
}
}
}
}),
_vm._v(" "),
_c("label", { attrs: { for: "showLastLogin" } }, [
_vm._v(_vm._s(_vm.t("settings", "Show last login")))
])
]),
_vm._v(" "),
_c("div", [
_c("input", {
directives: [
{
name: "model",
rawName: "v-model",
value: _vm.showUserBackend,
expression: "showUserBackend"
}
],
staticClass: "checkbox",
attrs: { id: "showUserBackend", type: "checkbox" },
domProps: {
checked: Array.isArray(_vm.showUserBackend)
? _vm._i(_vm.showUserBackend, null) > -1
: _vm.showUserBackend
},
on: {
change: function($event) {
var $$a = _vm.showUserBackend,
$$el = $event.target,
$$c = $$el.checked ? true : false
if (Array.isArray($$a)) {
var $$v = null,
$$i = _vm._i($$a, $$v)
if ($$el.checked) {
$$i < 0 &&
(_vm.showUserBackend = $$a.concat([$$v]))
} else {
$$i > -1 &&
(_vm.showUserBackend = $$a
.slice(0, $$i)
.concat($$a.slice($$i + 1)))
}
} else {
_vm.showUserBackend = $$c
}
}
}
}),
_vm._v(" "),
_c("label", { attrs: { for: "showUserBackend" } }, [
_vm._v(_vm._s(_vm.t("settings", "Show user backend")))
])
]),
_vm._v(" "),
_c("div", [
_c("input", {
directives: [
{
name: "model",
rawName: "v-model",
value: _vm.showStoragePath,
expression: "showStoragePath"
}
],
staticClass: "checkbox",
attrs: { id: "showStoragePath", type: "checkbox" },
domProps: {
checked: Array.isArray(_vm.showStoragePath)
? _vm._i(_vm.showStoragePath, null) > -1
: _vm.showStoragePath
},
on: {
change: function($event) {
var $$a = _vm.showStoragePath,
$$el = $event.target,
$$c = $$el.checked ? true : false
if (Array.isArray($$a)) {
var $$v = null,
$$i = _vm._i($$a, $$v)
if ($$el.checked) {
$$i < 0 &&
(_vm.showStoragePath = $$a.concat([$$v]))
} else {
$$i > -1 &&
(_vm.showStoragePath = $$a
.slice(0, $$i)
.concat($$a.slice($$i + 1)))
}
} else {
_vm.showStoragePath = $$c
}
}
}
}),
_vm._v(" "),
_c("label", { attrs: { for: "showStoragePath" } }, [
_vm._v(_vm._s(_vm.t("settings", "Show storage path")))
])
]),
_vm._v(" "),
_c("div", [
_c("input", {
directives: [
{
name: "model",
rawName: "v-model",
value: _vm.sendWelcomeMail,
expression: "sendWelcomeMail"
}
],
staticClass: "checkbox",
attrs: {
id: "sendWelcomeMail",
disabled: _vm.loadingSendMail,
type: "checkbox"
},
domProps: {
checked: Array.isArray(_vm.sendWelcomeMail)
? _vm._i(_vm.sendWelcomeMail, null) > -1
: _vm.sendWelcomeMail
},
on: {
change: function($event) {
var $$a = _vm.sendWelcomeMail,
$$el = $event.target,
$$c = $$el.checked ? true : false
if (Array.isArray($$a)) {
var $$v = null,
$$i = _vm._i($$a, $$v)
if ($$el.checked) {
$$i < 0 &&
(_vm.sendWelcomeMail = $$a.concat([$$v]))
} else {
$$i > -1 &&
(_vm.sendWelcomeMail = $$a
.slice(0, $$i)
.concat($$a.slice($$i + 1)))
}
} else {
_vm.sendWelcomeMail = $$c
}
}
}
}),
_vm._v(" "),
_c("label", { attrs: { for: "sendWelcomeMail" } }, [
_vm._v(
_vm._s(_vm.t("settings", "Send email to new user"))
)
])
])
])
]
},
proxy: true
}
])
},
[
_c("AppNavigationNew", {
attrs: {
"button-id": "new-user-button",
text: _vm.t("settings", "New user"),
"button-class": "icon-add"
},
on: {
click: _vm.showNewUserMenu,
keyup: [
function($event) {
if (
!$event.type.indexOf("key") &&
_vm._k($event.keyCode, "enter", 13, $event.key, "Enter")
) {
return null
}
return _vm.showNewUserMenu($event)
},
function($event) {
if (
!$event.type.indexOf("key") &&
_vm._k($event.keyCode, "space", 32, $event.key, [
" ",
"Spacebar"
])
) {
return null
}
return _vm.showNewUserMenu($event)
}
]
}
})
],
1
),
_vm._v(" "),
_c(
"AppContent",
[
_c("UserList", {
attrs: {
users: _vm.users,
"show-config": _vm.showConfig,
"selected-group": _vm.selectedGroupDecoded,
"external-actions": _vm.externalActions
},
scopedSlots: _vm._u([
{
key: "content",
fn: function() {
return undefined
},
proxy: true
}
])
})
],
1
)
],
1
)
}
var staticRenderFns = []
render._withStripped = true
/***/ })
}]);
//# sourceMappingURL=vue-settings-users-0cb35b7298723c8db0be.js.map?v=18124f3cf225b708f3dc