1 {"version":3,"sources":["webpack:///./src/views/users/components/UsersFilter.vue?13a6","webpack:///./src/views/users/components/ModerationDropdown.vue?e3f0","webpack:///./src/views/users/index.vue?1afe","webpack:///./node_modules/lodash.debounce/index.js","webpack:///./src/views/users/components/NewAccountDialog.vue?d353","webpack:///./src/views/users/index.vue?1668","webpack:///./src/views/users/components/UsersFilter.vue?6a82","webpack:///src/views/users/components/UsersFilter.vue","webpack:///./src/views/users/components/UsersFilter.vue","webpack:///./src/views/users/components/UsersFilter.vue?1a2c","webpack:///./src/views/users/components/NewAccountDialog.vue?9018","webpack:///src/views/users/components/NewAccountDialog.vue","webpack:///./src/views/users/components/NewAccountDialog.vue","webpack:///./src/views/users/components/NewAccountDialog.vue?c2fb","webpack:///./src/views/users/index.vue?0a29","webpack:///src/views/users/index.vue","webpack:///./src/views/users/index.vue","webpack:///./src/views/users/components/ResetPasswordDialog.vue?0b2b","webpack:///./src/views/users/components/ResetPasswordDialog.vue?31da","webpack:///src/views/users/components/ResetPasswordDialog.vue","webpack:///./src/views/users/components/ResetPasswordDialog.vue","webpack:///./src/views/users/components/ModerationDropdown.vue?4fe2","webpack:///./src/views/users/components/ModerationDropdown.vue?676e","webpack:///src/views/users/components/ModerationDropdown.vue","webpack:///./src/views/users/components/ModerationDropdown.vue"],"names":["_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_UsersFilter_vue_vue_type_style_index_0_id_993770c0_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__","__webpack_require__","n","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_ModerationDropdown_vue_vue_type_style_index_0_rel_stylesheet_2Fscss_lang_scss___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_rel_stylesheet_2Fscss_lang_scss___WEBPACK_IMPORTED_MODULE_0__","global","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","Object","freeSelf","self","root","Function","objectToString","prototype","toString","nativeMax","Math","max","nativeMin","min","now","Date","isObject","value","type","toNumber","isObjectLike","call","isSymbol","other","valueOf","replace","isBinary","test","slice","module","exports","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","undefined","apply","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","remainingWait","debounced","isInvoking","arguments","this","leadingEdge","cancel","clearTimeout","flush","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_NewAccountDialog_vue_vue_type_style_index_0_rel_stylesheet_2Fscss_lang_scss___WEBPACK_IMPORTED_MODULE_0__","components_UsersFiltervue_type_script_lang_js_","data","computed","isDesktop","$store","state","app","device","created","dispatch","$data","methods","removeOppositeFilters","_this","currentFilters","indexOfLocal","indexOf","indexOfExternal","indexOfActive","indexOfDeactivated","indexOfPending","indexOfUnconfirmed","indexOfPerson","indexOfService","indexOfApplication","actorTypeFilters","reduce","acc","index","includes","filter","toggleFilters","_this$removeOppositeF","_this$removeOppositeF2","slicedToArray_default","allFilters","filters","component","componentNormalizer","_vm","_h","$createElement","_c","_self","staticClass","attrs","clearable","placeholder","$t","multiple","on","change","model","callback","$$v","expression","label","_v","__file","UsersFilter","components_NewAccountDialogvue_type_script_lang_js_","name","props","dialogFormVisible","default","newUserForm","nickname","email","password","rules","validator","trigger","isVisible","get","$props","set","closeDialogWindow","getLabelWidth","$emit","resetForm","$nextTick","$refs","resetFields","submitForm","formName","_this2","validate","valid","$message","message","validateEmail","rule","Error","validEmail","validatePassword","validateUsername","validNickname","NewAccountDialog_component","visible","show-close","title","custom-class","update:visible","$event","open","ref","label-width","status-icon","prop","autofocus","$set","autocomplete","slot","click","_s","NewAccountDialog","views_usersvue_type_script_lang_js_","components","ModerationDropdown","MultipleUsersMenu","RebootButton","ResetPasswordDialog","truncate","text","length","substring","suffix","search","selectedUsers","createAccountDialogOpen","resetPasswordDialogOpen","loading","users","normalizedUsersCount","numeral_default","totalUsersCount","format","pageSize","currentPage","isMobile","fetchedUsers","usersCount","pendingView","width","handleDebounceSearchInput","lodash_debounce_default","query","page","mounted","destroyed","clearSelection","usersTable","isPrivileged","accepted_privileges","accepted_roles","user_privileges","getters","privileges","user_roles","roles","some","privilege","role","closeResetPasswordDialog","createNewAccount","accountData","asyncToGenerator_default","regenerator_default","a","mark","_callee","wrap","_context","prev","next","stop","getFirstLetter","str","charAt","toUpperCase","handlePageChange","searchQuery","handleRowClick","row","id","$router","push","params","handleSelectionChange","openResetPasswordDialog","propertyExists","account","property","regReason","reason","showDeactivatedButton","user","users_component","prefix-icon","input","_e","selected-users","apply-action","dialog-form-visible","closeWindow","directives","rawName","staticStyle","row-key","row-click","selection-change","reserve-selection","align","min-width","scopedSlots","_u","key","fn","scope","size","local","is_active","is_approved","content","effect","is_confirmed","registration_reason","popper-class","_f","fixed","open-reset-token-dialog","disabled","reset-password-dialog-open","close-reset-token-dialog","total","current-page","page-size","hide-on-single-page","layout","current-change","__webpack_exports__","components_ResetPasswordDialogvue_type_script_lang_js_","dialogOpen","passwordResetLink","passwordResetToken","link","token","close","href","target","components_ModerationDropdownvue_type_script_lang_js_","statusId","actorType","actor_type","_userId","_statusId","tagPolicyEnabled","mrfPolicies","disableMfa","enableTagPolicy","$confirm","confirmButtonText","cancelButtonText","then","catch","getPasswordResetToken","handleConfirmationResend","handleDeletion","handleAccountApproval","handleAccountRejection","_this3","handleEmailConfirmation","requirePasswordReset","nodeInfo","metadata","mailerEnabled","$alert","showAdminAction","_ref","toggleActivation","toggleTag","tag","toggleUserRight","right","hide-on-click","placement","nativeOn","stopPropagation","divided","admin","moderator","class","active-tag","tags"],"mappings":"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","file":"static/js/chunk-42d5.f83ab775.js","sourcesContent":["import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersFilter.vue?vue&type=style&index=0&id=993770c0&rel=stylesheet%2Fscss&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersFilter.vue?vue&type=style&index=0&id=993770c0&rel=stylesheet%2Fscss&lang=scss&scoped=true&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModerationDropdown.vue?vue&type=style&index=0&rel=stylesheet%2Fscss&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModerationDropdown.vue?vue&type=style&index=0&rel=stylesheet%2Fscss&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--11-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&rel=stylesheet%2Fscss&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--11-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&rel=stylesheet%2Fscss&lang=scss&\"","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewAccountDialog.vue?vue&type=style&index=0&rel=stylesheet%2Fscss&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewAccountDialog.vue?vue&type=style&index=0&rel=stylesheet%2Fscss&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"users-container\"},[_c('div',{staticClass:\"users-header-container\"},[_c('h1',[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.users'))+\"\\n \"),_c('span',{staticClass:\"user-count\"},[_vm._v(\"(\"+_vm._s(_vm.normalizedUsersCount)+\")\")])]),_vm._v(\" \"),_c('reboot-button')],1),_vm._v(\" \"),_c('div',{staticClass:\"filter-container\"},[_c('users-filter'),_vm._v(\" \"),_c('el-input',{staticClass:\"search\",attrs:{\"placeholder\":_vm.$t('users.search'),\"prefix-icon\":\"el-icon-search\"},on:{\"input\":_vm.handleDebounceSearchInput},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"actions-container\"},[(_vm.isPrivileged([], ['admin']))?_c('el-button',{staticClass:\"actions-button\",on:{\"click\":function($event){_vm.createAccountDialogOpen = true}}},[_c('span',{staticClass:\"create-account\"},[_c('i',{staticClass:\"el-icon-plus\"}),_vm._v(\"\\n \"+_vm._s(_vm.$t('users.createAccount'))+\"\\n \")])]):_vm._e(),_vm._v(\" \"),_c('multiple-users-menu',{attrs:{\"selected-users\":_vm.selectedUsers},on:{\"apply-action\":_vm.clearSelection}})],1),_vm._v(\" \"),_c('new-account-dialog',{attrs:{\"dialog-form-visible\":_vm.createAccountDialogOpen},on:{\"createNewAccount\":_vm.createNewAccount,\"closeWindow\":function($event){_vm.createAccountDialogOpen = false}}}),_vm._v(\" \"),_c('el-table',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],ref:\"usersTable\",staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.users,\"row-key\":\"id\"},on:{\"row-click\":function($event){return _vm.handleRowClick($event)},\"selection-change\":_vm.handleSelectionChange}},[(_vm.isDesktop)?_c('el-table-column',{attrs:{\"type\":\"selection\",\"reserve-selection\":\"\",\"width\":\"44\",\"align\":\"center\"}}):_vm._e(),_vm._v(\" \"),_c('el-table-column',{attrs:{\"min-width\":_vm.width,\"label\":_vm.$t('users.id'),\"prop\":\"id\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":_vm.$t('users.name'),\"prop\":\"nickname\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_vm._v(\"\\n \"+_vm._s(scope.row.nickname)+\"\\n \"),(_vm.isDesktop)?_c('el-tag',{attrs:{\"type\":\"info\",\"size\":\"mini\"}},[_c('span',[_vm._v(_vm._s(scope.row.local ? _vm.$t('users.local') : _vm.$t('users.external')))])]):_vm._e()]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"min-width\":_vm.width,\"label\":_vm.$t('users.status')},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.is_active && scope.row.is_approved)?_c('el-tag',{attrs:{\"type\":\"success\"}},[(_vm.isDesktop)?_c('span',[_vm._v(_vm._s(_vm.$t('users.active')))]):_c('i',{staticClass:\"el-icon-circle-check\"})]):_vm._e(),_vm._v(\" \"),(!scope.row.is_active && scope.row.is_approved)?_c('el-tag',{attrs:{\"type\":\"danger\"}},[(_vm.isDesktop)?_c('span',[_vm._v(_vm._s(_vm.$t('users.deactivated')))]):_c('i',{staticClass:\"el-icon-circle-close\"})]):_vm._e(),_vm._v(\" \"),_c('el-tooltip',{attrs:{\"content\":_vm.$t('users.unapprovedAccount'),\"effect\":\"dark\"}},[(!scope.row.is_approved)?_c('el-tag',{attrs:{\"type\":\"info\"}},[(_vm.isDesktop)?_c('span',[_vm._v(_vm._s(_vm.$t('users.unapproved')))]):_c('i',{staticClass:\"el-icon-warning-outline\"})]):_vm._e()],1),_vm._v(\" \"),(scope.row.roles.admin)?_c('el-tag',[_c('span',[_vm._v(_vm._s(_vm.isDesktop ? _vm.$t('users.admin') : _vm.getFirstLetter(_vm.$t('users.admin'))))])]):_vm._e(),_vm._v(\" \"),(scope.row.roles.moderator)?_c('el-tag',[_c('span',[_vm._v(_vm._s(_vm.isDesktop ? _vm.$t('users.moderator') : _vm.getFirstLetter(_vm.$t('users.moderator'))))])]):_vm._e(),_vm._v(\" \"),_c('el-tooltip',{attrs:{\"content\":_vm.$t('users.unconfirmedEmail'),\"effect\":\"dark\"}},[(!scope.row.is_confirmed)?_c('el-tag',{attrs:{\"type\":\"info\"}},[_vm._v(\"\\n \"+_vm._s(_vm.isDesktop ? _vm.$t('users.unconfirmed') : _vm.getFirstLetter(_vm.$t('users.unconfirmed')))+\"\\n \")]):_vm._e()],1)]}}])}),_vm._v(\" \"),(_vm.pendingView && _vm.isDesktop)?_c('el-table-column',{attrs:{\"label\":_vm.$t('users.registrationReason')},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(_vm.regReason(scope.row.registration_reason))?_c('el-tooltip',{attrs:{\"content\":scope.row.registration_reason,\"popper-class\":\"reason-tooltip\",\"effect\":\"dark\"}},[_c('span',[_vm._v(\"\\n \\\"\"+_vm._s(_vm._f(\"truncate\")(scope.row.registration_reason,100, '...'))+\"\\\"\\n \")])]):_vm._e()]}}],null,false,975858353)}):_vm._e(),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":_vm.$t('users.actions'),\"fixed\":\"right\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(_vm.propertyExists(scope.row, 'nickname'))?_c('moderation-dropdown',{attrs:{\"user\":scope.row,\"page\":'users'},on:{\"open-reset-token-dialog\":_vm.openResetPasswordDialog}}):_c('el-button',{attrs:{\"type\":\"text\",\"disabled\":\"\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.moderation'))+\"\\n \"),(_vm.isDesktop)?_c('i',{staticClass:\"el-icon-arrow-down el-icon--right\"}):_vm._e()])]}}])})],1),_vm._v(\" \"),_c('reset-password-dialog',{attrs:{\"reset-password-dialog-open\":_vm.resetPasswordDialogOpen},on:{\"close-reset-token-dialog\":_vm.closeResetPasswordDialog}}),_vm._v(\" \"),(!_vm.loading)?_c('div',{staticClass:\"pagination\"},[_c('el-pagination',{attrs:{\"total\":_vm.usersCount,\"current-page\":_vm.currentPage,\"page-size\":_vm.pageSize,\"hide-on-single-page\":\"\",\"layout\":\"prev, pager, next\"},on:{\"current-change\":_vm.handlePageChange}})],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersFilter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersFilter.vue?vue&type=script&lang=js&\"","<template>\n <el-select\n v-model=\"value\"\n :clearable=\"isDesktop\"\n :placeholder=\"$t('usersFilter.inputPlaceholder')\"\n multiple\n class=\"select-field\"\n @change=\"toggleFilters\">\n <el-option-group :label=\"$t('usersFilter.byAccountType')\">\n <el-option :label=\"$t('usersFilter.local')\" value=\"local\"/>\n <el-option :label=\"$t('usersFilter.external')\" value=\"external\"/>\n </el-option-group>\n <el-option-group :label=\"$t('usersFilter.byStatus')\">\n <el-option :label=\"$t('usersFilter.active')\" value=\"active\"/>\n <el-option :label=\"$t('usersFilter.deactivated')\" value=\"deactivated\"/>\n <el-option :label=\"$t('usersFilter.pending')\" value=\"need_approval\"/>\n <el-option :label=\"$t('usersFilter.unconfirmed')\" value=\"unconfirmed\"/>\n </el-option-group>\n <el-option-group :label=\"$t('usersFilter.byActorType')\">\n <el-option :label=\"$t('usersFilter.person')\" value=\"Person\"/>\n <el-option :label=\"$t('usersFilter.bot')\" value=\"Service\"/>\n <el-option :label=\"$t('usersFilter.application')\" value=\"Application\"/>\n </el-option-group>\n </el-select>\n</template>\n\n<script>\nexport default {\n data() {\n return {\n value: ['local', 'active']\n }\n },\n computed: {\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n }\n },\n created() {\n this.$store.dispatch('ToggleUsersFilter', this.$data.value)\n },\n methods: {\n removeOppositeFilters() {\n const currentFilters = []\n const indexOfLocal = this.$data.value.indexOf('local')\n const indexOfExternal = this.$data.value.indexOf('external')\n const indexOfActive = this.$data.value.indexOf('active')\n const indexOfDeactivated = this.$data.value.indexOf('deactivated')\n const indexOfPending = this.$data.value.indexOf('need_approval')\n const indexOfUnconfirmed = this.$data.value.indexOf('unconfirmed')\n const indexOfPerson = this.$data.value.indexOf('Person')\n const indexOfService = this.$data.value.indexOf('Service')\n const indexOfApplication = this.$data.value.indexOf('Application')\n\n Math.max(indexOfLocal, indexOfExternal) > -1\n ? currentFilters.push(this.$data.value[Math.max(indexOfLocal, indexOfExternal)])\n : currentFilters\n\n Math.max(indexOfActive, indexOfDeactivated, indexOfPending, indexOfUnconfirmed) > -1\n ? currentFilters.push(this.$data.value[Math.max(indexOfActive, indexOfDeactivated, indexOfPending, indexOfUnconfirmed)])\n : currentFilters\n\n const actorTypeFilters = [indexOfPerson, indexOfService, indexOfApplication].reduce((acc, index) => {\n if (index > -1) {\n currentFilters.push(this.$data.value[index])\n acc.push(this.$data.value[index])\n }\n return acc\n }, [])\n\n return [\n currentFilters,\n currentFilters.filter(filter => !actorTypeFilters.includes(filter)),\n actorTypeFilters\n ]\n },\n toggleFilters() {\n const [allFilters, filters, actorTypeFilters] = this.removeOppositeFilters()\n\n this.$data.value = allFilters\n this.$store.dispatch('ToggleUsersFilter', filters)\n this.$store.dispatch('ToggleActorTypeFilter', actorTypeFilters)\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss' scoped>\n.select-field {\n width: 350px;\n}\n\n@media only screen and (max-width:480px) {\n .select-field {\n width: 100%;\n margin-bottom: 5px;\n }\n}\n</style>\n","import { render, staticRenderFns } from \"./UsersFilter.vue?vue&type=template&id=993770c0&scoped=true&\"\nimport script from \"./UsersFilter.vue?vue&type=script&lang=js&\"\nexport * from \"./UsersFilter.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UsersFilter.vue?vue&type=style&index=0&id=993770c0&rel=stylesheet%2Fscss&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"993770c0\",\n null\n \n)\n\ncomponent.options.__file = \"UsersFilter.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-select',{staticClass:\"select-field\",attrs:{\"clearable\":_vm.isDesktop,\"placeholder\":_vm.$t('usersFilter.inputPlaceholder'),\"multiple\":\"\"},on:{\"change\":_vm.toggleFilters},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}},[_c('el-option-group',{attrs:{\"label\":_vm.$t('usersFilter.byAccountType')}},[_c('el-option',{attrs:{\"label\":_vm.$t('usersFilter.local'),\"value\":\"local\"}}),_vm._v(\" \"),_c('el-option',{attrs:{\"label\":_vm.$t('usersFilter.external'),\"value\":\"external\"}})],1),_vm._v(\" \"),_c('el-option-group',{attrs:{\"label\":_vm.$t('usersFilter.byStatus')}},[_c('el-option',{attrs:{\"label\":_vm.$t('usersFilter.active'),\"value\":\"active\"}}),_vm._v(\" \"),_c('el-option',{attrs:{\"label\":_vm.$t('usersFilter.deactivated'),\"value\":\"deactivated\"}}),_vm._v(\" \"),_c('el-option',{attrs:{\"label\":_vm.$t('usersFilter.pending'),\"value\":\"need_approval\"}}),_vm._v(\" \"),_c('el-option',{attrs:{\"label\":_vm.$t('usersFilter.unconfirmed'),\"value\":\"unconfirmed\"}})],1),_vm._v(\" \"),_c('el-option-group',{attrs:{\"label\":_vm.$t('usersFilter.byActorType')}},[_c('el-option',{attrs:{\"label\":_vm.$t('usersFilter.person'),\"value\":\"Person\"}}),_vm._v(\" \"),_c('el-option',{attrs:{\"label\":_vm.$t('usersFilter.bot'),\"value\":\"Service\"}}),_vm._v(\" \"),_c('el-option',{attrs:{\"label\":_vm.$t('usersFilter.application'),\"value\":\"Application\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewAccountDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewAccountDialog.vue?vue&type=script&lang=js&\"","<template>\n <el-dialog\n :visible.sync=\"isVisible\"\n :show-close=\"false\"\n :title=\"$t('users.createAccount')\"\n custom-class=\"create-user-dialog\"\n @open=\"resetForm\">\n <el-form ref=\"newUserForm\" :model=\"newUserForm\" :rules=\"rules\" :label-width=\"getLabelWidth\" status-icon>\n <el-form-item :label=\"$t('users.username')\" prop=\"nickname\" class=\"create-account-form-item\">\n <el-input v-model=\"newUserForm.nickname\" name=\"nickname\" autofocus/>\n </el-form-item>\n <el-form-item :label=\"$t('users.email')\" prop=\"email\" class=\"create-account-form-item\">\n <el-input v-model=\"newUserForm.email\" name=\"email\" type=\"email\"/>\n </el-form-item>\n <el-form-item :label=\"$t('users.password')\" prop=\"password\" class=\"create-account-form-item-without-margin\">\n <el-input v-model=\"newUserForm.password\" type=\"password\" name=\"password\" autocomplete=\"off\"/>\n </el-form-item>\n </el-form>\n <span slot=\"footer\">\n <el-button @click=\"closeDialogWindow\">{{ $t('users.cancel') }}</el-button>\n <el-button type=\"primary\" @click=\"submitForm('newUserForm')\">{{ $t('users.create') }}</el-button>\n </span>\n </el-dialog>\n</template>\n\n<script>\nexport default {\n name: 'NewAccountDialog',\n props: {\n dialogFormVisible: {\n type: Boolean,\n default: function() {\n return false\n }\n }\n },\n data() {\n return {\n newUserForm: {\n nickname: '',\n email: '',\n password: ''\n },\n rules: {\n nickname: [\n { validator: this.validateUsername, trigger: 'blur' }\n ],\n email: [\n { validator: this.validateEmail, trigger: 'blur' }\n ],\n password: [\n { validator: this.validatePassword, trigger: 'blur' }\n ]\n }\n }\n },\n computed: {\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n },\n isVisible: {\n get() {\n return this.$props.dialogFormVisible\n },\n set() {\n this.closeDialogWindow()\n }\n },\n getLabelWidth() {\n return this.isDesktop ? '120px' : '85px'\n }\n },\n methods: {\n closeDialogWindow() {\n this.$emit('closeWindow')\n },\n resetForm() {\n this.$nextTick(() => {\n this.$refs['newUserForm'].resetFields()\n })\n },\n submitForm(formName) {\n this.$refs[formName].validate((valid) => {\n if (valid) {\n this.$emit('createNewAccount', this.$data.newUserForm)\n } else {\n this.$message({\n type: 'error',\n message: this.$t('users.submitFormError')\n })\n return false\n }\n })\n },\n validateEmail(rule, value, callback) {\n if (value === '') {\n return callback(new Error(this.$t('users.emptyEmailError')))\n } else if (!this.validEmail(value)) {\n return callback(new Error(this.$t('users.invalidEmailError')))\n } else {\n return callback()\n }\n },\n validatePassword(rule, value, callback) {\n if (value === '') {\n return callback(new Error(this.$t('users.emptyPasswordError')))\n } else {\n return callback()\n }\n },\n validateUsername(rule, value, callback) {\n if (value === '') {\n return callback(new Error(this.$t('users.emptyNicknameError')))\n } else if (!this.validNickname(value)) {\n return callback(new Error(this.$t('users.invalidNicknameError')))\n } else {\n return callback()\n }\n },\n validEmail(email) {\n var re = /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/\n return re.test(email)\n },\n validNickname(nickname) {\n var re = /^[a-zA-Z\\d_-]+$/\n return re.test(nickname)\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n.el-dialog__body {\n padding: 20px 20px 20px 20px\n}\n.create-account-form-item {\n margin-bottom: 20px;\n}\n.create-account-form-item-without-margin {\n margin-bottom: 0px;\n}\n\n@media only screen and (max-width:480px) {\n .create-user-dialog {\n width: 85%\n }\n .create-account-form-item {\n margin-bottom: 20px;\n }\n .el-dialog__body {\n padding: 20px 20px 20px 20px\n }\n}\n</style>\n","import { render, staticRenderFns } from \"./NewAccountDialog.vue?vue&type=template&id=598523c6&\"\nimport script from \"./NewAccountDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./NewAccountDialog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./NewAccountDialog.vue?vue&type=style&index=0&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\ncomponent.options.__file = \"NewAccountDialog.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{attrs:{\"visible\":_vm.isVisible,\"show-close\":false,\"title\":_vm.$t('users.createAccount'),\"custom-class\":\"create-user-dialog\"},on:{\"update:visible\":function($event){_vm.isVisible=$event},\"open\":_vm.resetForm}},[_c('el-form',{ref:\"newUserForm\",attrs:{\"model\":_vm.newUserForm,\"rules\":_vm.rules,\"label-width\":_vm.getLabelWidth,\"status-icon\":\"\"}},[_c('el-form-item',{staticClass:\"create-account-form-item\",attrs:{\"label\":_vm.$t('users.username'),\"prop\":\"nickname\"}},[_c('el-input',{attrs:{\"name\":\"nickname\",\"autofocus\":\"\"},model:{value:(_vm.newUserForm.nickname),callback:function ($$v) {_vm.$set(_vm.newUserForm, \"nickname\", $$v)},expression:\"newUserForm.nickname\"}})],1),_vm._v(\" \"),_c('el-form-item',{staticClass:\"create-account-form-item\",attrs:{\"label\":_vm.$t('users.email'),\"prop\":\"email\"}},[_c('el-input',{attrs:{\"name\":\"email\",\"type\":\"email\"},model:{value:(_vm.newUserForm.email),callback:function ($$v) {_vm.$set(_vm.newUserForm, \"email\", $$v)},expression:\"newUserForm.email\"}})],1),_vm._v(\" \"),_c('el-form-item',{staticClass:\"create-account-form-item-without-margin\",attrs:{\"label\":_vm.$t('users.password'),\"prop\":\"password\"}},[_c('el-input',{attrs:{\"type\":\"password\",\"name\":\"password\",\"autocomplete\":\"off\"},model:{value:(_vm.newUserForm.password),callback:function ($$v) {_vm.$set(_vm.newUserForm, \"password\", $$v)},expression:\"newUserForm.password\"}})],1)],1),_vm._v(\" \"),_c('span',{attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.closeDialogWindow}},[_vm._v(_vm._s(_vm.$t('users.cancel')))]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _vm.submitForm('newUserForm')}}},[_vm._v(_vm._s(_vm.$t('users.create')))])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","<template>\n <div class=\"users-container\">\n <div class=\"users-header-container\">\n <h1>\n {{ $t('users.users') }}\n <span class=\"user-count\">({{ normalizedUsersCount }})</span>\n </h1>\n <reboot-button/>\n </div>\n <div class=\"filter-container\">\n <users-filter/>\n <el-input\n :placeholder=\"$t('users.search')\"\n v-model=\"search\"\n prefix-icon=\"el-icon-search\"\n class=\"search\"\n @input=\"handleDebounceSearchInput\"/>\n </div>\n <div class=\"actions-container\">\n <el-button v-if=\"isPrivileged([], ['admin'])\" class=\"actions-button\" @click=\"createAccountDialogOpen = true\">\n <span class=\"create-account\">\n <i class=\"el-icon-plus\"/>\n {{ $t('users.createAccount') }}\n </span>\n </el-button>\n <multiple-users-menu\n :selected-users=\"selectedUsers\"\n @apply-action=\"clearSelection\"/>\n </div>\n <new-account-dialog\n :dialog-form-visible=\"createAccountDialogOpen\"\n @createNewAccount=\"createNewAccount\"\n @closeWindow=\"createAccountDialogOpen = false\"/>\n <el-table\n v-loading=\"loading\"\n ref=\"usersTable\"\n :data=\"users\"\n row-key=\"id\"\n style=\"width: 100%\"\n @row-click=\"handleRowClick($event)\"\n @selection-change=\"handleSelectionChange\">\n <el-table-column\n v-if=\"isDesktop\"\n type=\"selection\"\n reserve-selection\n width=\"44\"\n align=\"center\"/>\n <el-table-column :min-width=\"width\" :label=\"$t('users.id')\" prop=\"id\" />\n <el-table-column :label=\"$t('users.name')\" prop=\"nickname\">\n <template slot-scope=\"scope\">\n {{ scope.row.nickname }}\n <el-tag v-if=\"isDesktop\" type=\"info\" size=\"mini\">\n <span>{{ scope.row.local ? $t('users.local') : $t('users.external') }}</span>\n </el-tag>\n </template>\n </el-table-column>\n <el-table-column :min-width=\"width\" :label=\"$t('users.status')\">\n <template slot-scope=\"scope\">\n <el-tag v-if=\"scope.row.is_active && scope.row.is_approved\" type=\"success\">\n <span v-if=\"isDesktop\">{{ $t('users.active') }}</span>\n <i v-else class=\"el-icon-circle-check\"/>\n </el-tag>\n <el-tag v-if=\"!scope.row.is_active && scope.row.is_approved\" type=\"danger\">\n <span v-if=\"isDesktop\">{{ $t('users.deactivated') }}</span>\n <i v-else class=\"el-icon-circle-close\"/>\n </el-tag>\n <el-tooltip :content=\"$t('users.unapprovedAccount')\" effect=\"dark\">\n <el-tag v-if=\"!scope.row.is_approved\" type=\"info\">\n <span v-if=\"isDesktop\">{{ $t('users.unapproved') }}</span>\n <i v-else class=\"el-icon-warning-outline\"/>\n </el-tag>\n </el-tooltip>\n <el-tag v-if=\"scope.row.roles.admin\">\n <span>{{ isDesktop ? $t('users.admin') : getFirstLetter($t('users.admin')) }}</span>\n </el-tag>\n <el-tag v-if=\"scope.row.roles.moderator\">\n <span>{{ isDesktop ? $t('users.moderator') : getFirstLetter($t('users.moderator')) }}</span>\n </el-tag>\n <el-tooltip :content=\"$t('users.unconfirmedEmail')\" effect=\"dark\">\n <el-tag v-if=\"!scope.row.is_confirmed\" type=\"info\">\n {{ isDesktop ? $t('users.unconfirmed') : getFirstLetter($t('users.unconfirmed')) }}\n </el-tag>\n </el-tooltip>\n </template>\n </el-table-column>\n <el-table-column v-if=\"pendingView && isDesktop\" :label=\"$t('users.registrationReason')\">\n <template slot-scope=\"scope\">\n <el-tooltip\n v-if=\"regReason(scope.row.registration_reason)\"\n :content=\"scope.row.registration_reason\"\n popper-class=\"reason-tooltip\"\n effect=\"dark\">\n <span>\n \"{{ scope.row.registration_reason | truncate(100, '...') }}\"\n </span>\n </el-tooltip>\n </template>\n </el-table-column>\n <el-table-column :label=\"$t('users.actions')\" fixed=\"right\">\n <template slot-scope=\"scope\">\n <moderation-dropdown\n v-if=\"propertyExists(scope.row, 'nickname')\"\n :user=\"scope.row\"\n :page=\"'users'\"\n @open-reset-token-dialog=\"openResetPasswordDialog\"/>\n <el-button v-else type=\"text\" disabled>\n {{ $t('users.moderation') }}\n <i v-if=\"isDesktop\" class=\"el-icon-arrow-down el-icon--right\"/>\n </el-button>\n </template>\n </el-table-column>\n </el-table>\n <reset-password-dialog\n :reset-password-dialog-open=\"resetPasswordDialogOpen\"\n @close-reset-token-dialog=\"closeResetPasswordDialog\"/>\n <div v-if=\"!loading\" class=\"pagination\">\n <el-pagination\n :total=\"usersCount\"\n :current-page=\"currentPage\"\n :page-size=\"pageSize\"\n hide-on-single-page\n layout=\"prev, pager, next\"\n @current-change=\"handlePageChange\"\n />\n </div>\n </div>\n</template>\n\n<script>\nimport debounce from 'lodash.debounce'\nimport numeral from 'numeral'\nimport UsersFilter from './components/UsersFilter'\nimport MultipleUsersMenu from './components/MultipleUsersMenu'\nimport NewAccountDialog from './components/NewAccountDialog'\nimport ModerationDropdown from './components/ModerationDropdown'\nimport RebootButton from '@/components/RebootButton'\nimport ResetPasswordDialog from './components/ResetPasswordDialog'\n\nexport default {\n name: 'Users',\n components: {\n NewAccountDialog,\n ModerationDropdown,\n MultipleUsersMenu,\n RebootButton,\n ResetPasswordDialog,\n UsersFilter\n },\n filters: {\n truncate: function(text, length, suffix) {\n return text.length < length ? text : text.substring(0, length) + suffix\n }\n },\n data() {\n return {\n search: '',\n selectedUsers: [],\n createAccountDialogOpen: false,\n resetPasswordDialogOpen: false\n }\n },\n computed: {\n loading() {\n return this.$store.state.users.loading\n },\n normalizedUsersCount() {\n return numeral(this.$store.state.users.totalUsersCount).format('0a')\n },\n pageSize() {\n return this.$store.state.users.pageSize\n },\n currentPage() {\n return this.$store.state.users.currentPage\n },\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n users() {\n return this.$store.state.users.fetchedUsers\n },\n usersCount() {\n return this.$store.state.users.totalUsersCount\n },\n pendingView() {\n return this.$store.state.users.filters.includes('need_approval')\n },\n width() {\n return this.isMobile ? 55 : false\n }\n },\n created() {\n this.handleDebounceSearchInput = debounce((query) => {\n this.$store.dispatch('SearchUsers', { query, page: 1 })\n }, 500)\n },\n mounted: function() {\n this.$store.dispatch('NeedReboot')\n this.$store.dispatch('FetchTagPolicySetting')\n this.$store.dispatch('FetchUsers', { page: 1 })\n },\n destroyed() {\n this.$store.dispatch('ClearUsersState')\n },\n methods: {\n clearSelection() {\n this.$refs.usersTable.clearSelection()\n },\n isPrivileged(accepted_privileges, accepted_roles) {\n const user_privileges = this.$store.getters.privileges\n const user_roles = this.$store.getters.roles\n return accepted_privileges.some(privilege => user_privileges.indexOf(privilege) >= 0) || accepted_roles.some(role => user_roles.indexOf(role) >= 0)\n },\n closeResetPasswordDialog() {\n this.resetPasswordDialogOpen = false\n this.$store.dispatch('RemovePasswordToken')\n },\n async createNewAccount(accountData) {\n await this.$store.dispatch('CreateNewAccount', accountData)\n this.createAccountDialogOpen = false\n },\n getFirstLetter(str) {\n return str.charAt(0).toUpperCase()\n },\n handlePageChange(page) {\n const searchQuery = this.$store.state.users.searchQuery\n if (searchQuery === '') {\n this.$store.dispatch('FetchUsers', { page })\n } else {\n this.$store.dispatch('SearchUsers', { query: searchQuery, page })\n }\n },\n handleRowClick(row) {\n if (row.id) {\n this.$router.push({ name: 'UsersShow', params: { id: row.id }})\n }\n },\n handleSelectionChange(value) {\n this.$data.selectedUsers = value\n },\n openResetPasswordDialog() {\n this.resetPasswordDialogOpen = true\n },\n propertyExists(account, property) {\n return account[property]\n },\n regReason(reason) {\n return reason && reason.length > 0\n },\n showDeactivatedButton(id) {\n return this.$store.state.user.id !== id\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n.actions-button {\n text-align: left;\n width: 350px;\n padding: 10px;\n}\n.actions-container {\n display: flex;\n height: 36px;\n justify-content: space-between;\n align-items: center;\n margin: 0 15px 10px 15px;\n .el-dropdown {\n margin-left: 10px;\n }\n}\n.active-tag {\n color: #409EFF;\n font-weight: 700;\n .el-icon-check {\n color: #409EFF;\n float: right;\n margin: 7px 0 0 15px;\n }\n}\n.active-tag.is-disabled {\n .el-icon-check {\n color: #bbb;\n }\n}\n.el-dropdown-link:hover {\n cursor: pointer;\n color: #409EFF;\n }\n.create-account > .el-icon-plus {\n margin-right: 5px;\n}\n.password-reset-token {\n margin: 0 0 14px 0;\n}\n.password-reset-token-dialog {\n width: 50%\n}\n.reason-tooltip {\n max-width: 450px;\n}\n.reset-password-link {\n text-decoration: underline;\n}\n.users-header-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.users-container {\n h1 {\n margin: 10px 0 0 15px;\n height: 40px;\n }\n .cell {\n word-break: break-word;\n }\n .el-table__row:hover {\n cursor: pointer;\n }\n .pagination {\n margin: 25px 0;\n text-align: center;\n }\n .reboot-button {\n margin: 0 15px 0 0;\n padding: 10px;\n width: 145px;\n }\n .search {\n width: 350px;\n float: right;\n margin-left: 10px;\n }\n .filter-container {\n display: flex;\n height: 36px;\n justify-content: space-between;\n align-items: center;\n margin: 15px\n }\n .user-count {\n color: gray;\n font-size: 28px;\n }\n}\n\n@media only screen and (max-width:480px) {\n .password-reset-token-dialog {\n width: 85%\n }\n .users-container {\n h1 {\n margin: 0;\n }\n .actions-button {\n width: 100%;\n }\n .actions-container {\n display: flex;\n flex-direction: column;\n margin: 0 10px 7px 10px\n }\n .el-icon-arrow-down {\n font-size: 12px;\n }\n .search {\n width: 100%;\n margin-left: 0;\n }\n .filter-container {\n display: flex;\n height: 82px;\n flex-direction: column;\n margin: 0 10px\n }\n .el-table__row {\n .el-tag {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 30px;\n margin-bottom: 4px;\n font-weight: bold;\n }\n }\n .reboot-button {\n margin: 0;\n }\n .users-header-container {\n margin: 7px 10px 12px 10px;\n }\n .user-count {\n color: gray;\n font-size: 22px;\n }\n }\n}\n\n@media only screen and (max-width:801px) and (min-width: 481px) {\n .actions-button {\n width: 49%;\n }\n .search {\n width: 49%;\n }\n}\n</style>\n","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1a53211b&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\ncomponent.options.__file = \"index.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],attrs:{\"visible\":_vm.dialogOpen,\"title\":_vm.$t('users.passwordResetTokenCreated'),\"custom-class\":\"password-reset-token-dialog\"},on:{\"close\":_vm.closeResetPasswordDialog}},[_c('div',[_c('p',{staticClass:\"password-reset-token\"},[_vm._v(_vm._s(_vm.$t('users.passwordResetTokenGenerated'))+\" \"+_vm._s(_vm.passwordResetToken))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('users.linkToResetPassword'))+\"\\n \"),_c('a',{staticClass:\"reset-password-link\",attrs:{\"href\":_vm.passwordResetLink,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.passwordResetLink))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPasswordDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPasswordDialog.vue?vue&type=script&lang=js&\"","<template>\n <el-dialog\n v-loading=\"loading\"\n :visible=\"dialogOpen\"\n :title=\"$t('users.passwordResetTokenCreated')\"\n custom-class=\"password-reset-token-dialog\"\n @close=\"closeResetPasswordDialog\">\n <div>\n <p class=\"password-reset-token\">{{ $t('users.passwordResetTokenGenerated') }} {{ passwordResetToken }}</p>\n <p>{{ $t('users.linkToResetPassword') }}\n <a :href=\"passwordResetLink\" target=\"_blank\" class=\"reset-password-link\">{{ passwordResetLink }}</a>\n </p>\n </div>\n </el-dialog>\n</template>\n\n<script>\nexport default {\n name: 'ResetPasswordDialog',\n props: {\n resetPasswordDialogOpen: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n dialogOpen() {\n return this.resetPasswordDialogOpen\n },\n loading() {\n return this.$store.state.users.loading\n },\n passwordResetLink() {\n return this.$store.state.users.passwordResetToken.link\n },\n passwordResetToken() {\n return this.$store.state.users.passwordResetToken.token\n }\n },\n methods: {\n closeResetPasswordDialog() {\n this.$emit('close-reset-token-dialog')\n }\n }\n}\n</script>\n\n","import { render, staticRenderFns } from \"./ResetPasswordDialog.vue?vue&type=template&id=e7d3eed4&\"\nimport script from \"./ResetPasswordDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./ResetPasswordDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\ncomponent.options.__file = \"ResetPasswordDialog.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isPrivileged(['users_manage_activation_state', 'users_delete', 'users_manage_tags', 'users_manage_credentials'], ['admin']))?_c('el-dropdown',{attrs:{\"hide-on-click\":false,\"size\":\"small\",\"trigger\":\"click\",\"placement\":\"top-start\"},nativeOn:{\"click\":function($event){$event.stopPropagation();}}},[_c('div',[(_vm.page === 'users')?_c('el-button',{staticClass:\"el-dropdown-link\",attrs:{\"type\":\"text\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.moderation'))+\"\\n \"),(_vm.isDesktop)?_c('i',{staticClass:\"el-icon-arrow-down el-icon--right\"}):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.page === 'userPage' || _vm.page === 'statusPage')?_c('el-button',{staticClass:\"moderate-user-button\"},[_c('span',{staticClass:\"moderate-user-button-container\"},[_c('span',[_c('i',{staticClass:\"el-icon-edit\"}),_vm._v(\"\\n \"+_vm._s(_vm.$t('users.moderateUser'))+\"\\n \")]),_vm._v(\" \"),_c('i',{staticClass:\"el-icon-arrow-down el-icon--right\"})])]):_vm._e()],1),_vm._v(\" \"),_c('el-dropdown-menu',{staticClass:\"moderation-dropdown-menu\",attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},[(_vm.isPrivileged([], ['admin']))?_c('el-dropdown-item',{staticClass:\"actor-type-dropdown\"},[_c('el-select',{staticClass:\"actor-type-select\",attrs:{\"placeholder\":_vm.$t('userProfile.actorType')},model:{value:(_vm.actorType),callback:function ($$v) {_vm.actorType=$$v},expression:\"actorType\"}},[_c('el-option',{attrs:{\"label\":_vm.$t('users.service'),\"value\":\"Service\"}}),_vm._v(\" \"),_c('el-option',{attrs:{\"label\":_vm.$t('users.person'),\"value\":\"Person\"}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.isPrivileged([], ['admin']) && _vm.showAdminAction(_vm.user))?_c('el-dropdown-item',{attrs:{\"divided\":\"\"},nativeOn:{\"click\":function($event){return _vm.toggleUserRight(_vm.user, 'admin')}}},[_vm._v(\"\\n \"+_vm._s(_vm.user.roles.admin ? _vm.$t('users.revokeAdmin') : _vm.$t('users.grantAdmin'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.isPrivileged([], ['admin']) && _vm.showAdminAction(_vm.user))?_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.toggleUserRight(_vm.user, 'moderator')}}},[_vm._v(\"\\n \"+_vm._s(_vm.user.roles.moderator ? _vm.$t('users.revokeModerator') : _vm.$t('users.grantModerator'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.isPrivileged(['users_manage_activation_state'], []) && _vm.showDeactivatedButton(_vm.user.id) && _vm.page !== 'statusPage')?_c('el-dropdown-item',{attrs:{\"divided\":_vm.showAdminAction(_vm.user)},nativeOn:{\"click\":function($event){return _vm.toggleActivation(_vm.user)}}},[_vm._v(\"\\n \"+_vm._s(!_vm.user.is_active ? _vm.$t('users.activateAccount') : _vm.$t('users.deactivateAccount'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.isPrivileged(['users_delete'], []) && _vm.showDeactivatedButton(_vm.user.id) && _vm.page !== 'statusPage')?_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.handleDeletion(_vm.user)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.deleteAccount'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.isPrivileged([], ['admin']) && _vm.user.local && !_vm.user.is_approved)?_c('el-dropdown-item',{attrs:{\"divided\":\"\"},nativeOn:{\"click\":function($event){return _vm.handleAccountApproval(_vm.user)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.approveAccount'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.isPrivileged([], ['admin']) && _vm.user.local && !_vm.user.is_approved)?_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.handleAccountRejection(_vm.user)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.rejectAccount'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.isPrivileged([], ['admin']) && _vm.user.local && !_vm.user.is_confirmed)?_c('el-dropdown-item',{attrs:{\"divided\":\"\"},nativeOn:{\"click\":function($event){return _vm.handleEmailConfirmation(_vm.user)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.confirmAccount'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.isPrivileged([], ['admin']) && _vm.user.local && !_vm.user.is_confirmed)?_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.handleConfirmationResend(_vm.user)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.resendConfirmation'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.isPrivileged(['users_manage_tags'], []) && _vm.tagPolicyEnabled)?_c('el-dropdown-item',{class:{ 'active-tag': _vm.user.tags.includes('mrf_tag:media-force-nsfw') },attrs:{\"divided\":_vm.showAdminAction(_vm.user)},nativeOn:{\"click\":function($event){return _vm.toggleTag(_vm.user, 'mrf_tag:media-force-nsfw')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.forceNsfw'))+\"\\n \"),(_vm.user.tags.includes('mrf_tag:media-force-nsfw'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.isPrivileged(['users_manage_tags'], []) && _vm.tagPolicyEnabled)?_c('el-dropdown-item',{class:{ 'active-tag': _vm.user.tags.includes('mrf_tag:media-strip') },nativeOn:{\"click\":function($event){return _vm.toggleTag(_vm.user, 'mrf_tag:media-strip')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.stripMedia'))+\"\\n \"),(_vm.user.tags.includes('mrf_tag:media-strip'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.isPrivileged(['users_manage_tags'], []) && _vm.tagPolicyEnabled)?_c('el-dropdown-item',{class:{ 'active-tag': _vm.user.tags.includes('mrf_tag:force-unlisted') },nativeOn:{\"click\":function($event){return _vm.toggleTag(_vm.user, 'mrf_tag:force-unlisted')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.forceUnlisted'))+\"\\n \"),(_vm.user.tags.includes('mrf_tag:force-unlisted'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.isPrivileged(['users_manage_tags'], []) && _vm.tagPolicyEnabled)?_c('el-dropdown-item',{class:{ 'active-tag': _vm.user.tags.includes('mrf_tag:sandbox') },nativeOn:{\"click\":function($event){return _vm.toggleTag(_vm.user, 'mrf_tag:sandbox')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.sandbox'))+\"\\n \"),(_vm.user.tags.includes('mrf_tag:sandbox'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.isPrivileged(['users_manage_tags'], []) && _vm.user.local && _vm.tagPolicyEnabled)?_c('el-dropdown-item',{class:{ 'active-tag': _vm.user.tags.includes('mrf_tag:disable-remote-subscription') },nativeOn:{\"click\":function($event){return _vm.toggleTag(_vm.user, 'mrf_tag:disable-remote-subscription')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.disableRemoteSubscription'))+\"\\n \"),(_vm.user.tags.includes('mrf_tag:disable-remote-subscription'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.isPrivileged(['users_manage_tags'], []) && _vm.user.local && _vm.tagPolicyEnabled)?_c('el-dropdown-item',{class:{ 'active-tag': _vm.user.tags.includes('mrf_tag:disable-any-subscription') },nativeOn:{\"click\":function($event){return _vm.toggleTag(_vm.user, 'mrf_tag:disable-any-subscription')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.disableAnySubscription'))+\"\\n \"),(_vm.user.tags.includes('mrf_tag:disable-any-subscription'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.isPrivileged(['users_manage_tags'], []) && _vm.isPrivileged([], ['admin']) && !_vm.tagPolicyEnabled)?_c('el-dropdown-item',{staticClass:\"no-hover\",attrs:{\"divided\":\"\"},nativeOn:{\"click\":function($event){return _vm.enableTagPolicy.apply(null, arguments)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.enableTagPolicy'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.isPrivileged(['users_manage_credentials'], []) && _vm.user.local)?_c('el-dropdown-item',{attrs:{\"divided\":\"\"},nativeOn:{\"click\":function($event){return _vm.getPasswordResetToken(_vm.user.nickname)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.getPasswordResetToken'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.isPrivileged([], ['admin']) && _vm.user.local)?_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.requirePasswordReset(_vm.user)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.requirePasswordReset'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.isPrivileged([], ['admin']) && _vm.user.local)?_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.disableMfa(_vm.user.nickname)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.disableMfa'))+\"\\n \")]):_vm._e()],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModerationDropdown.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModerationDropdown.vue?vue&type=script&lang=js&\"","<template>\n <el-dropdown v-if=\"isPrivileged(['users_manage_activation_state', 'users_delete', 'users_manage_tags', 'users_manage_credentials'], ['admin'])\" :hide-on-click=\"false\" size=\"small\" trigger=\"click\" placement=\"top-start\" @click.native.stop>\n <div>\n <el-button v-if=\"page === 'users'\" type=\"text\" class=\"el-dropdown-link\">\n {{ $t('users.moderation') }}\n <i v-if=\"isDesktop\" class=\"el-icon-arrow-down el-icon--right\"/>\n </el-button>\n <el-button v-if=\"page === 'userPage' || page === 'statusPage'\" class=\"moderate-user-button\">\n <span class=\"moderate-user-button-container\">\n <span>\n <i class=\"el-icon-edit\" />\n {{ $t('users.moderateUser') }}\n </span>\n <i class=\"el-icon-arrow-down el-icon--right\"/>\n </span>\n </el-button>\n </div>\n <el-dropdown-menu slot=\"dropdown\" class=\"moderation-dropdown-menu\">\n <el-dropdown-item\n v-if=\"isPrivileged([], ['admin'])\"\n class=\"actor-type-dropdown\">\n <el-select v-model=\"actorType\" :placeholder=\"$t('userProfile.actorType')\" class=\"actor-type-select\">\n <el-option :label=\"$t('users.service')\" value=\"Service\"/>\n <el-option :label=\"$t('users.person')\" value=\"Person\"/>\n </el-select>\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"isPrivileged([], ['admin']) && showAdminAction(user)\"\n divided\n @click.native=\"toggleUserRight(user, 'admin')\">\n {{ user.roles.admin ? $t('users.revokeAdmin') : $t('users.grantAdmin') }}\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"isPrivileged([], ['admin']) && showAdminAction(user)\"\n @click.native=\"toggleUserRight(user, 'moderator')\">\n {{ user.roles.moderator ? $t('users.revokeModerator') : $t('users.grantModerator') }}\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"isPrivileged(['users_manage_activation_state'], []) && showDeactivatedButton(user.id) && page !== 'statusPage'\"\n :divided=\"showAdminAction(user)\"\n @click.native=\"toggleActivation(user)\">\n {{ !user.is_active ? $t('users.activateAccount') : $t('users.deactivateAccount') }}\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"isPrivileged(['users_delete'], []) && showDeactivatedButton(user.id) && page !== 'statusPage'\"\n @click.native=\"handleDeletion(user)\">\n {{ $t('users.deleteAccount') }}\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"isPrivileged([], ['admin']) && user.local && !user.is_approved\"\n divided\n @click.native=\"handleAccountApproval(user)\">\n {{ $t('users.approveAccount') }}\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"isPrivileged([], ['admin']) && user.local && !user.is_approved\"\n @click.native=\"handleAccountRejection(user)\">\n {{ $t('users.rejectAccount') }}\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"isPrivileged([], ['admin']) && user.local && !user.is_confirmed\"\n divided\n @click.native=\"handleEmailConfirmation(user)\">\n {{ $t('users.confirmAccount') }}\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"isPrivileged([], ['admin']) && user.local && !user.is_confirmed\"\n @click.native=\"handleConfirmationResend(user)\">\n {{ $t('users.resendConfirmation') }}\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"isPrivileged(['users_manage_tags'], []) && tagPolicyEnabled\"\n :divided=\"showAdminAction(user)\"\n :class=\"{ 'active-tag': user.tags.includes('mrf_tag:media-force-nsfw') }\"\n @click.native=\"toggleTag(user, 'mrf_tag:media-force-nsfw')\">\n {{ $t('users.forceNsfw') }}\n <i v-if=\"user.tags.includes('mrf_tag:media-force-nsfw')\" class=\"el-icon-check\"/>\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"isPrivileged(['users_manage_tags'], []) && tagPolicyEnabled\"\n :class=\"{ 'active-tag': user.tags.includes('mrf_tag:media-strip') }\"\n @click.native=\"toggleTag(user, 'mrf_tag:media-strip')\">\n {{ $t('users.stripMedia') }}\n <i v-if=\"user.tags.includes('mrf_tag:media-strip')\" class=\"el-icon-check\"/>\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"isPrivileged(['users_manage_tags'], []) && tagPolicyEnabled\"\n :class=\"{ 'active-tag': user.tags.includes('mrf_tag:force-unlisted') }\"\n @click.native=\"toggleTag(user, 'mrf_tag:force-unlisted')\">\n {{ $t('users.forceUnlisted') }}\n <i v-if=\"user.tags.includes('mrf_tag:force-unlisted')\" class=\"el-icon-check\"/>\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"isPrivileged(['users_manage_tags'], []) && tagPolicyEnabled\"\n :class=\"{ 'active-tag': user.tags.includes('mrf_tag:sandbox') }\"\n @click.native=\"toggleTag(user, 'mrf_tag:sandbox')\">\n {{ $t('users.sandbox') }}\n <i v-if=\"user.tags.includes('mrf_tag:sandbox')\" class=\"el-icon-check\"/>\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"isPrivileged(['users_manage_tags'], []) && user.local && tagPolicyEnabled\"\n :class=\"{ 'active-tag': user.tags.includes('mrf_tag:disable-remote-subscription') }\"\n @click.native=\"toggleTag(user, 'mrf_tag:disable-remote-subscription')\">\n {{ $t('users.disableRemoteSubscription') }}\n <i v-if=\"user.tags.includes('mrf_tag:disable-remote-subscription')\" class=\"el-icon-check\"/>\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"isPrivileged(['users_manage_tags'], []) && user.local && tagPolicyEnabled\"\n :class=\"{ 'active-tag': user.tags.includes('mrf_tag:disable-any-subscription') }\"\n @click.native=\"toggleTag(user, 'mrf_tag:disable-any-subscription')\">\n {{ $t('users.disableAnySubscription') }}\n <i v-if=\"user.tags.includes('mrf_tag:disable-any-subscription')\" class=\"el-icon-check\"/>\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"isPrivileged(['users_manage_tags'], []) && isPrivileged([], ['admin']) && !tagPolicyEnabled\"\n divided\n class=\"no-hover\"\n @click.native=\"enableTagPolicy\">\n {{ $t('users.enableTagPolicy') }}\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"isPrivileged(['users_manage_credentials'], []) && user.local\"\n divided\n @click.native=\"getPasswordResetToken(user.nickname)\">\n {{ $t('users.getPasswordResetToken') }}\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"isPrivileged([], ['admin']) && user.local\"\n @click.native=\"requirePasswordReset(user)\">\n {{ $t('users.requirePasswordReset') }}\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"isPrivileged([], ['admin']) && user.local\"\n @click.native=\"disableMfa(user.nickname)\">\n {{ $t('users.disableMfa') }}\n </el-dropdown-item>\n </el-dropdown-menu>\n </el-dropdown>\n</template>\n\n<script>\nexport default {\n name: 'ModerationDropdown',\n props: {\n user: {\n type: Object,\n default: function() {\n return {}\n }\n },\n page: {\n type: String,\n default: 'users'\n },\n statusId: {\n type: String,\n default: ''\n }\n },\n computed: {\n actorType: {\n get() {\n return this.user.actor_type\n },\n set(type) {\n this.$store.dispatch('UpdateActorType', {\n user: this.user,\n type,\n _userId: this.user.id,\n _statusId: this.statusId\n })\n }\n },\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n },\n tagPolicyEnabled() {\n return this.$store.state.users.mrfPolicies.includes('Pleroma.Web.ActivityPub.MRF.TagPolicy')\n }\n },\n methods: {\n disableMfa(nickname) {\n this.$store.dispatch('DisableMfa', nickname)\n },\n isPrivileged(accepted_privileges, accepted_roles) {\n const user_privileges = this.$store.getters.privileges\n const user_roles = this.$store.getters.roles\n return accepted_privileges.some(privilege => user_privileges.indexOf(privilege) >= 0) || accepted_roles.some(role => user_roles.indexOf(role) >= 0)\n },\n enableTagPolicy() {\n this.$confirm(\n this.$t('users.confirmEnablingTagPolicy'),\n {\n confirmButtonText: 'Yes',\n cancelButtonText: 'Cancel',\n type: 'warning'\n }).then(() => {\n this.$message({\n type: 'success',\n message: this.$t('users.enableTagPolicySuccessMessage')\n })\n this.$store.dispatch('EnableTagPolicy')\n }).catch(() => {\n this.$message({\n type: 'info',\n message: 'Canceled'\n })\n })\n },\n getPasswordResetToken(nickname) {\n this.$emit('open-reset-token-dialog')\n this.$store.dispatch('GetPasswordResetToken', nickname)\n },\n handleConfirmationResend(user) {\n this.$store.dispatch('ResendConfirmationEmail', [user])\n },\n handleDeletion(user) {\n this.$confirm(\n this.$t('users.deleteUserConfirmation'),\n {\n confirmButtonText: 'Delete',\n cancelButtonText: 'Cancel',\n type: 'warning'\n }).then(() => {\n this.$store.dispatch('DeleteUsers', { users: [user], _userId: user.id })\n }).catch(() => {\n this.$message({\n type: 'info',\n message: 'Delete canceled'\n })\n })\n },\n handleAccountApproval(user) {\n this.$store.dispatch('ApproveUsersAccount', { users: [user], _userId: user.id, _statusId: this.statusId })\n },\n handleAccountRejection(user) {\n this.$confirm(\n this.$t('users.rejectAccountConfirmation'),\n {\n confirmButtonText: 'Reject',\n cancelButtonText: 'Cancel',\n type: 'warning'\n }).then(() => {\n this.$store.dispatch('DeleteUsers', { users: [user], _userId: user.id })\n }).catch(() => {\n this.$message({\n type: 'info',\n message: 'Reject canceled'\n })\n })\n },\n handleEmailConfirmation(user) {\n this.$store.dispatch('ConfirmUsersEmail', { users: [user], _userId: user.id, _statusId: this.statusId })\n },\n requirePasswordReset(user) {\n const mailerEnabled = this.$store.state.user.nodeInfo.metadata.mailerEnabled\n if (!mailerEnabled) {\n this.$alert(this.$t('users.mailerMustBeEnabled'), 'Error', { type: 'error' })\n return\n }\n this.$store.dispatch('RequirePasswordReset', [user])\n },\n showAdminAction({ local, id }) {\n return local && this.showDeactivatedButton(id)\n },\n showDeactivatedButton(id) {\n return this.$store.state.user.id !== id\n },\n toggleActivation(user) {\n !user.is_active\n ? this.$store.dispatch('ActivateUsers', { users: [user], _userId: user.id })\n : this.$store.dispatch('DeactivateUsers', { users: [user], _userId: user.id })\n },\n toggleTag(user, tag) {\n user.tags.includes(tag)\n ? this.$store.dispatch('RemoveTag', { users: [user], tag, _userId: user.id, _statusId: this.statusId })\n : this.$store.dispatch('AddTag', { users: [user], tag, _userId: user.id, _statusId: this.statusId })\n },\n toggleUserRight(user, right) {\n user.roles[right]\n ? this.$store.dispatch('DeleteRight', { users: [user], right, _userId: user.id, _statusId: this.statusId })\n : this.$store.dispatch('AddRight', { users: [user], right, _userId: user.id, _statusId: this.statusId })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n .el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided.actor-type-dropdown:before {\n margin: 0 0;\n height: 0;\n }\n .el-dropdown-menu--small .actor-type-dropdown {\n padding: 0;\n }\n .actor-type-select {\n width: 100%;\n input {\n border-color: transparent;\n color: #606266;\n }\n .el-input__inner:hover {\n border-color: transparent;\n background-color: #ecf5ff;\n }\n .el-input.is-focus {\n border-color: transparent;\n }\n .el-input__suffix-inner {\n pointer-events: none;\n }\n .el-select .el-input__inner:focus {\n border-color: transparent;\n }\n .el-input.is-active .el-input__inner, .el-input__inner:focus {\n border-color: transparent;\n }\n }\n .actor-type-select .el-input.is-focus .el-input__inner {\n border-color: transparent;\n }\n .moderate-user-button {\n text-align: left;\n width: 350px;\n padding: 10px;\n }\n .moderate-user-button-container {\n display: flex;\n justify-content: space-between;\n }\n .moderation-dropdown-menu {\n width: 350px;\n }\n @media only screen and (max-width:480px) {\n .moderate-user-button {\n width: 100%\n }\n .moderation-dropdown-menu {\n width: auto;\n }\n }\n</style>\n","import { render, staticRenderFns } from \"./ModerationDropdown.vue?vue&type=template&id=59ad0208&\"\nimport script from \"./ModerationDropdown.vue?vue&type=script&lang=js&\"\nexport * from \"./ModerationDropdown.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ModerationDropdown.vue?vue&type=style&index=0&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\ncomponent.options.__file = \"ModerationDropdown.vue\"\nexport default component.exports"],"sourceRoot":""}