1 line
18 KiB
JavaScript
1 line
18 KiB
JavaScript
(window.webpackJsonp=window.webpackJsonp||[]).push([[61],{1421:function(t,e,n){"use strict";n.r(e);var r=n(3114),a=n(2264);for(var s in a)"default"!==s&&function(t){n.d(e,t,(function(){return a[t]}))}(s);n(2954);var o=n(0),i=n(2956),c=n.n(i),l=Object(o.a)(a.default,r.a,r.b,!1,null,null,null);"function"==typeof c.a&&c()(l),e.default=l.exports},2264:function(t,e,n){"use strict";n.r(e);var r=n(2265),a=n.n(r);for(var s in r)"default"!==s&&function(t){n.d(e,t,(function(){return r[t]}))}(s);e.default=a.a},2265:function(t,e,n){"use strict";var r=n(10),a=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=a(n(15)),o=a(n(16)),i=a(n(2)),c=r(n(2952)),l=n(49),u=a(n(2953)),d=a(n(3115)),p=a(n(2960));function f(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function h(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?f(Object(n),!0).forEach((function(e){(0,i.default)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}var v,g,b,_,m={preload:[c.getSettings,c.getSecret,c.getCodes],api:[{command:c.getSettings,bind:"values"},{command:c.generateSecret,bind:{isDone:"secretGenerated"}},{command:c.getSecret,bind:"secret"},{command:c.getCodes,bind:"codes"}],computed:{expiryOptions:function(){var t=function(t){return(0,l.toApiDate)(t(new Date))};return[{label:this.$gettext("1 Day"),key:t((0,u.default)(1))},{label:this.$gettext("2 Days"),key:t((0,u.default)(2))},{label:this.$gettext("1 Week"),key:t((0,d.default)(1))},{label:this.$gettext("2 Weeks"),key:t((0,d.default)(2))},{label:this.$gettext("1 Month"),key:t((0,p.default)(1))},{label:this.$gettext("6 Months"),key:t((0,p.default)(6))},{label:this.$gettext("12 Months"),key:t((0,p.default)(12))}].reduce((function(t,e){var n=e.key,r=e.label;return h({},t,(0,i.default)({},n,r))}),{0:this.$gettext("Never")})},checkedCodes:function(){return this.checkedRows.map((function(t){return t.code}))}},data:function(){return{code:"",expiry:"0",checkedRows:[],tab:"general",settings:{description:"",enabled:!1,notify:!1,allowApiLogins:!1}}},created:function(){this.settings=h({},this.$api.values)},methods:{generateSecret:(_=(0,o.default)(s.default.mark((function t(){var e;return s.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,c.generateSecret();case 2:(e=t.sent)&&e.success&&(c.getSecret(),c.getSettings(),this.reloadScratchCodes());case 4:case"end":return t.stop()}}),t,this)}))),function(){return _.apply(this,arguments)}),testAuthCode:function(){c.testCode(this.$get(["code"]))},saveSettings:(b=(0,o.default)(s.default.mark((function t(){return s.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,c.saveSettings({twostep_auth_description:this.settings.description,twostep_auth:this.settings.enabled,api_with_password:this.settings.allowApiLogins,notify_on_all_twostep_auth_failures:this.settings.notify});case 2:case"end":return t.stop()}}),t,this)}))),function(){return b.apply(this,arguments)}),addCodes:(g=(0,o.default)(s.default.mark((function t(){return s.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,c.addCodes(this.$get(["expiry"]));case 2:t.sent&&this.reloadScratchCodes();case 4:case"end":return t.stop()}}),t,this)}))),function(){return g.apply(this,arguments)}),reloadScratchCodes:function(){c.getCodes(),this.checkedRows=[]},printCodes:function(){document.querySelector("html").classList.add("print-scratch-codes"),window.print()},deleteCodes:(v=(0,o.default)(s.default.mark((function t(){return s.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,c.deleteCodes({select:this.checkedCodes});case 2:t.sent&&this.reloadScratchCodes();case 4:case"end":return t.stop()}}),t,this)}))),function(){return v.apply(this,arguments)}),sorter:function(t){switch(t){case"expiry":return function(t){return t.expiry||1/0};case"created":return function(t){return t.created};default:return function(t){return Number(t.code)}}}}};e.default=m},2266:function(t,e,n){"use strict";function r(t,e,n){return(n=n||[]).length>=e?t.apply(null,n.slice(0,e).reverse()):function(){var a=Array.prototype.slice.call(arguments);return r(t,e,n.concat(a))}}n.d(e,"a",(function(){return r}))},2267:function(t,e,n){var r=n(2955);"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);(0,n(5).default)("3e024064",r,!0,{})},2952:function(t,e,n){"use strict";var r=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.deleteCodes=e.getCodes=e.addCodes=e.submitCode=e.saveSettings=e.getSecret=e.testCode=e.generateSecret=e.getSettings=void 0;var a=r(n(2)),s=r(n(30));function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function i(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?o(Object(n),!0).forEach((function(e){(0,a.default)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}var c="/CMD_TWOSTEP_AUTH",l=s.default.get({id:"TSA_SETTINGS",url:c,after:function(t){return t.flow(t.project({maxAttempts:"MAX_ATTEMPTS",description:"KEY_NAME",enabled:"TWOSTEP_AUTH_CHECKED",requireGeneration:"TWOSTEP_AUTH_DISABLED",notify:"NOTIFY_ON_ALL_FAILURES_CHECKED",allowApiLogins:"SECURITY_QUESTIONS_ON_API_CHECKED"}),t.mapProps({notify:t.isEqual("checked"),allowApiLogins:t.isEqual("checked"),enabled:t.convert.toAppBoolean,requireGeneration:t.convert.toAppBoolean}))}});e.getSettings=l;var u=s.default.post({url:c,id:"GENERATE_TSA_SECRET",params:{action:"new_secret"}});e.generateSecret=u;var d=s.default.post({url:c,params:{action:"test"},schema:{code:s.default.REQUIRED_STRING}});e.testCode=d;var p=s.default.get({id:"TSA_SECRET",url:c,after:function(t){return t.project({value:"SPACED_SECRET",qr:"QR_URL"})}});e.getSecret=p;var f=s.default.post({url:c,params:{action:"settings"},schema:{twostep_auth_description:s.default.REQUIRED_STRING,twostep_auth:s.default.REQUIRED_BOOL,api_with_password:s.default.REQUIRED_BOOL,notify_on_all_twostep_auth_failures:s.default.REQUIRED_BOOL}});e.saveSettings=f;var h=s.default.post({url:"/CMD_ASK_TWOSTEP_AUTH",params:{action:"submit",json:!0},schema:{code:s.default.REQUIRED_STRING,trust_device:s.default.REQUIRED_BOOL,referrer:i({},s.default.OPTIONAL_STRING,{default:"/"})}});e.submitCode=h;var v=s.default.post({url:c,params:{add:!0,action:"select"},schema:{expiry:s.default.REQUIRED_STRING}});e.addCodes=v;var g=s.default.get({id:"TSA_CODES",url:c,response:[],after:function(t){return t.flow(t.getProp("scratch_codes"),t.mapValues((function(t,e){return i({code:e},t)})),t.toArray,t.mapArrayProps({created:t.convert.toAppDate,expiry:function(e){return"0"!==e&&t.convert.toAppDate(e)}}))}});e.getCodes=g;var b=s.default.select({url:c,params:{delete:!0}});e.deleteCodes=b},2953:function(t,e,n){"use strict";n.r(e);var r=n(603),a=n(2266),s=Object(a.a)(r.a,2);e.default=s},2954:function(t,e,n){"use strict";var r=n(2267);n.n(r).a},2955:function(t,e,n){(t.exports=n(4)(!0)).push([t.i,"@media print{html.print-scratch-codes #two-step-auth .ui-tabs-header-tab,html.print-scratch-codes #two-step-auth>header,html.print-scratch-codes footer,html.print-scratch-codes header.header,html.print-scratch-codes section.search{display:none}html.print-scratch-codes #two-step-auth .ui-tabs{border-width:0}html.print-scratch-codes #two-step-auth .r-table-buttons-before{display:none}html.print-scratch-codes #scratch-codes{display:block}html.print-scratch-codes #scratch-codes .button,html.print-scratch-codes #scratch-codes h2,html.print-scratch-codes #scratch-codes input{display:none}html.print-scratch-codes #scratch-codes .table-row{background-color:#fff}}html.vue-app .qr-code-tooltip>img{margin:1rem}html.vue-app .qr-code-tooltip>span{text-align:center;max-width:200px}","",{version:3,sources:["/home/evo/evolution/src/js/pages/user/two-step-auth.vue"],names:[],mappings:"AA8WA,aACI,0NAKY,YAAa,CALzB,iDAQY,cAAe,CAR3B,gEAWY,YAAa,CAXzB,wCAeQ,aAAc,CAftB,yIAiBY,YAAa,CAjBzB,mDAoBY,qBAAsB,CACzB,CAIb,kCAEkB,WAAY,CAF9B,mCAIY,kBACA,eAAgB,CAAA",file:"two-step-auth.vue?vue&type=style&index=0&lang=scss&",sourcesContent:["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n@media print {\n html.print-scratch-codes {\n header.header, footer, section.search { display: none; }\n #two-step-auth {\n & > header { display: none; }\n & .ui-tabs-header-tab {\n display: none;\n }\n & .ui-tabs {\n border-width: 0;\n }\n & .r-table-buttons-before {\n display: none;\n }\n }\n #scratch-codes {\n display: block;\n .button, h2, input {\n display: none;\n }\n .table-row {\n background-color: #fff;\n }\n }\n }\n}\nhtml.vue-app {\n .qr-code-tooltip {\n & > img { margin: 1rem; }\n & > span {\n text-align: center;\n max-width: 200px;\n }\n }\n}\n"],sourceRoot:""}])},2956:function(t,e){},2960:function(t,e,n){"use strict";n.r(e);var r=n(19),a=n(9),s=n(8);function o(t){Object(s.a)(1,arguments);var e=Object(a.a)(t),n=e.getFullYear(),r=e.getMonth(),o=new Date(0);return o.setFullYear(n,r+1,0),o.setHours(0,0,0,0),o.getDate()}var i=n(2266),c=Object(i.a)((function(t,e){Object(s.a)(2,arguments);var n=Object(a.a)(t),i=Object(r.a)(e),c=n.getMonth()+i,l=new Date(0);l.setFullYear(n.getFullYear(),c,1),l.setHours(0,0,0,0);var u=o(l);return n.setMonth(c,Math.min(u,n.getDate())),n}),2);e.default=c},3114:function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("app-page",{attrs:{id:"two-step-auth"}},[t.$api.values.requireGeneration?n("ui-button",{attrs:{slot:"header:buttons",theme:"primary"},on:{click:t.generateSecret},slot:"header:buttons"},[n("translate",[t._v("Generate Secret")])],1):t._e(),t._v(" "),t.$api.values.requireGeneration||"codes"!==t.tab?t._e():n("template",{slot:"header:buttons"},[n("ui-button",{attrs:{theme:"primary"},on:{click:function(e){t.$dialog("ADD_CODES_DIALOG").open()}}},[n("translate",[t._v("Add Codes")])],1),t._v(" "),n("ui-button",{attrs:{theme:"safe"},on:{click:t.printCodes}},[n("translate",[t._v("Print")])],1)],1),t._v(" "),n("div",{directives:[{name:"flex",rawName:"v-flex",value:{cross:"center"},expression:"{ cross: 'center' }"}],attrs:{slot:"page:title"},slot:"page:title"},[n("translate",[t._v("\n Two-Step Authentication\n ")]),t._v(" "),n("ui-tooltip",{directives:[{name:"margin",rawName:"v-margin",value:[,,,1],expression:"[,,,1]"}],attrs:{placement:"bottom"}},[n("translate",{attrs:{tag:"div"}},[t._v("To use this feature, download the Google Authenticator App for your phone (or equivalent), and scan in the QR code.")]),t._v(" "),n("translate",{attrs:{tag:"div"}},[t._v("The App will show you a code, which you'll use to Login to DirectAdmin.")]),t._v(" "),n("translate",{attrs:{tag:"div"}},[t._v("Scratch Codes are one-time use codes in case you don't have your phone, so keep them safe.")])],1)],1),t._v(" "),t.$api.values.requireGeneration&&!t.$api.secretGenerated?n("app-page-section",[n("translate",{attrs:{tag:"strong"}},[t._v("This feature is not turned on.")]),t._v(" "),n("translate",{attrs:{tag:"p"}},[t._v("Create a new secret to begin.")])],1):n("ui-tabs",{attrs:{tabs:[{id:"general",label:t.$gettext("Settings")},{id:"codes",label:t.$gettext("Scratch Codes")}],hideSingleTab:"",selected:t.tab},on:{"update:selected":function(e){t.tab=e}}},[n("template",{slot:"tab:general"},[t.$api.values.requireGeneration?t._e():[n("ui-form-element",{attrs:{underline:!1}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Secret")]),t._v(" "),n("ui-input-group",{attrs:{slot:"content"},slot:"content"},[n("ui-button",{attrs:{slot:"additions:left",title:t.$gettext("Generate Secret")},on:{click:t.generateSecret},slot:"additions:left"},[n("ui-icon",{attrs:{slot:"icon",id:"dices",theme:"primary"},slot:"icon"}),t._v(" "),t.$_Client.isPhone?t._e():n("translate",[t._v("Generate Secret")])],1),t._v(" "),n("input-text",{attrs:{slot:"input",value:t.$api.secret.value,disabled:""},slot:"input"}),t._v(" "),n("ui-tooltip",{attrs:{slot:"additions:right"},slot:"additions:right"},[n("ui-button",{attrs:{slot:"trigger",theme:"light"},slot:"trigger"},[n("ui-icon",{attrs:{id:"question",size:"medium",theme:"primary"}})],1),t._v(" "),n("div",{directives:[{name:"flex",rawName:"v-flex",value:{dir:"column",cross:"center"},expression:"{ dir: 'column', cross: 'center'}"}],staticClass:"qr-code-tooltip"},[n("img",{attrs:{src:t.$api.secret.qr,width:t.$_Client.isPhone?"100%":"200",title:t.$gettext("Scan this code in your phone")}}),t._v(" "),n("translate",[t._v("\n Be sure to re-scan the QR code, as all old codes become invalid.\n ")])],1)],1)],1)],1),t._v(" "),n("ui-form-element",[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("QR Code")]),t._v(" "),n("ui-input-group",{attrs:{slot:"content"},slot:"content"},[n("input-text",{attrs:{slot:"input",number:"",placeholder:t.$gettext("Test your phone's code")},slot:"input",model:{value:t.code,callback:function(e){t.code=e},expression:"code"}}),t._v(" "),n("ui-button",{attrs:{slot:"additions:right",disabled:!t.code},on:{click:t.testAuthCode},slot:"additions:right"},[n("translate",[t._v("\n Test Code\n ")])],1)],1)],1)],t._v(" "),n("ui-form-element",[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Description")]),t._v(" "),n("input-text",{attrs:{slot:"content"},slot:"content",model:{value:t.settings.description,callback:function(e){t.$set(t.settings,"description",e)},expression:"settings.description"}})],1),t._v(" "),n("ui-form-element",{attrs:{underline:!1}},[n("span",{attrs:{slot:"title"},slot:"title"}),t._v(" "),n("input-checkbox",{attrs:{slot:"content"},slot:"content",model:{value:t.settings.enabled,callback:function(e){t.$set(t.settings,"enabled",e)},expression:"settings.enabled"}},[n("translate",[t._v("\n Require valid Two-Step Authentication Code to login to this account.\n ")])],1)],1),t._v(" "),n("ui-form-element",{attrs:{underline:!1}},[n("span",{attrs:{slot:"title"},slot:"title"}),t._v(" "),n("input-checkbox",{attrs:{slot:"content"},slot:"content",model:{value:t.settings.notify,callback:function(e){t.$set(t.settings,"notify",e)},expression:"settings.notify"}},[n("translate",[t._v("\n Allow API logins with the current User/password. Login Keys and Session Keys are always allowed.\n ")])],1)],1),t._v(" "),n("ui-form-element",{attrs:{underline:!1}},[n("span",{attrs:{slot:"title"},slot:"title"}),t._v(" "),n("input-checkbox",{attrs:{slot:"content"},slot:"content",model:{value:t.settings.allowApiLogins,callback:function(e){t.$set(t.settings,"allowApiLogins",e)},expression:"settings.allowApiLogins"}},[n("translate",[t._v("\n Notify me on all incorrect codes entries. Disabling this option will still notify you after 5 failed attempts.\n ")])],1)],1)],2),t._v(" "),n("div",{attrs:{slot:"tab:codes",id:"scratch-codes"},slot:"tab:codes"},[n("ui-r-table",{attrs:{rows:t.$api.codes,columns:[{id:"code",label:t.$gettext("Scratch Code"),editable:!1},{id:"created",label:t.$gettext("Date Created")},{id:"expiry",label:t.$gettext("Expires")}],rowsCount:t.$api.codes.length,checkedRows:t.checkedRows,verticalLayout:t.$_Client.isPhone,sortBy:t.sorter,isSortable:"",disablePagination:"",equalWidthLayout:""},on:{"update:checkedRows":function(e){t.checkedRows=e},"update:checked-rows":function(e){t.checkedRows=e}},scopedSlots:t._u([{key:"col:created",fn:function(e){var n=e.created;return[t._v("\n "+t._s(t._f("date")(n))+"\n ")]}},{key:"col:expiry",fn:function(e){var r=e.expiry;return[r?[t._v("\n "+t._s(t._f("date")(r))+"\n ")]:n("translate",[t._v("Never")])]}}])},[n("ui-table-action",{attrs:{slot:"table:actions"},on:{click:t.deleteCodes},slot:"table:actions"},[n("translate",[t._v("Delete")])],1)],1)],1)],2),t._v(" "),n("ui-dialog",{attrs:{id:"ADD_CODES_DIALOG"}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Add Scratch Codes")]),t._v(" "),n("div",{attrs:{slot:"content"},slot:"content"},[n("translate",[t._v("\n Scratch Codes are one-time use codes in case you don't have your phone, so keep them safe.\n ")]),t._v(" "),n("ui-form-element",[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Expiry")]),t._v(" "),n("input-select",{attrs:{slot:"content",options:t.expiryOptions},slot:"content",model:{value:t.expiry,callback:function(e){t.expiry=e},expression:"expiry"}})],1)],1),t._v(" "),n("ui-button",{attrs:{slot:"buttons",theme:"primary"},on:{click:t.addCodes},slot:"buttons"},[n("translate",[t._v("Add Codes")])],1)],1),t._v(" "),"general"!==t.tab||t.$api.values.requireGeneration?t._e():n("ui-button",{attrs:{slot:"footer:buttons",theme:"primary"},on:{click:t.saveSettings},slot:"footer:buttons"},[n("translate",[t._v("Save")])],1)],2)},a=[];n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return a}))},3115:function(t,e,n){"use strict";n.r(e);var r=n(19),a=n(603),s=n(8);var o=n(2266),i=Object(o.a)((function(t,e){Object(s.a)(2,arguments);var n=Object(r.a)(e),o=7*n;return Object(a.a)(t,o)}),2);e.default=i}}]); |