openc3-tool-base 5.0.7 → 5.0.8

Sign up to get free protection for your applications and to get access to all the features.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openc3-tool-base
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.7
4
+ version: 5.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Melton
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-08-05 00:00:00.000000000 Z
12
+ date: 2022-08-13 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: " This plugin adds the OpenC3 base user interface tool\n"
15
15
  email:
@@ -23,9 +23,9 @@ files:
23
23
  - README.md
24
24
  - Rakefile
25
25
  - plugin.txt
26
+ - tools/base/543.openc3-tool-base.js
27
+ - tools/base/543.openc3-tool-base.js.map
26
28
  - tools/base/772bd60446e0b68b2dcb.png
27
- - tools/base/889.openc3-tool-base.js
28
- - tools/base/889.openc3-tool-base.js.map
29
29
  - tools/base/be1eae38c4af82057c4d.png
30
30
  - tools/base/ccbf309d19c2c9fc40f7.png
31
31
  - tools/base/css/materialdesignicons-6.1.95.min.css
@@ -95,7 +95,6 @@ files:
95
95
  - tools/base/js/amd.min.js
96
96
  - tools/base/js/amd.min.js.map
97
97
  - tools/base/js/auth.js
98
- - tools/base/js/authConstants.js
99
98
  - tools/base/js/import-map-overrides-2.4.1.js
100
99
  - tools/base/js/import-map-overrides.js.map
