pleroma/priv/static/adminfe/static/js/chunk-0d1a.944fa3f2.js.map
2022-11-22 23:53:01 +01:00

1 line
17 KiB
Plaintext

{"version":3,"sources":["webpack:///./src/views/login/index.vue?64cc","webpack:///./src/views/login/index.vue?312b","webpack:///./src/services/pleromaAuth.js","webpack:///./src/views/login/index.vue?534e","webpack:///./src/views/login/index.vue?95e4","webpack:///src/views/login/index.vue","webpack:///./src/views/login/index.vue"],"names":["__webpack_require__","authenticateWithPleromaFE","_ref","_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0___default","_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default","a","mark","_callee","store","pleromaFEState","token","wrap","_context","prev","next","localforage","getItem","sent","undefined","_","get","Error","dispatch","stop","_x","apply","this","arguments","views_loginvue_type_script_lang_js_","name","components","svg-icon","SvgIcon","data","loginForm","username","password","passwordType","loading","loadingPleromaFE","showDialog","redirect","pleromaFEToken","pleromaFEStateKey","watch","$route","handler","route","query","immediate","mounted","_this","asyncToGenerator_default","regenerator_default","abrupt","methods","showPwd","handleLogin","_this2","loginData","getLoginData","$store","then","$router","push","path","catch","handlePleromaFELogin","_this3","_callee2","_context2","t0","$message","error","lang","t","success","_this$loginForm$usern","split","_this$loginForm$usern2","slicedToArray_default","authHost","component","Object","componentNormalizer","_vm","_c","_self","staticClass","ref","attrs","model","auto-complete","label-position","_v","_s","$t","prop","placeholder","type","value","callback","$$v","$set","expression","nativeOn","keyup","$event","indexOf","_k","keyCode","key","on","click","icon-class","preventDefault","_e","__webpack_exports__"],"mappings":"sGAAAA,EAAA,2CCAAA,EAAA,mKCKaC,EAAyB,eAAAC,EAAAC,IAAAC,EAAAC,EAAAC,KAAG,SAAAC,EAAMC,GAAN,IAAAC,EAAAC,EAAA,OAAAN,EAAAC,EAAAM,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACVC,IAAYC,QAHjB,WAEe,UACjCP,EADiCG,EAAAK,UAIzBC,KAFRR,EAAQS,IAAEC,IAAIX,EAAgB,oBAFG,CAAAG,EAAAE,KAAA,cAK/B,IAAIO,MAAM,6BALqB,cAAAT,EAAAE,KAAA,EAQjCN,EAAMc,SAAS,oBAAsBZ,UARJ,wBAAAE,EAAAW,SAAAhB,MAAH,gBAAAiB,GAAA,OAAAtB,EAAAuB,MAAAC,KAAAC,YAAA,6CCLtC,iJCA0MC,GC2D1MC,aACAC,YAAAC,WAAAC,EAAA,GACAC,gBACA,OACAC,WACAC,YACAC,aAEAC,wBACAC,WACAC,oBACAC,cACAC,gBACAC,kBACAC,4BACAlC,oBAGAmC,OACAC,QACAC,oBACApB,KAAAe,SAAAM,EAAAC,OAAAD,EAAAC,MAAAP,UAEAQ,eAGAC,QA3BA,WA2BA,IAAAC,EAAAzB,KAAA,OAAA0B,IAAAC,EAAAhD,EAAAC,KAAA,SAAAC,IAAA,IAAAE,EAAA,OAAA4C,EAAAhD,EAAAM,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACAC,iCADA,UACAN,EADAG,EAAAK,KAEAkC,EAAA1C,sBAEAU,iCAJA,CAAAP,EAAAE,KAAA,eAAAF,EAAA0C,OAAA,iBAQAH,EAAAT,gBAAA,EARA,wBAAA9B,EAAAW,SAAAhB,KAAA6C,IAUAG,SACAC,QADA,WAEA,aAAA9B,KAAAW,aACAX,KAAAW,aAAA,GAEAX,KAAAW,aAAA,YAGAoB,YARA,WAQA,IAAAC,EAAAhC,KACAA,KAAAY,SAAA,EACA,IAAAqB,EAAAjC,KAAAkC,eACAlC,KAAAmC,OAAAvC,SAAA,kBAAAqC,GAAAG,KAAA,WACAJ,EAAApB,SAAA,EACAoB,EAAAK,QAAAC,MAAAC,oCACAC,MAAA,WACAR,EAAApB,SAAA,KAGA6B,qBAlBA,WAkBA,IAAAC,EAAA1C,KAAA,OAAA0B,IAAAC,EAAAhD,EAAAC,KAAA,SAAA+D,IAAA,OAAAhB,EAAAhD,EAAAM,KAAA,SAAA2D,GAAA,cAAAA,EAAAzD,KAAAyD,EAAAxD,MAAA,cACAsD,EAAA7B,kBAAA,EADA+B,EAAAzD,KAAA,EAAAyD,EAAAxD,KAAA,EAGAb,sBAHA,OAAAqE,EAAAxD,KAAA,gBAAAwD,EAAAzD,KAAA,EAAAyD,EAAAC,GAAAD,EAAA,SAKAF,EAAA7B,kBAAA,EACA6B,EAAAI,SAAAC,MAAAC,EAAA,EAAAC,EAAA,+BANA,QASAP,EAAA7B,kBAAA,EAEA6B,EAAAI,SAAAI,QAAAF,EAAA,EAAAC,EAAA,gCACAP,EAAAL,QAAAC,MAAAC,kCAZA,yBAAAK,EAAA/C,SAAA8C,EAAA,gBAAAjB,IAcAQ,aAhCA,WAiCA,IAAAiB,EAAAnD,KAAAQ,UAAAC,SAAA2C,MAAA,KAAAC,EAAAC,IAAAH,EAAA,GAAA1C,EAAA4C,EAAA,GAAAE,EAAAF,EAAA,GAEA,OACA5C,kBACA8C,yCACA7C,uEC5HA8C,EAAgBC,OAAAC,EAAA,EAAAD,CACdvD,EHVF,WAA+B,IAAAyD,EAAA3D,KAAA4D,EAAAD,EAAAE,MAAAD,GAA6B,OAAAA,EAAA,OAAiBE,YAAA,oBAA8BF,EAAA,WAAgBG,IAAA,YAAAD,YAAA,aAAAE,OAAgDC,MAAAN,EAAAnD,UAAA0D,gBAAA,KAAAC,iBAAA,UAAoEP,EAAA,OAAYE,YAAA,oBAA8BF,EAAA,MAAWE,YAAA,UAAoBH,EAAAS,GAAA,aAAAT,EAAAU,GAAAV,EAAAW,GAAA,gCAAAX,EAAAS,GAAA,KAAAR,EAAA,gBAAmGI,OAAOO,KAAA,cAAmBX,EAAA,QAAaE,YAAA,kBAA4BF,EAAA,KAAUE,YAAA,mBAA2BH,EAAAS,GAAA,KAAAR,EAAA,YAA+BI,OAAOQ,YAAAb,EAAAW,GAAA,kBAAAnE,KAAA,WAAAsE,KAAA,OAAAP,gBAAA,MAA4FD,OAAQS,MAAAf,EAAAnD,UAAA,SAAAmE,SAAA,SAAAC,GAAwDjB,EAAAkB,KAAAlB,EAAAnD,UAAA,WAAAoE,IAAyCE,WAAA,yBAAkC,GAAAnB,EAAAS,GAAA,KAAAR,EAAA,OAA4BE,YAAA,mBAA6BH,EAAAS,GAAAT,EAAAU,GAAAV,EAAAW,GAAA,0BAAAX,EAAAS,GAAA,KAAAR,EAAA,gBAAgFI,OAAOO,KAAA,cAAmBX,EAAA,QAAaE,YAAA,kBAA4BF,EAAA,KAAUE,YAAA,kBAA0BH,EAAAS,GAAA,KAAAR,EAAA,YAA+BI,OAAOS,KAAAd,EAAAhD,aAAA6D,YAAAb,EAAAW,GAAA,kBAAAnE,KAAA,WAAA+D,gBAAA,MAAsGa,UAAWC,MAAA,SAAAC,GAAyB,OAAAA,EAAAR,KAAAS,QAAA,QAAAvB,EAAAwB,GAAAF,EAAAG,QAAA,WAAAH,EAAAI,IAAA,cAAiG1B,EAAA5B,YAAAhC,MAAA,KAAAE,aAA+CgE,OAAQS,MAAAf,EAAAnD,UAAA,SAAAmE,SAAA,SAAAC,GAAwDjB,EAAAkB,KAAAlB,EAAAnD,UAAA,WAAAoE,IAAyCE,WAAA,wBAAkCnB,EAAAS,GAAA,KAAAR,EAAA,QAAyBE,YAAA,WAAAwB,IAA2BC,MAAA5B,EAAA7B,WAAqB8B,EAAA,YAAiBI,OAAOwB,aAAA,aAAA7B,EAAAhD,aAAA,qBAAmE,OAAAgD,EAAAS,GAAA,KAAAR,EAAA,aAAsCE,YAAA,eAAAE,OAAkCpD,QAAA+C,EAAA/C,QAAA6D,KAAA,WAAuCM,UAAWQ,MAAA,SAAAN,GAAiD,OAAxBA,EAAAQ,iBAAwB9B,EAAA5B,YAAAhC,MAAA,KAAAE,eAAgD0D,EAAAS,GAAA,WAAAT,EAAAU,GAAAV,EAAAW,GAAA,4BAAAX,EAAAS,GAAA,KAAAT,EAAA,eAAAC,EAAA,aAA+GE,YAAA,eAAAE,OAAkCpD,QAAA+C,EAAA9C,iBAAA4D,KAAA,WAAgDM,UAAWQ,MAAA,SAAAN,GAAiD,OAAxBA,EAAAQ,iBAAwB9B,EAAAlB,qBAAA1C,MAAA,KAAAE,eAAyD0D,EAAAS,GAAA,WAAAT,EAAAU,GAAAV,EAAAW,GAAA,wCAAAX,EAAA+B,MAAA,YGahoE,EACA,KACA,WACA,MAIeC,EAAA,QAAAnC","file":"static/js/chunk-0d1a.944fa3f2.js","sourcesContent":["export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--10-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=5aafa9c0&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--10-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=1&id=5aafa9c0&prod&rel=stylesheet%2Fscss&lang=scss&scoped=true&\"","import localforage from 'localforage'\nimport _ from 'lodash'\n\nconst pleromaFEStateKey = 'vuex-lz'\n\nexport const authenticateWithPleromaFE = async(store) => {\n const pleromaFEState = await localforage.getItem(pleromaFEStateKey)\n const token = _.get(pleromaFEState, 'oauth.userToken')\n\n if (token === undefined) {\n throw new Error('PleromaFE token not found')\n }\n\n await store.dispatch('LoginByPleromaFE', { token })\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"login-container\"},[_c('el-form',{ref:\"loginForm\",staticClass:\"login-form\",attrs:{\"model\":_vm.loginForm,\"auto-complete\":\"on\",\"label-position\":\"left\"}},[_c('div',{staticClass:\"title-container\"},[_c('h3',{staticClass:\"title\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('login.title'))+\"\\n \")])]),_vm._v(\" \"),_c('el-form-item',{attrs:{\"prop\":\"username\"}},[_c('span',{staticClass:\"svg-container\"},[_c('i',{staticClass:\"el-icon-user\"})]),_vm._v(\" \"),_c('el-input',{attrs:{\"placeholder\":_vm.$t('login.username'),\"name\":\"username\",\"type\":\"text\",\"auto-complete\":\"on\"},model:{value:(_vm.loginForm.username),callback:function ($$v) {_vm.$set(_vm.loginForm, \"username\", $$v)},expression:\"loginForm.username\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"omit-host-note\"},[_vm._v(_vm._s(_vm.$t('login.omitHostname')))]),_vm._v(\" \"),_c('el-form-item',{attrs:{\"prop\":\"password\"}},[_c('span',{staticClass:\"svg-container\"},[_c('i',{staticClass:\"el-icon-key\"})]),_vm._v(\" \"),_c('el-input',{attrs:{\"type\":_vm.passwordType,\"placeholder\":_vm.$t('login.password'),\"name\":\"password\",\"auto-complete\":\"on\"},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.handleLogin.apply(null, arguments)}},model:{value:(_vm.loginForm.password),callback:function ($$v) {_vm.$set(_vm.loginForm, \"password\", $$v)},expression:\"loginForm.password\"}}),_vm._v(\" \"),_c('span',{staticClass:\"show-pwd\",on:{\"click\":_vm.showPwd}},[_c('svg-icon',{attrs:{\"icon-class\":_vm.passwordType === 'password' ? 'eye' : 'eye-open'}})],1)],1),_vm._v(\" \"),_c('el-button',{staticClass:\"login-button\",attrs:{\"loading\":_vm.loading,\"type\":\"primary\"},nativeOn:{\"click\":function($event){$event.preventDefault();return _vm.handleLogin.apply(null, arguments)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('login.logIn'))+\"\\n \")]),_vm._v(\" \"),(_vm.pleromaFEToken)?_c('el-button',{staticClass:\"login-button\",attrs:{\"loading\":_vm.loadingPleromaFE,\"type\":\"primary\"},nativeOn:{\"click\":function($event){$event.preventDefault();return _vm.handlePleromaFELogin.apply(null, arguments)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('login.logInViaPleromaFE'))+\"\\n \")]):_vm._e()],1)],1)\n}\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=\"login-container\">\n <el-form ref=\"loginForm\" :model=\"loginForm\" class=\"login-form\" auto-complete=\"on\" label-position=\"left\">\n <div class=\"title-container\">\n <h3 class=\"title\">\n {{ $t('login.title') }}\n </h3>\n </div>\n\n <el-form-item prop=\"username\">\n <span class=\"svg-container\">\n <i class=\"el-icon-user\"/>\n </span>\n <el-input\n v-model=\"loginForm.username\"\n :placeholder=\"$t('login.username')\"\n name=\"username\"\n type=\"text\"\n auto-complete=\"on\"\n />\n </el-form-item>\n <div class=\"omit-host-note\">{{ $t('login.omitHostname') }}</div>\n\n <el-form-item prop=\"password\">\n <span class=\"svg-container\">\n <i class=\"el-icon-key\"/>\n </span>\n <el-input\n v-model=\"loginForm.password\"\n :type=\"passwordType\"\n :placeholder=\"$t('login.password')\"\n name=\"password\"\n auto-complete=\"on\"\n @keyup.enter.native=\"handleLogin\"\n />\n <span class=\"show-pwd\" @click=\"showPwd\">\n <svg-icon :icon-class=\"passwordType === 'password' ? 'eye' : 'eye-open'\" />\n </span>\n </el-form-item>\n\n <el-button :loading=\"loading\" class=\"login-button\" type=\"primary\" @click.native.prevent=\"handleLogin\">\n {{ $t('login.logIn') }}\n </el-button>\n <!-- Note: PleromaFE login feature relies on admin scope presence in PleromaFE token (older versions of PleromaFE don't support it) -->\n <el-button v-if=\"pleromaFEToken\" :loading=\"loadingPleromaFE\" class=\"login-button\" type=\"primary\" @click.native.prevent=\"handlePleromaFELogin\">\n {{ $t('login.logInViaPleromaFE') }}\n </el-button>\n </el-form>\n </div>\n</template>\n\n<script>\nimport SvgIcon from '@/components/element-ui/SvgIcon'\nimport localforage from 'localforage'\nimport _ from 'lodash'\nimport i18n from '@/lang'\nimport { authenticateWithPleromaFE } from '@/services/pleromaAuth'\n\nexport default {\n name: 'Login',\n components: { 'svg-icon': SvgIcon },\n data: function() {\n return {\n loginForm: {\n username: '',\n password: ''\n },\n passwordType: 'password',\n loading: false,\n loadingPleromaFE: false,\n showDialog: false,\n redirect: undefined,\n pleromaFEToken: false,\n pleromaFEStateKey: 'vuex-lz',\n pleromaFEState: {}\n }\n },\n watch: {\n $route: {\n handler: function(route) {\n this.redirect = route.query && route.query.redirect\n },\n immediate: true\n }\n },\n async mounted() {\n const pleromaFEState = await localforage.getItem(this.pleromaFEStateKey)\n this.pleromaFEState = pleromaFEState\n\n if (_.get(pleromaFEState, 'oauth.userToken') === undefined) {\n return\n }\n\n this.pleromaFEToken = true\n },\n methods: {\n showPwd() {\n if (this.passwordType === 'password') {\n this.passwordType = ''\n } else {\n this.passwordType = 'password'\n }\n },\n handleLogin() {\n this.loading = true\n const loginData = this.getLoginData()\n this.$store.dispatch('LoginByUsername', loginData).then(() => {\n this.loading = false\n this.$router.push({ path: this.redirect || '/users/index' })\n }).catch(() => {\n this.loading = false\n })\n },\n async handlePleromaFELogin() {\n this.loadingPleromaFE = true\n try {\n await authenticateWithPleromaFE(this.$store)\n } catch (error) {\n this.loadingPleromaFE = false\n this.$message.error(i18n.t('login.pleromaFELoginFailed'))\n }\n\n this.loadingPleromaFE = false\n\n this.$message.success(i18n.t('login.pleromaFELoginSucceed'))\n this.$router.push({ path: this.redirect || '/users/index' })\n },\n getLoginData() {\n const [username, authHost] = this.loginForm.username.split('@')\n\n return {\n username: username.trim(),\n authHost: authHost ? authHost.trim() : window.location.host,\n password: this.loginForm.password\n }\n }\n }\n}\n</script>\n\n<style rel=\"stylesheet/scss\" lang=\"scss\">\n $bg:#283443;\n $light_gray:#eee;\n $cursor: #fff;\n\n @supports (-webkit-mask: none) and (not (cater-color: $cursor)) {\n .login-container .el-input input{\n color: $cursor;\n &::first-line {\n color: $light_gray;\n }\n }\n }\n\n /* reset element-ui css */\n .login-container {\n .el-input {\n display: inline-block;\n height: 47px;\n width: 85%;\n input {\n background: transparent;\n border: 0px;\n -webkit-appearance: none;\n border-radius: 0px;\n padding: 12px 5px 12px 15px;\n color: $light_gray;\n height: 47px;\n caret-color: $cursor;\n &:-webkit-autofill {\n -webkit-box-shadow: 0 0 0px 1000px $bg inset !important;\n -webkit-text-fill-color: $cursor !important;\n }\n }\n }\n .el-form-item {\n border: 1px solid rgba(255, 255, 255, 0.1);\n background: rgba(0, 0, 0, 0.1);\n border-radius: 5px;\n color: #454545;\n }\n .login-button {\n width: 100%;\n margin: 0 0 10px 0;\n }\n .omit-host-note {\n color: #596f8c;\n font-size: 0.8em;\n font-style: italic;\n margin: -20px 0 15px 0;\n padding: 3px 0 0 15px;\n }\n }\n</style>\n\n<style rel=\"stylesheet/scss\" lang=\"scss\" scoped>\n$bg:#2d3a4b;\n$dark_gray:#889aa4;\n$light_gray:#eee;\n\n.login-container {\n min-height: 100%;\n width: 100%;\n background-color: $bg;\n overflow: hidden;\n .login-form {\n position: relative;\n width: 520px;\n max-width: 100%;\n padding: 160px 35px 0;\n margin: 0 auto;\n overflow: hidden;\n }\n .tips {\n font-size: 14px;\n color: #fff;\n margin-bottom: 10px;\n span {\n &:first-of-type {\n margin-right: 16px;\n }\n }\n }\n .svg-container {\n padding: 6px 5px 6px 15px;\n color: $dark_gray;\n vertical-align: middle;\n width: 30px;\n display: inline-block;\n }\n .title-container {\n position: relative;\n .title {\n font-size: 26px;\n color: $light_gray;\n margin: 0px auto 40px auto;\n text-align: center;\n font-weight: bold;\n }\n .set-language {\n color: #fff;\n position: absolute;\n top: 3px;\n font-size:18px;\n right: 0px;\n cursor: pointer;\n }\n }\n .show-pwd {\n position: absolute;\n right: 10px;\n top: 7px;\n font-size: 16px;\n color: $dark_gray;\n cursor: pointer;\n user-select: none;\n }\n .thirdparty-button {\n position: absolute;\n right: 0;\n bottom: 6px;\n }\n}\n</style>\n","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5aafa9c0&scoped=true&\"\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&id=5aafa9c0&prod&rel=stylesheet%2Fscss&lang=scss&\"\nimport style1 from \"./index.vue?vue&type=style&index=1&id=5aafa9c0&prod&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 \"5aafa9c0\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}