diff options
Diffstat (limited to 'apps/settings/js/vue-2.js')
-rw-r--r-- | apps/settings/js/vue-2.js | 4978 |
1 files changed, 4978 insertions, 0 deletions
diff --git a/apps/settings/js/vue-2.js b/apps/settings/js/vue-2.js new file mode 100644 index 00000000000..5a45bc5abd5 --- /dev/null +++ b/apps/settings/js/vue-2.js @@ -0,0 +1,4978 @@ +(window["webpackJsonpSettings"] = window["webpackJsonpSettings"] || []).push([[2],{ + +/***/ "./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 static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_style_loader_index_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/vue-style-loader!../../../../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/vue-style-loader/index.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&"); +/* harmony import */ var _node_modules_vue_style_loader_index_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___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_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__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_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__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_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__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_vue_style_loader_index_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___default.a); + +/***/ }), + +/***/ "./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 static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_style_loader_index_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/vue-style-loader!../../../../../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/vue-style-loader/index.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&"); +/* harmony import */ var _node_modules_vue_style_loader_index_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___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_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__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_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__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_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__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_vue_style_loader_index_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___default.a); + +/***/ }), + +/***/ "./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_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./UserRowSimple.vue?vue&type=template&id=ff154a08&scoped=true& */ "./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=template&id=ff154a08&scoped=true&"); +/* 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_id_ff154a08_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./UserRowSimple.vue?vue&type=style&index=0&id=ff154a08&scoped=true&lang=scss& */ "./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=style&index=0&id=ff154a08&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"])( + _UserRowSimple_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _UserRowSimple_vue_vue_type_template_id_ff154a08_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"], + _UserRowSimple_vue_vue_type_template_id_ff154a08_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + "ff154a08", + 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&id=ff154a08&scoped=true&lang=scss&": +/*!***************************************************************************************************************************!*\ + !*** ./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=style&index=0&id=ff154a08&scoped=true&lang=scss& ***! + \***************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_style_loader_index_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_id_ff154a08_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/vue-style-loader!../../../../../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&id=ff154a08&scoped=true&lang=scss& */ "./node_modules/vue-style-loader/index.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&id=ff154a08&scoped=true&lang=scss&"); +/* harmony import */ var _node_modules_vue_style_loader_index_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_id_ff154a08_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_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_id_ff154a08_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_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_id_ff154a08_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_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_id_ff154a08_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_vue_style_loader_index_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_id_ff154a08_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=template&id=ff154a08&scoped=true&": +/*!************************************************************************************************************!*\ + !*** ./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=template&id=ff154a08&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_UserRowSimple_vue_vue_type_template_id_ff154a08_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!./UserRowSimple.vue?vue&type=template&id=ff154a08&scoped=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&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_UserRowSimple_vue_vue_type_template_id_ff154a08_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_UserRowSimple_vue_vue_type_template_id_ff154a08_scoped_true___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__); +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +/** + * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com> + * + * @author John Molakvoæ <skjnldsv@protonmail.com> + * + * @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: function _default() { + return {}; + } + }, + groups: { + type: Array, + default: function _default() { + return []; + } + }, + subAdminsGroups: { + type: Array, + default: function _default() { + return []; + } + }, + quotaOptions: { + type: Array, + default: function _default() { + return []; + } + }, + showConfig: { + type: Object, + default: function _default() { + return {}; + } + }, + languages: { + type: Array, + required: true + }, + externalActions: { + type: Array, + default: function _default() { + return []; + } + } + }, + computed: { + /* GROUPS MANAGEMENT */ + userGroups: function userGroups() { + var _this = this; + + var userGroups = this.groups.filter(function (group) { + return _this.user.groups.includes(group.id); + }); + return userGroups; + }, + userSubAdminsGroups: function userSubAdminsGroups() { + var _this2 = this; + + var userSubAdminsGroups = this.subAdminsGroups.filter(function (group) { + return _this2.user.subadmin.includes(group.id); + }); + return userSubAdminsGroups; + }, + availableGroups: function availableGroups() { + var _this3 = this; + + return this.groups.map(function (group) { + // clone object because we don't want + // to edit the original groups + var 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 && !_this3.user.groups.includes(group.id) || group.canRemove === false && _this3.user.groups.includes(group.id); + return groupClone; + }); + }, + + /* QUOTA MANAGEMENT */ + usedSpace: function 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: function usedQuota() { + var quota = this.user.quota.quota; + + if (quota > 0) { + quota = Math.min(100, Math.round(this.user.quota.used / quota * 100)); + } else { + var 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: function userQuota() { + if (this.user.quota.quota >= 0) { + // if value is valid, let's map the quotaOptions or return custom quota + var humanQuota = OC.Util.humanFileSize(this.user.quota.quota); + var userQuota = this.quotaOptions.find(function (quota) { + return 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: function minPasswordLength() { + return this.$store.getters.getPasswordPolicyMinLength; + }, + + /* LANGUAGE */ + userLanguage: function userLanguage() { + var _this4 = this; + + var availableLanguages = this.languages[0].languages.concat(this.languages[1].languages); + var userLang = availableLanguages.find(function (lang) { + return lang.code === _this4.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: function userLastLoginTooltip() { + if (this.user.lastLogin > 0) { + return OC.Util.formatDate(this.user.lastLogin); + } + + return ''; + }, + userLastLogin: function 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: function generateAvatar(user) { + var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 32; + return OC.generateUrl('/avatar/{user}/{size}?v={version}', { + user: user, + size: 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 static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_style_loader_index_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/vue-style-loader!../../../../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/vue-style-loader/index.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&"); +/* harmony import */ var _node_modules_vue_style_loader_index_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___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_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__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_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__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_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__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_vue_style_loader_index_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___default.a); + +/***/ }), + +/***/ "./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 _UserList_UserRow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./UserList/UserRow */ "./apps/settings/src/components/UserList/UserRow.vue"); +/* harmony import */ var _nextcloud_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/vue */ "./node_modules/@nextcloud/vue/dist/ncvuecomponents.js"); +/* harmony import */ var _nextcloud_vue__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_vue__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var vue_infinite_loading__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue-infinite-loading */ "./node_modules/vue-infinite-loading/dist/vue-infinite-loading.js"); +/* harmony import */ var vue_infinite_loading__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(vue_infinite_loading__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + +var unlimitedQuota = { + id: 'none', + label: t('settings', 'Unlimited') +}; +var defaultQuota = { + id: 'default', + label: t('settings', 'Default quota') +}; +var 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: { + userRow: _UserList_UserRow__WEBPACK_IMPORTED_MODULE_0__["default"], + Multiselect: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_1__["Multiselect"], + InfiniteLoading: vue_infinite_loading__WEBPACK_IMPORTED_MODULE_2___default.a, + Actions: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_1__["Actions"], + ActionButton: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_1__["ActionButton"] + }, + props: { + users: { + type: Array, + default: function _default() { + return []; + } + }, + showConfig: { + type: Object, + required: true + }, + selectedGroup: { + type: String, + default: null + }, + externalActions: { + type: Array, + default: function _default() { + return []; + } + } + }, + data: function data() { + return { + unlimitedQuota: unlimitedQuota, + defaultQuota: defaultQuota, + loading: { + all: false, + groups: false + }, + scrolled: false, + searchQuery: '', + newUser: Object.assign({}, newUser) + }; + }, + computed: { + settings: function settings() { + return this.$store.getters.getServerData; + }, + selectedGroupDecoded: function selectedGroupDecoded() { + return decodeURIComponent(this.selectedGroup); + }, + filteredUsers: function filteredUsers() { + if (this.selectedGroup === 'disabled') { + return this.users.filter(function (user) { + return user.enabled === false; + }); + } + + if (!this.settings.isAdmin) { + // we don't want subadmins to edit themselves + return this.users.filter(function (user) { + return user.enabled !== false; + }); + } + + return this.users.filter(function (user) { + return user.enabled !== false; + }); + }, + groups: function groups() { + // data provided php side + remove the disabled group + return this.$store.getters.getGroups.filter(function (group) { + return group.id !== 'disabled'; + }).sort(function (a, b) { + return a.name.localeCompare(b.name); + }); + }, + canAddGroups: function canAddGroups() { + // disabled if no permission to add new users to group + return this.groups.map(function (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: function subAdminsGroups() { + // data provided php side + return this.$store.getters.getSubadminGroups; + }, + quotaOptions: function quotaOptions() { + // convert the preset array into objects + var quotaPreset = this.settings.quotaPreset.reduce(function (acc, cur) { + return acc.concat({ + id: cur, + label: cur + }); + }, []); // add default presets + + quotaPreset.unshift(this.unlimitedQuota); + quotaPreset.unshift(this.defaultQuota); + return quotaPreset; + }, + minPasswordLength: function minPasswordLength() { + return this.$store.getters.getPasswordPolicyMinLength; + }, + usersOffset: function usersOffset() { + return this.$store.getters.getUsersOffset; + }, + usersLimit: function usersLimit() { + return this.$store.getters.getUsersLimit; + }, + usersCount: function usersCount() { + return this.users.length; + }, + + /* LANGUAGES */ + languages: function 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: function 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: function 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: function 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 + */ + + this.userSearch = new OCA.Search(this.search, this.resetSearch); + /** + * If disabled group but empty, redirect + */ + + this.redirectIfDisabled(); + }, + methods: { + onScroll: function 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: function validateQuota(quota) { + // only used for new presets sent through @Tag + var 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: function infiniteHandler($state) { + this.$store.dispatch('getUsers', { + offset: this.usersOffset, + limit: this.usersLimit, + group: this.selectedGroup !== 'disabled' ? this.selectedGroup : '', + search: this.searchQuery + }).then(function (response) { + response ? $state.loaded() : $state.complete(); + }); + }, + + /* SEARCH */ + search: function search(query) { + this.searchQuery = query; + this.$store.commit('resetUsers'); + this.$refs.infiniteLoading.stateChanger.reset(); + }, + resetSearch: function resetSearch() { + this.search(''); + }, + resetForm: function 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_3__["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: function createUser() { + var _this = this; + + 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(function (group) { + return group.id; + }), + subadmin: this.newUser.subAdminsGroups.map(function (group) { + return group.id; + }), + quota: this.newUser.quota.id, + language: this.newUser.language.code + }).then(function () { + _this.resetForm(); + + _this.$refs.newusername.focus(); + }).catch(function (error) { + _this.loading.all = false; + + if (error.response && error.response.data && error.response.data.ocs && error.response.data.ocs.meta) { + var 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: function setNewUserDefaultGroup(value) { + if (value && value.length > 0) { + // setting new user default group to the current selected one + var currentGroup = this.groups.find(function (group) { + return 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: function createGroup(gid) { + var _this2 = this; + + this.loading.groups = true; + this.$store.dispatch('addGroup', gid).then(function (group) { + _this2.newUser.groups.push(_this2.groups.find(function (group) { + return group.id === gid; + })); + + _this2.loading.groups = false; + }).catch(function () { + _this2.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: function redirectIfDisabled() { + var allGroups = this.$store.getters.getGroups; + + if (this.selectedGroup === 'disabled' && allGroups.findIndex(function (group) { + return 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(); + } + }, + onClose: function onClose() { + 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"); +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + + +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.a + }, + mixins: [_mixins_UserRowMixin__WEBPACK_IMPORTED_MODULE_5__["default"]], + props: { + user: { + type: Object, + required: true + }, + settings: { + type: Object, + default: function _default() { + return {}; + } + }, + groups: { + type: Array, + default: function _default() { + return []; + } + }, + subAdminsGroups: { + type: Array, + default: function _default() { + return []; + } + }, + quotaOptions: { + type: Array, + default: function _default() { + return []; + } + }, + showConfig: { + type: Object, + default: function _default() { + return {}; + } + }, + languages: { + type: Array, + required: true + }, + externalActions: { + type: Array, + default: function _default() { + return []; + } + } + }, + data: function 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: function userActions() { + var 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: function toggleMenu() { + this.openedMenu = !this.openedMenu; + }, + hideMenu: function hideMenu() { + this.openedMenu = false; + }, + wipeUserDevices: function wipeUserDevices() { + var _this = this; + + var 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: userid + }), t('settings', 'Remote wipe of devices'), { + type: OC.dialogs.YES_NO_BUTTONS, + confirm: t('settings', 'Wipe {userid}\'s devices', { + userid: userid + }), + confirmClasses: 'error', + cancel: t('settings', 'Cancel') + }, function (result) { + if (result) { + _this.loading.wipe = true; + _this.loading.all = true; + + _this.$store.dispatch('wipeUserDevices', userid).then(function () { + _this.loading.wipe = false; + _this.loading.all = false; + }); + } + }, true); + }, + deleteUser: function deleteUser() { + var _this2 = this; + + var userid = this.user.id; + OC.dialogs.confirmDestructive(t('settings', 'Fully delete {userid}\'s account including all their personal files, app data, etc.', { + userid: userid + }), t('settings', 'Account deletion'), { + type: OC.dialogs.YES_NO_BUTTONS, + confirm: t('settings', 'Delete {userid}\'s account', { + userid: userid + }), + confirmClasses: 'error', + cancel: t('settings', 'Cancel') + }, function (result) { + if (result) { + _this2.loading.delete = true; + _this2.loading.all = true; + return _this2.$store.dispatch('deleteUser', userid).then(function () { + _this2.loading.delete = false; + _this2.loading.all = false; + }); + } + }, true); + }, + enableDisableUser: function enableDisableUser() { + var _this3 = this; + + this.loading.delete = true; + this.loading.all = true; + var userid = this.user.id; + var enabled = !this.user.enabled; + return this.$store.dispatch('enableDisableUser', { + userid: userid, + enabled: enabled + }).then(function () { + _this3.loading.delete = false; + _this3.loading.all = false; + }); + }, + + /** + * Set user displayName + * + * @param {string} displayName The display name + */ + updateDisplayName: function updateDisplayName() { + var _this4 = this; + + var displayName = this.$refs.displayName.value; + this.loading.displayName = true; + this.$store.dispatch('setUserData', { + userid: this.user.id, + key: 'displayname', + value: displayName + }).then(function () { + _this4.loading.displayName = false; + _this4.$refs.displayName.value = displayName; + }); + }, + + /** + * Set user password + * + * @param {string} password The email adress + */ + updatePassword: function updatePassword() { + var _this5 = this; + + var password = this.$refs.password.value; + this.loading.password = true; + this.$store.dispatch('setUserData', { + userid: this.user.id, + key: 'password', + value: password + }).then(function () { + _this5.loading.password = false; + _this5.$refs.password.value = ''; // empty & show placeholder + }); + }, + + /** + * Set user mailAddress + * + * @param {string} mailAddress The email adress + */ + updateEmail: function updateEmail() { + var _this6 = this; + + var mailAddress = this.$refs.mailAddress.value; + this.loading.mailAddress = true; + this.$store.dispatch('setUserData', { + userid: this.user.id, + key: 'email', + value: mailAddress + }).then(function () { + _this6.loading.mailAddress = false; + _this6.$refs.mailAddress.value = mailAddress; + }); + }, + + /** + * Create a new group and add user to it + * + * @param {string} gid Group id + */ + createGroup: function createGroup(gid) { + var _this7 = this; + + return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + var userid; + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _this7.loading = { + groups: true, + subadmins: true + }; + _context.prev = 1; + _context.next = 4; + return _this7.$store.dispatch('addGroup', gid); + + case 4: + userid = _this7.user.id; + _context.next = 7; + return _this7.$store.dispatch('addUserGroup', { + userid: userid, + gid: gid + }); + + case 7: + _context.next = 12; + break; + + case 9: + _context.prev = 9; + _context.t0 = _context["catch"](1); + console.error(_context.t0); + + case 12: + _context.prev = 12; + _this7.loading = { + groups: false, + subadmins: false + }; + return _context.finish(12); + + case 15: + return _context.abrupt("return", _this7.$store.getters.getGroups[_this7.groups.length]); + + case 16: + case "end": + return _context.stop(); + } + } + }, _callee, null, [[1, 9, 12, 15]]); + }))(); + }, + + /** + * Add user to group + * + * @param {object} group Group object + */ + addUserGroup: function addUserGroup(group) { + var _this8 = this; + + return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { + var userid, gid; + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + if (!(group.canAdd === false)) { + _context2.next = 2; + break; + } + + return _context2.abrupt("return", false); + + case 2: + _this8.loading.groups = true; + userid = _this8.user.id; + gid = group.id; + _context2.prev = 5; + _context2.next = 8; + return _this8.$store.dispatch('addUserGroup', { + userid: userid, + gid: gid + }); + + case 8: + _context2.next = 13; + break; + + case 10: + _context2.prev = 10; + _context2.t0 = _context2["catch"](5); + console.error(_context2.t0); + + case 13: + _context2.prev = 13; + _this8.loading.groups = false; + return _context2.finish(13); + + case 16: + case "end": + return _context2.stop(); + } + } + }, _callee2, null, [[5, 10, 13, 16]]); + }))(); + }, + + /** + * Remove user from group + * + * @param {object} group Group object + */ + removeUserGroup: function removeUserGroup(group) { + var _this9 = this; + + return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { + var userid, gid; + return regeneratorRuntime.wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + if (!(group.canRemove === false)) { + _context3.next = 2; + break; + } + + return _context3.abrupt("return", false); + + case 2: + _this9.loading.groups = true; + userid = _this9.user.id; + gid = group.id; + _context3.prev = 5; + _context3.next = 8; + return _this9.$store.dispatch('removeUserGroup', { + userid: userid, + gid: gid + }); + + case 8: + _this9.loading.groups = false; // remove user from current list if current list is the removed group + + if (_this9.$route.params.selectedGroup === gid) { + _this9.$store.commit('deleteUser', userid); + } + + _context3.next = 15; + break; + + case 12: + _context3.prev = 12; + _context3.t0 = _context3["catch"](5); + _this9.loading.groups = false; + + case 15: + case "end": + return _context3.stop(); + } + } + }, _callee3, null, [[5, 12]]); + }))(); + }, + + /** + * Add user to group + * + * @param {object} group Group object + */ + addUserSubAdmin: function addUserSubAdmin(group) { + var _this10 = this; + + return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { + var userid, gid; + return regeneratorRuntime.wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + _this10.loading.subadmins = true; + userid = _this10.user.id; + gid = group.id; + _context4.prev = 3; + _context4.next = 6; + return _this10.$store.dispatch('addUserSubAdmin', { + userid: userid, + gid: gid + }); + + case 6: + _this10.loading.subadmins = false; + _context4.next = 12; + break; + + case 9: + _context4.prev = 9; + _context4.t0 = _context4["catch"](3); + console.error(_context4.t0); + + case 12: + case "end": + return _context4.stop(); + } + } + }, _callee4, null, [[3, 9]]); + }))(); + }, + + /** + * Remove user from group + * + * @param {object} group Group object + */ + removeUserSubAdmin: function removeUserSubAdmin(group) { + var _this11 = this; + + return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { + var userid, gid; + return regeneratorRuntime.wrap(function _callee5$(_context5) { + while (1) { + switch (_context5.prev = _context5.next) { + case 0: + _this11.loading.subadmins = true; + userid = _this11.user.id; + gid = group.id; + _context5.prev = 3; + _context5.next = 6; + return _this11.$store.dispatch('removeUserSubAdmin', { + userid: userid, + gid: gid + }); + + case 6: + _context5.next = 11; + break; + + case 8: + _context5.prev = 8; + _context5.t0 = _context5["catch"](3); + console.error(_context5.t0); + + case 11: + _context5.prev = 11; + _this11.loading.subadmins = false; + return _context5.finish(11); + + case 14: + case "end": + return _context5.stop(); + } + } + }, _callee5, null, [[3, 8, 11, 14]]); + }))(); + }, + + /** + * Dispatch quota set request + * + * @param {string|Object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'} + * @returns {string} + */ + setUserQuota: function setUserQuota() { + var _arguments = arguments, + _this12 = this; + + return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { + var quota; + return regeneratorRuntime.wrap(function _callee6$(_context6) { + while (1) { + switch (_context6.prev = _context6.next) { + case 0: + quota = _arguments.length > 0 && _arguments[0] !== undefined ? _arguments[0] : 'none'; + _this12.loading.quota = true; // ensure we only send the preset id + + quota = quota.id ? quota.id : quota; + _context6.prev = 3; + _context6.next = 6; + return _this12.$store.dispatch('setUserData', { + userid: _this12.user.id, + key: 'quota', + value: quota + }); + + case 6: + _context6.next = 11; + break; + + case 8: + _context6.prev = 8; + _context6.t0 = _context6["catch"](3); + console.error(_context6.t0); + + case 11: + _context6.prev = 11; + _this12.loading.quota = false; + return _context6.finish(11); + + case 14: + return _context6.abrupt("return", quota); + + case 15: + case "end": + return _context6.stop(); + } + } + }, _callee6, null, [[3, 8, 11, 14]]); + }))(); + }, + + /** + * 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: function validateQuota(quota) { + // only used for new presets sent through @Tag + var 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} + */ + setUserLanguage: function setUserLanguage(lang) { + var _this13 = this; + + return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { + return regeneratorRuntime.wrap(function _callee7$(_context7) { + while (1) { + switch (_context7.prev = _context7.next) { + case 0: + _this13.loading.languages = true; // ensure we only send the preset id + + _context7.prev = 1; + _context7.next = 4; + return _this13.$store.dispatch('setUserData', { + userid: _this13.user.id, + key: 'language', + value: lang.code + }); + + case 4: + _context7.next = 9; + break; + + case 6: + _context7.prev = 6; + _context7.t0 = _context7["catch"](1); + console.error(_context7.t0); + + case 9: + _context7.prev = 9; + _this13.loading.languages = false; + return _context7.finish(9); + + case 12: + return _context7.abrupt("return", lang); + + case 13: + case "end": + return _context7.stop(); + } + } + }, _callee7, null, [[1, 6, 9, 12]]); + }))(); + }, + + /** + * Dispatch new welcome mail request + */ + sendWelcomeMail: function sendWelcomeMail() { + var _this14 = this; + + this.loading.all = true; + this.$store.dispatch('sendWelcomeMail', this.user.id).then(function (success) { + if (success) { + // Show feedback to indicate the success + _this14.feedbackMessage = t('setting', 'Welcome mail sent!'); + setTimeout(function () { + _this14.feedbackMessage = ''; + }, 2000); + } + + _this14.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__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/vue */ "./node_modules/@nextcloud/vue/dist/ncvuecomponents.js"); +/* harmony import */ var _nextcloud_vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_vue__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var vue_click_outside__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue-click-outside */ "./node_modules/vue-click-outside/index.js"); +/* harmony import */ var vue_click_outside__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(vue_click_outside__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _nextcloud_auth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/auth */ "./node_modules/@nextcloud/auth/dist/index.js"); +/* harmony import */ var _nextcloud_auth__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_auth__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _mixins_UserRowMixin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/UserRowMixin */ "./apps/settings/src/mixins/UserRowMixin.js"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'UserRowSimple', + components: { + PopoverMenu: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_0__["PopoverMenu"], + ActionButton: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_0__["ActionButton"], + Actions: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_0__["Actions"] + }, + directives: { + ClickOutside: vue_click_outside__WEBPACK_IMPORTED_MODULE_1___default.a + }, + mixins: [_mixins_UserRowMixin__WEBPACK_IMPORTED_MODULE_3__["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: function userGroupsLabels() { + return this.userGroups.map(function (group) { + return group.name; + }).join(', '); + }, + userSubAdminsGroupsLabels: function userSubAdminsGroupsLabels() { + return this.userSubAdminsGroups.map(function (group) { + return group.name; + }).join(', '); + }, + usedSpace: function 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: function canEdit() { + return Object(_nextcloud_auth__WEBPACK_IMPORTED_MODULE_2__["getCurrentUser"])().uid !== this.user.id || this.settings.isAdmin; + }, + userQuota: function userQuota() { + if (this.user.quota.quota === 'none') { + return t('settings', 'Unlimited'); + } + + if (this.user.quota.quota >= 0) { + return OC.Util.humanFileSize(this.user.quota.quota); + } + + return OC.Util.humanFileSize(0); + } + }, + methods: { + hideMenu: function hideMenu() { + this.$emit('hideMenu'); + }, + toggleEdit: function 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"); +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + + + + + + + + + + + +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.a, + AppContent: _nextcloud_vue_dist_Components_AppContent__WEBPACK_IMPORTED_MODULE_1___default.a, + AppNavigation: _nextcloud_vue_dist_Components_AppNavigation__WEBPACK_IMPORTED_MODULE_2___default.a, + AppNavigationCaption: _nextcloud_vue_dist_Components_AppNavigationCaption__WEBPACK_IMPORTED_MODULE_3___default.a, + AppNavigationCounter: _nextcloud_vue_dist_Components_AppNavigationCounter__WEBPACK_IMPORTED_MODULE_4___default.a, + AppNavigationItem: _nextcloud_vue_dist_Components_AppNavigationItem__WEBPACK_IMPORTED_MODULE_5___default.a, + AppNavigationNew: _nextcloud_vue_dist_Components_AppNavigationNew__WEBPACK_IMPORTED_MODULE_6___default.a, + AppNavigationSettings: _nextcloud_vue_dist_Components_AppNavigationSettings__WEBPACK_IMPORTED_MODULE_7___default.a, + Content: _nextcloud_vue_dist_Components_Content__WEBPACK_IMPORTED_MODULE_9___default.a, + Multiselect: _nextcloud_vue_dist_Components_Multiselect__WEBPACK_IMPORTED_MODULE_11___default.a, + UserList: _components_UserList__WEBPACK_IMPORTED_MODULE_14__["default"] + }, + props: { + selectedGroup: { + type: String, + default: null + } + }, + data: function 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: function selectedGroupDecoded() { + return this.selectedGroup ? decodeURIComponent(this.selectedGroup) : null; + }, + users: function users() { + return this.$store.getters.getUsers; + }, + groups: function groups() { + return this.$store.getters.getGroups; + }, + usersOffset: function usersOffset() { + return this.$store.getters.getUsersOffset; + }, + usersLimit: function usersLimit() { + return this.$store.getters.getUsersLimit; + }, + // Local settings + showLanguages: { + get: function get() { + return this.getLocalstorage('showLanguages'); + }, + set: function set(status) { + this.setLocalStorage('showLanguages', status); + } + }, + showLastLogin: { + get: function get() { + return this.getLocalstorage('showLastLogin'); + }, + set: function set(status) { + this.setLocalStorage('showLastLogin', status); + } + }, + showUserBackend: { + get: function get() { + return this.getLocalstorage('showUserBackend'); + }, + set: function set(status) { + this.setLocalStorage('showUserBackend', status); + } + }, + showStoragePath: { + get: function get() { + return this.getLocalstorage('showStoragePath'); + }, + set: function set(status) { + this.setLocalStorage('showStoragePath', status); + } + }, + userCount: function userCount() { + return this.$store.getters.getUserCount; + }, + settings: function settings() { + return this.$store.getters.getServerData; + }, + // default quota + quotaOptions: function quotaOptions() { + // convert the preset array into objects + var quotaPreset = this.settings.quotaPreset.reduce(function (acc, cur) { + return acc.concat({ + id: cur, + label: cur + }); + }, []); // add default presets + + quotaPreset.unshift(this.unlimitedQuota); + return quotaPreset; + }, + // mapping saved values to objects + defaultQuota: { + get: function 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: function set(quota) { + this.selectedQuota = quota; + } + }, + sendWelcomeMail: { + get: function get() { + return this.settings.newUserSendEmail; + }, + set: function set(value) { + var _this = this; + + return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.prev = 0; + _this.loadingSendMail = true; + + _this.$store.commit('setServerData', _objectSpread({}, _this.settings, { + newUserSendEmail: value + })); + + _context.next = 5; + return _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' + }); + + case 5: + _context.next = 10; + break; + + case 7: + _context.prev = 7; + _context.t0 = _context["catch"](0); + console.error('could not update newUser.sendEmail preference: ' + _context.t0.message, _context.t0); + + case 10: + _context.prev = 10; + _this.loadingSendMail = false; + return _context.finish(10); + + case 13: + case "end": + return _context.stop(); + } + } + }, _callee, null, [[0, 7, 10, 13]]); + }))(); + } + }, + groupList: function groupList() { + var _this2 = this; + + var groups = Array.isArray(this.groups) ? this.groups : []; + return groups // filter out disabled and admin + .filter(function (group) { + return group.id !== 'disabled' && group.id !== 'admin'; + }).map(function (group) { + return _this2.formatGroupMenu(group); + }); + }, + adminGroupMenu: function adminGroupMenu() { + return this.formatGroupMenu(this.groups.find(function (group) { + return group.id === 'admin'; + })); + }, + disabledGroupMenu: function disabledGroupMenu() { + return this.formatGroupMenu(this.groups.find(function (group) { + return group.id === 'disabled'; + })); + } + }, + beforeMount: function 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: function created() { + // init the OCA.Settings.UserList object + // and add the registerAction method + Object.assign(OCA, { + Settings: { + UserList: { + registerAction: this.registerAction + } + } + }); + }, + methods: { + toggleNewUserMenu: function toggleNewUserMenu() { + this.showConfig.showNewUserForm = !this.showConfig.showNewUserForm; + + if (this.showConfig.showNewUserForm) { + vue__WEBPACK_IMPORTED_MODULE_12__["default"].nextTick(function () { + window.newusername.focus(); + }); + } + }, + getLocalstorage: function getLocalstorage(key) { + // force initialization + var 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: function setLocalStorage(key, status) { + this.showConfig[key] = status; + this.$localStorage.set(key, status); + return status; + }, + removeGroup: function removeGroup(groupid) { + var 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: function setDefaultQuota() { + var _this3 = this; + + var quota = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'none'; + this.$store.dispatch('setAppConfig', { + app: 'files', + key: 'default_quota', + // ensure we only send the preset id + value: quota.id ? quota.id : quota + }).then(function () { + if (_typeof(quota) !== 'object') { + quota = { + id: quota, + label: quota + }; + } + + _this3.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: function validateQuota(quota) { + // only used for new presets sent through @Tag + var 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: function registerAction(icon, text, action) { + this.externalActions.push({ + icon: icon, + text: text, + action: action + }); + return this.externalActions; + }, + + /** + * Create a new group + * + * @param {string} gid The group id + */ + createGroup: function createGroup(gid) { + var _this4 = this; + + return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + if (!(gid.trim() === '')) { + _context2.next = 3; + break; + } + + vue__WEBPACK_IMPORTED_MODULE_12__["default"].nextTick(function () { + _this4.toggleAddGroupEntry(true); + }); + return _context2.abrupt("return"); + + case 3: + _context2.prev = 3; + _this4.loadingAddGroup = true; + _context2.next = 7; + return _this4.$store.dispatch('addGroup', gid.trim()); + + case 7: + _this4.toggleAddGroupEntry(false); + + _this4.$router.push({ + name: 'group', + params: { + selectedGroup: encodeURIComponent(gid.trim()) + } + }); + + _context2.next = 14; + break; + + case 11: + _context2.prev = 11; + _context2.t0 = _context2["catch"](3); + + _this4.toggleAddGroupEntry(true); + + case 14: + _context2.prev = 14; + _this4.loadingAddGroup = false; + return _context2.finish(14); + + case 17: + case "end": + return _context2.stop(); + } + } + }, _callee2, null, [[3, 11, 14, 17]]); + }))(); + }, + + /** + * Toggle the add group entry editing state + * @param {boolean} [state] set state instead of toggling + */ + toggleAddGroupEntry: function toggleAddGroupEntry(state) { + var _this5 = this; + + if (state === undefined) { + state = !this.$refs.addGroup.editing; + } + + this.$refs.addGroup.editing = state; // focus input + + vue__WEBPACK_IMPORTED_MODULE_12__["default"].nextTick(function () { + if (_this5.$refs.addGroup.$el) { + var input = _this5.$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: function formatGroupMenu(group) { + var 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& ***! + \*************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// Imports +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.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}\n", ""]); +// Exports +module.exports = exports; + + +/***/ }), + +/***/ "./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&id=ff154a08&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/UserRowSimple.vue?vue&type=style&index=0&id=ff154a08&scoped=true&lang=scss& ***! + \*******************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// Imports +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.i, ".cellText[data-v-ff154a08] {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.icon-more[data-v-ff154a08] {\n background-color: var(--color-main-background);\n background-image: var(--icon-more-000);\n border: 0;\n}\n.button[data-v-ff154a08]:focus {\n background-color: var(--color-background-dark);\n}\n", ""]); +// Exports +module.exports = exports; + + +/***/ }), + +/***/ "./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& ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// Imports +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.i, "#usergrouplist #addgroup[data-v-889b7562] .app-navigation-entry__utils {\n display: none;\n}\n", ""]); +// Exports +module.exports = exports; + + +/***/ }), + +/***/ "./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& ***! + \*************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// Imports +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.i, "\n.row[data-v-6cba3aca] .multiselect__single {\n\tz-index: auto !important;\n}\n", ""]); +// Exports +module.exports = exports; + + +/***/ }), + +/***/ "./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) + } + } + }, + [ + _c( + "form", + { + directives: [ + { + name: "show", + rawName: "v-show", + value: _vm.showConfig.showNewUserForm, + expression: "showConfig.showNewUserForm" + } + ], + staticClass: "row", + class: { sticky: _vm.scrolled && _vm.showConfig.showNewUserForm }, + attrs: { id: "new-user", disabled: _vm.loading.all }, + on: { + submit: function($event) { + $event.preventDefault() + return _vm.createUser($event) + } + } + }, + [ + _c("div", { + class: _vm.loading.all ? "icon-loading-small" : "icon-add" + }), + _vm._v(" "), + _c("div", { staticClass: "name" }, [ + _c("input", { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.newUser.id, + expression: "newUser.id" + } + ], + ref: "newusername", + 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("div", { staticClass: "displayName" }, [ + _c("input", { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.newUser.displayName, + expression: "newUser.displayName" + } + ], + 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("div", { staticClass: "password" }, [ + _c("input", { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.newUser.password, + expression: "newUser.password" + } + ], + ref: "newuserpassword", + 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("div", { staticClass: "mailAddress" }, [ + _c("input", { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.newUser.mailAddress, + expression: "newUser.mailAddress" + } + ], + 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" }, + [ + !_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 in 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" }, + [ + _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" }, + [ + _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" }, + [ + _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: "userActions" }, [ + _c("input", { + staticClass: "button primary icon-checkmark-white has-tooltip", + attrs: { + id: "newsubmit", + title: _vm.t("settings", "Add a new user"), + type: "submit", + value: "" + } + }), + _vm._v(" "), + _c( + "div", + { staticClass: "closeButton" }, + [ + _c( + "Actions", + [ + _c( + "ActionButton", + { + attrs: { icon: "icon-close" }, + on: { click: _vm.onClose } + }, + [ + _vm._v( + "\n\t\t\t\t\t\t" + + _vm._s(_vm.t("settings", "Close")) + + "\n\t\t\t\t\t" + ) + ] + ) + ], + 1 + ) + ], + 1 + ) + ]) + ] + ), + _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, key) { + return _c("user-row", { + key: key, + 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 in 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&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/UserRowSimple.vue?vue&type=template&id=ff154a08&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: "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: "button 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", + [ + _c("AppNavigationNew", { + attrs: { + "button-id": "new-user-button", + text: _vm.t("settings", "New user"), + "button-class": "icon-add" + }, + on: { click: _vm.toggleNewUserMenu } + }), + _vm._v(" "), + _c( + "ul", + { attrs: { id: "usergrouplist" } }, + [ + _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 + ) + }) + ], + 2 + ), + _vm._v(" "), + _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"))) + ]) + ]) + ]) + ], + 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 + + + +/***/ }), + +/***/ "./node_modules/vue-style-loader/index.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/vue-style-loader!./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& ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// style-loader: Adds some css to the DOM by adding a <style> tag + +// load the styles +var content = __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&"); +if(typeof content === 'string') content = [[module.i, content, '']]; +if(content.locals) module.exports = content.locals; +// add the styles to the DOM +var add = __webpack_require__(/*! ../../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ "./node_modules/vue-style-loader/lib/addStylesClient.js").default +var update = add("beab2b2c", content, false, {}); +// Hot Module Replacement +if(false) {} + +/***/ }), + +/***/ "./node_modules/vue-style-loader/index.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&id=ff154a08&scoped=true&lang=scss&": +/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-style-loader!./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&id=ff154a08&scoped=true&lang=scss& ***! + \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// style-loader: Adds some css to the DOM by adding a <style> tag + +// load the styles +var content = __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&id=ff154a08&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/UserRowSimple.vue?vue&type=style&index=0&id=ff154a08&scoped=true&lang=scss&"); +if(typeof content === 'string') content = [[module.i, content, '']]; +if(content.locals) module.exports = content.locals; +// add the styles to the DOM +var add = __webpack_require__(/*! ../../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ "./node_modules/vue-style-loader/lib/addStylesClient.js").default +var update = add("a92e00f8", content, false, {}); +// Hot Module Replacement +if(false) {} + +/***/ }), + +/***/ "./node_modules/vue-style-loader/index.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/vue-style-loader!./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& ***! + \*****************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// style-loader: Adds some css to the DOM by adding a <style> tag + +// load the styles +var content = __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&"); +if(typeof content === 'string') content = [[module.i, content, '']]; +if(content.locals) module.exports = content.locals; +// add the styles to the DOM +var add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ "./node_modules/vue-style-loader/lib/addStylesClient.js").default +var update = add("79fad0e8", content, false, {}); +// Hot Module Replacement +if(false) {} + +/***/ }), + +/***/ "./node_modules/vue-style-loader/index.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/vue-style-loader!./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& ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// style-loader: Adds some css to the DOM by adding a <style> tag + +// load the styles +var content = __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&"); +if(typeof content === 'string') content = [[module.i, content, '']]; +if(content.locals) module.exports = content.locals; +// add the styles to the DOM +var add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ "./node_modules/vue-style-loader/lib/addStylesClient.js").default +var update = add("d930abf6", content, false, {}); +// Hot Module Replacement +if(false) {} + +/***/ }) + +}]); +//# sourceMappingURL=vue-2.js.map?v=fa17dee2a970df950ae4
\ No newline at end of file |