101
100
  - tools/base/js/named-register.min.js
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunktool_base=self.webpackChunktool_base||[]).push([[889],{4889:function(n,e,t){t.r(e),t.d(e,{default:function(){return A}});var s=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("v-card",[t("v-card-title",[n._v(" Login ")]),n._v(" "),t("v-card-subtitle",[n._v("\n "+n._s(n.isSet?"Enter the":"Create a")+"\n password to begin using OpenC3\n ")]),n._v(" "),t("v-card-text",[t("v-form",[n.isSet&&n.reset?t("v-text-field",{attrs:{type:"password",label:"Old Password"},model:{value:n.oldPassword,callback:function(e){n.oldPassword=e},expression:"oldPassword"}}):n._e(),n._v(" "),t("v-text-field",{attrs:{type:"password",label:(!n.isSet||n.reset?"New ":"")+"Password","data-test":"new-password"},model:{value:n.password,callback:function(e){n.password=e},expression:"password"}}),n._v(" "),n.reset?t("v-text-field",{attrs:{rules:[n.rules.matchPassword],type:"password",label:"Confirm Password","data-test":"confirm-password"},model:{value:n.confirmPassword,callback:function(e){n.confirmPassword=e},expression:"confirmPassword"}}):n._e(),n._v(" "),n.reset?t("v-btn",{attrs:{type:"submit",large:"",color:n.isSet?"warn":"success",disabled:!n.formValid,"data-test":"set-password"},on:{click:function(e){return e.preventDefault(),n.setPassword.apply(null,arguments)}}},[n._v("\n Set\n ")]):t("v-container",[t("v-row",[t("v-btn",{attrs:{type:"submit",large:"",color:"success",disabled:!n.formValid},on:{click:function(e){return e.preventDefault(),n.verifyPassword.apply(null,arguments)}}},[n._v("\n Login\n ")]),n._v(" "),t("v-spacer"),n._v(" "),t("v-btn",{attrs:{text:"",small:""},on:{click:n.showReset}},[n._v(" Change Password ")])],1)],1)],1)],1),n._v(" "),t("v-alert",{attrs:{type:n.alertType,dismissible:""},model:{value:n.showAlert,callback:function(e){n.showAlert=e},expression:"showAlert"}},[n._v("\n "+n._s(n.alert)+"\n ")])],1)};s._withStripped=!0;var o=t(4942),l=t(9554);function i(){var n="/openc3/plugins/openc3-tool-base/src/components/Login.vue",e=new Function("return this")(),t="__coverage__",s=e[t]||(e[t]={});s[n]&&"844878d12f93a6fc7f8693a102ad4bb7d249fac7"===s[n].hash||(s[n]={path:"/openc3/plugins/openc3-tool-base/src/components/Login.vue",statementMap:{0:{start:{line:88,column:4},end:{line:97,column:5}},1:{start:{line:101,column:6},end:{line:104,column:7}},2:{start:{line:107,column:6},end:{line:110,column:7}},3:{start:{line:109,column:10},end:{line:109,column:74}},4:{start:{line:113,column:6},end:{line:125,column:7}},5:{start:{line:114,column:8},end:{line:122,column:9}},6:{start:{line:115,column:10},end:{line:115,column:74}},7:{start:{line:117,column:10},end:{line:121,column:11}},8:{start:{line:124,column:8},end:{line:124,column:30}},9:{start:{line:129,column:4},end:{line:134,column:6}},10:{start:{line:130,column:6},end:{line:130,column:41}},11:{start:{line:131,column:6},end:{line:133,column:7}},12:{start:{line:132,column:8},end:{line:132,column:25}},13:{start:{line:138,column:6},end:{line:138,column:23}},14:{start:{line:141,column:6},end:{line:141,column:46}},15:{start:{line:142,column:23},end:{line:144,column:7}},16:{start:{line:145,column:6},end:{line:145,column:50}},17:{start:{line:148,column:6},end:{line:148,column:28}},18:{start:{line:149,column:6},end:{line:162,column:8}},19:{start:{line:155,column:8},end:{line:161,column:9}},20:{start:{line:156,column:10},end:{line:156,column:22}},21:{start:{line:158,column:10},end:{line:158,column:43}},22:{start:{line:159,column:10},end:{line:159,column:36}},23:{start:{line:160,column:10},end:{line:160,column:31}},24:{start:{line:165,column:6},end:{line:165,column:28}},25:{start:{line:166,column:6},end:{line:172,column:25}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:87,column:2},end:{line:87,column:3}},loc:{start:{line:87,column:9},end:{line:98,column:3}},line:87},1:{name:"(anonymous_1)",decl:{start:{line:100,column:13},end:{line:100,column:14}},loc:{start:{line:100,column:25},end:{line:105,column:5}},line:100},2:{name:"(anonymous_2)",decl:{start:{line:106,column:11},end:{line:106,column:12}},loc:{start:{line:106,column:23},end:{line:111,column:5}},line:106},3:{name:"(anonymous_3)",decl:{start:{line:108,column:23},end:{line:108,column:24}},loc:{start:{line:109,column:10},end:{line:109,column:74}},line:109},4:{name:"(anonymous_4)",decl:{start:{line:112,column:15},end:{line:112,column:16}},loc:{start:{line:112,column:27},end:{line:126,column:5}},line:112},5:{name:"(anonymous_5)",decl:{start:{line:128,column:11},end:{line:128,column:12}},loc:{start:{line:128,column:23},end:{line:135,column:3}},line:128},6:{name:"(anonymous_6)",decl:{start:{line:129,column:64},end:{line:129,column:65}},loc:{start:{line:129,column:78},end:{line:134,column:5}},line:129},7:{name:"(anonymous_7)",decl:{start:{line:137,column:15},end:{line:137,column:16}},loc:{start:{line:137,column:27},end:{line:139,column:5}},line:137},8:{name:"(anonymous_8)",decl:{start:{line:140,column:11},end:{line:140,column:12}},loc:{start:{line:140,column:23},end:{line:146,column:5}},line:140},9:{name:"(anonymous_9)",decl:{start:{line:147,column:20},end:{line:147,column:21}},loc:{start:{line:147,column:32},end:{line:163,column:5}},line:147},10:{name:"(anonymous_10)",decl:{start:{line:154,column:14},end:{line:154,column:15}},loc:{start:{line:154,column:28},end:{line:162,column:7}},line:154},11:{name:"(anonymous_11)",decl:{start:{line:164,column:17},end:{line:164,column:18}},loc:{start:{line:164,column:29},end:{line:173,column:5}},line:164}},branchMap:{0:{loc:{start:{line:109,column:10},end:{line:109,column:74}},type:"binary-expr",locations:[{start:{line:109,column:10},end:{line:109,column:48}},{start:{line:109,column:52},end:{line:109,column:74}}],line:109},1:{loc:{start:{line:113,column:6},end:{line:125,column:7}},type:"if",locations:[{start:{line:113,column:6},end:{line:125,column:7}},{start:{line:123,column:13},end:{line:125,column:7}}],line:113},2:{loc:{start:{line:114,column:8},end:{line:122,column:9}},type:"if",locations:[{start:{line:114,column:8},end:{line:122,column:9}},{start:{line:116,column:15},end:{line:122,column:9}}],line:114},3:{loc:{start:{line:115,column:17},end:{line:115,column:74}},type:"binary-expr",locations:[{start:{line:115,column:17},end:{line:115,column:32}},{start:{line:115,column:36},end:{line:115,column:74}}],line:115},4:{loc:{start:{line:118,column:12},end:{line:120,column:50}},type:"binary-expr",locations:[{start:{line:118,column:12},end:{line:118,column:30}},{start:{line:119,column:12},end:{line:119,column:27}},{start:{line:120,column:12},end:{line:120,column:50}}],line:118},5:{loc:{start:{line:131,column:6},end:{line:133,column:7}},type:"if",locations:[{start:{line:131,column:6},end:{line:133,column:7}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:131},6:{loc:{start:{line:145,column:34},end:{line:145,column:49}},type:"binary-expr",locations:[{start:{line:145,column:34},end:{line:145,column:42}},{start:{line:145,column:46},end:{line:145,column:49}}],line:145},7:{loc:{start:{line:155,column:8},end:{line:161,column:9}},type:"if",locations:[{start:{line:155,column:8},end:{line:161,column:9}},{start:{line:157,column:15},end:{line:161,column:9}}],line:155}},s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0},f:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0},b:{0:[0,0],1:[0,0],2:[0,0],3:[0,0],4:[0,0,0],5:[0,0],6:[0,0],7:[0,0]},inputSourceMap:{version:3,sources:["Login.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmFA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",file:"Login.vue",sourceRoot:"src/components",sourcesContent:['\x3c!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n--\x3e\n\n<template>\n <v-card>\n <v-card-title> Login </v-card-title>\n <v-card-subtitle>\n {{ isSet ? \'Enter the\' : \'Create a\' }}\n password to begin using OpenC3\n </v-card-subtitle>\n <v-card-text>\n <v-form>\n <v-text-field\n v-if="isSet && reset"\n v-model="oldPassword"\n type="password"\n label="Old Password"\n />\n <v-text-field\n v-model="password"\n type="password"\n :label="`${!isSet || reset ? \'New \' : \'\'}Password`"\n data-test="new-password"\n />\n <v-text-field\n v-if="reset"\n v-model="confirmPassword"\n :rules="[rules.matchPassword]"\n type="password"\n label="Confirm Password"\n data-test="confirm-password"\n />\n <v-btn\n v-if="reset"\n type="submit"\n @click.prevent="setPassword"\n large\n :color="isSet ? \'warn\' : \'success\'"\n :disabled="!formValid"\n data-test="set-password"\n >\n Set\n </v-btn>\n <v-container v-else>\n <v-row>\n <v-btn\n type="submit"\n @click.prevent="verifyPassword"\n large\n color="success"\n :disabled="!formValid"\n >\n Login\n </v-btn>\n <v-spacer />\n <v-btn text small @click="showReset"> Change Password </v-btn>\n </v-row>\n </v-container>\n </v-form>\n </v-card-text>\n <v-alert :type="alertType" v-model="showAlert" dismissible>\n {{ alert }}\n </v-alert>\n </v-card>\n</template>\n\n<script>\nimport Api from \'../../../packages/openc3-tool-common/src/services/api\'\n\nexport default {\n data() {\n return {\n isSet: true,\n password: \'\',\n confirmPassword: \'\',\n oldPassword: \'\',\n reset: false, // setting a password for the first time, or changing to a new password\n alert: \'\',\n alertType: \'success\',\n showAlert: false,\n }\n },\n computed: {\n options: function () {\n return {\n noAuth: true,\n noScope: true, // lol\n }\n },\n rules: function () {\n return {\n matchPassword: () =>\n this.password === this.confirmPassword || \'Passwords must match\',\n }\n },\n formValid: function () {\n if (this.reset) {\n if (!this.isSet) {\n return !!this.password && this.password === this.confirmPassword\n } else {\n return (\n !!this.oldPassword &&\n !!this.password &&\n this.password === this.confirmPassword\n )\n }\n } else {\n return !!this.password\n }\n },\n },\n created: function () {\n Api.get(\'/openc3-api/auth/token-exists\', this.options).then((response) => {\n this.isSet = !!response.data.result\n if (!this.isSet) {\n this.reset = true\n }\n })\n },\n methods: {\n showReset: function () {\n this.reset = true\n },\n login: function () {\n localStorage.openc3Token = this.password\n const redirect = new URLSearchParams(window.location.search).get(\n \'redirect\'\n )\n window.location = decodeURI(redirect || \'/\')\n },\n verifyPassword: function () {\n this.showAlert = false\n Api.post(\'/openc3-api/auth/verify\', {\n data: {\n token: this.password,\n },\n ...this.options,\n }).then((response) => {\n if (response.data.result) {\n this.login()\n } else {\n this.alert = \'Incorrect password\'\n this.alertType = \'warning\'\n this.showAlert = true\n }\n })\n },\n setPassword: function () {\n this.showAlert = false\n Api.post(\'/openc3-api/auth/set\', {\n data: {\n old_token: this.oldPassword,\n token: this.password,\n },\n ...this.options,\n }).then(this.login)\n },\n },\n}\n<\/script>\n']},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"844878d12f93a6fc7f8693a102ad4bb7d249fac7"});var o=s[n];return i=function(){return o},o}function r(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,s)}return t}function a(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?r(Object(t),!0).forEach((function(e){(0,o.Z)(n,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}))}return n}i();var c={data:function(){return i().f[0]++,i().s[0]++,{isSet:!0,password:"",confirmPassword:"",oldPassword:"",reset:!1,alert:"",alertType:"success",showAlert:!1}},computed:{options:function(){return i().f[1]++,i().s[1]++,{noAuth:!0,noScope:!0}},rules:function(){var n=this;return i().f[2]++,i().s[2]++,{matchPassword:function(){return i().f[3]++,i().s[3]++,i().b[0][0]++,n.password===n.confirmPassword||(i().b[0][1]++,"Passwords must match")}}},formValid:function(){return i().f[4]++,i().s[4]++,this.reset?(i().b[1][0]++,i().s[5]++,this.isSet?(i().b[2][1]++,i().s[7]++,i().b[4][0]++,!(!this.oldPassword||(i().b[4][1]++,!this.password)||(i().b[4][2]++,this.password!==this.confirmPassword))):(i().b[2][0]++,i().s[6]++,i().b[3][0]++,!!this.password&&(i().b[3][1]++,this.password===this.confirmPassword))):(i().b[1][1]++,i().s[8]++,!!this.password)}},created:function(){var n=this;i().f[5]++,i().s[9]++,l.Z.get("/openc3-api/auth/token-exists",this.options).then((function(e){i().f[6]++,i().s[10]++,n.isSet=!!e.data.result,i().s[11]++,n.isSet?i().b[5][1]++:(i().b[5][0]++,i().s[12]++,n.reset=!0)}))},methods:{showReset:function(){i().f[7]++,i().s[13]++,this.reset=!0},login:function(){i().f[8]++,i().s[14]++,localStorage.openc3Token=this.password;var n=(i().s[15]++,new URLSearchParams(window.location.search).get("redirect"));i().s[16]++,window.location=decodeURI((i().b[6][0]++,n||(i().b[6][1]++,"/")))},verifyPassword:function(){var n=this;i().f[9]++,i().s[17]++,this.showAlert=!1,i().s[18]++,l.Z.post("/openc3-api/auth/verify",a({data:{token:this.password}},this.options)).then((function(e){i().f[10]++,i().s[19]++,e.data.result?(i().b[7][0]++,i().s[20]++,n.login()):(i().b[7][1]++,i().s[21]++,n.alert="Incorrect password",i().s[22]++,n.alertType="warning",i().s[23]++,n.showAlert=!0)}))},setPassword:function(){i().f[11]++,i().s[24]++,this.showAlert=!1,i().s[25]++,l.Z.post("/openc3-api/auth/set",a({data:{old_token:this.oldPassword,token:this.password}},this.options)).then(this.login)}}},u=(0,t(1900).Z)(c,s,[],!1,null,null,null);u.options.__file="src/components/Login.vue";var A=u.exports}}]);
2
- //# sourceMappingURL=889.openc3-tool-base.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"889.openc3-tool-base.js","mappings":"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","sources":["webpack://tool-base/./src/components/Login.vue?a11d","webpack://tool-base/src/components/Login.vue","webpack://tool-base/./src/components/Login.vue?e756","webpack://tool-base/./src/components/Login.vue"],"sourcesContent":["var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"v-card\",\n [\n _c(\"v-card-title\", [_vm._v(\" Login \")]),\n _vm._v(\" \"),\n _c(\"v-card-subtitle\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.isSet ? \"Enter the\" : \"Create a\") +\n \"\\n password to begin using OpenC3\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-card-text\",\n [\n _c(\n \"v-form\",\n [\n _vm.isSet && _vm.reset\n ? _c(\"v-text-field\", {\n attrs: { type: \"password\", label: \"Old Password\" },\n model: {\n value: _vm.oldPassword,\n callback: function ($$v) {\n _vm.oldPassword = $$v\n },\n expression: \"oldPassword\",\n },\n })\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"v-text-field\", {\n attrs: {\n type: \"password\",\n label: (!_vm.isSet || _vm.reset ? \"New \" : \"\") + \"Password\",\n \"data-test\": \"new-password\",\n },\n model: {\n value: _vm.password,\n callback: function ($$v) {\n _vm.password = $$v\n },\n expression: \"password\",\n },\n }),\n _vm._v(\" \"),\n _vm.reset\n ? _c(\"v-text-field\", {\n attrs: {\n rules: [_vm.rules.matchPassword],\n type: \"password\",\n label: \"Confirm Password\",\n \"data-test\": \"confirm-password\",\n },\n model: {\n value: _vm.confirmPassword,\n callback: function ($$v) {\n _vm.confirmPassword = $$v\n },\n expression: \"confirmPassword\",\n },\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.reset\n ? _c(\n \"v-btn\",\n {\n attrs: {\n type: \"submit\",\n large: \"\",\n color: _vm.isSet ? \"warn\" : \"success\",\n disabled: !_vm.formValid,\n \"data-test\": \"set-password\",\n },\n on: {\n click: function ($event) {\n $event.preventDefault()\n return _vm.setPassword.apply(null, arguments)\n },\n },\n },\n [_vm._v(\"\\n Set\\n \")]\n )\n : _c(\n \"v-container\",\n [\n _c(\n \"v-row\",\n [\n _c(\n \"v-btn\",\n {\n attrs: {\n type: \"submit\",\n large: \"\",\n color: \"success\",\n disabled: !_vm.formValid,\n },\n on: {\n click: function ($event) {\n $event.preventDefault()\n return _vm.verifyPassword.apply(\n null,\n arguments\n )\n },\n },\n },\n [_vm._v(\"\\n Login\\n \")]\n ),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { text: \"\", small: \"\" },\n on: { click: _vm.showReset },\n },\n [_vm._v(\" Change Password \")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-alert\",\n {\n attrs: { type: _vm.alertType, dismissible: \"\" },\n model: {\n value: _vm.showAlert,\n callback: function ($$v) {\n _vm.showAlert = $$v\n },\n expression: \"showAlert\",\n },\n },\n [_vm._v(\"\\n \" + _vm._s(_vm.alert) + \"\\n \")]\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n-->\n\n<template>\n <v-card>\n <v-card-title> Login </v-card-title>\n <v-card-subtitle>\n {{ isSet ? 'Enter the' : 'Create a' }}\n password to begin using OpenC3\n </v-card-subtitle>\n <v-card-text>\n <v-form>\n <v-text-field\n v-if=\"isSet && reset\"\n v-model=\"oldPassword\"\n type=\"password\"\n label=\"Old Password\"\n />\n <v-text-field\n v-model=\"password\"\n type=\"password\"\n :label=\"`${!isSet || reset ? 'New ' : ''}Password`\"\n data-test=\"new-password\"\n />\n <v-text-field\n v-if=\"reset\"\n v-model=\"confirmPassword\"\n :rules=\"[rules.matchPassword]\"\n type=\"password\"\n label=\"Confirm Password\"\n data-test=\"confirm-password\"\n />\n <v-btn\n v-if=\"reset\"\n type=\"submit\"\n @click.prevent=\"setPassword\"\n large\n :color=\"isSet ? 'warn' : 'success'\"\n :disabled=\"!formValid\"\n data-test=\"set-password\"\n >\n Set\n </v-btn>\n <v-container v-else>\n <v-row>\n <v-btn\n type=\"submit\"\n @click.prevent=\"verifyPassword\"\n large\n color=\"success\"\n :disabled=\"!formValid\"\n >\n Login\n </v-btn>\n <v-spacer />\n <v-btn text small @click=\"showReset\"> Change Password </v-btn>\n </v-row>\n </v-container>\n </v-form>\n </v-card-text>\n <v-alert :type=\"alertType\" v-model=\"showAlert\" dismissible>\n {{ alert }}\n </v-alert>\n </v-card>\n</template>\n\n<script>\nimport Api from '../../../packages/openc3-tool-common/src/services/api'\n\nexport default {\n data() {\n return {\n isSet: true,\n password: '',\n confirmPassword: '',\n oldPassword: '',\n reset: false, // setting a password for the first time, or changing to a new password\n alert: '',\n alertType: 'success',\n showAlert: false,\n }\n },\n computed: {\n options: function () {\n return {\n noAuth: true,\n noScope: true, // lol\n }\n },\n rules: function () {\n return {\n matchPassword: () =>\n this.password === this.confirmPassword || 'Passwords must match',\n }\n },\n formValid: function () {\n if (this.reset) {\n if (!this.isSet) {\n return !!this.password && this.password === this.confirmPassword\n } else {\n return (\n !!this.oldPassword &&\n !!this.password &&\n this.password === this.confirmPassword\n )\n }\n } else {\n return !!this.password\n }\n },\n },\n created: function () {\n Api.get('/openc3-api/auth/token-exists', this.options).then((response) => {\n this.isSet = !!response.data.result\n if (!this.isSet) {\n this.reset = true\n }\n })\n },\n methods: {\n showReset: function () {\n this.reset = true\n },\n login: function () {\n localStorage.openc3Token = this.password\n const redirect = new URLSearchParams(window.location.search).get(\n 'redirect'\n )\n window.location = decodeURI(redirect || '/')\n },\n verifyPassword: function () {\n this.showAlert = false\n Api.post('/openc3-api/auth/verify', {\n data: {\n token: this.password,\n },\n ...this.options,\n }).then((response) => {\n if (response.data.result) {\n this.login()\n } else {\n this.alert = 'Incorrect password'\n this.alertType = 'warning'\n this.showAlert = true\n }\n })\n },\n setPassword: function () {\n this.showAlert = false\n Api.post('/openc3-api/auth/set', {\n data: {\n old_token: this.oldPassword,\n token: this.password,\n },\n ...this.options,\n }).then(this.login)\n },\n },\n}\n</script>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=ef68022e&\"\nimport script from \"./Login.vue?vue&type=script&lang=js&\"\nexport * from \"./Login.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\n/* hot reload */\nif (module.hot) {\n var api = require(\"/openc3/plugins/openc3-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('ef68022e')) {\n api.createRecord('ef68022e', component.options)\n } else {\n api.reload('ef68022e', component.options)\n }\n module.hot.accept(\"./Login.vue?vue&type=template&id=ef68022e&\", function () {\n api.rerender('ef68022e', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/Login.vue\"\nexport default component.exports"],"names":["render","_vm","this","_h","$createElement","_c","_self","_v","_s","isSet","reset","attrs","type","label","model","value","oldPassword","callback","$$v","expression","_e","password","rules","matchPassword","confirmPassword","large","color","disabled","formValid","on","click","$event","preventDefault","setPassword","apply","arguments","verifyPassword","text","small","showReset","alertType","dismissible","showAlert","alert","_withStripped","data","computed","options","noAuth","noScope","created","methods","login","localStorage","openc3Token","window","location","decodeURI","token","response","result","old_token","component","__file"],"sourceRoot":""}
@@ -1 +0,0 @@
1
- Object.defineProperty(OpenC3Auth,"defaultMinValidity",{value:30,writable:!1,enumerable:!0,configurable:!1});