From d8412ec0f5bc1092777ce6941b54bb68470f468e Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 29 Jun 2026 04:23:49 -0600 Subject: [PATCH] Update Admin Invites, fixes #4264 --- public/js/admin_invite.js | 2 +- public/mix-manifest.json | 2 +- resources/assets/components/invite/AdminInvite.vue | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/public/js/admin_invite.js b/public/js/admin_invite.js index ade103da9..dc25f1e7d 100644 --- a/public/js/admin_invite.js +++ b/public/js/admin_invite.js @@ -1 +1 @@ -(self.webpackChunkpixelfed=self.webpackChunkpixelfed||[]).push([[5853],{62201(t,e,i){"use strict";i.r(e),i.d(e,{default:()=>s});var a=i(74692);const s={props:["code"],data:function(){return{instance:{},inviteConfig:{},tabIndex:0,isProceeding:!1,errors:{username:void 0,email:void 0,password:void 0,password_confirm:void 0},form:{username:void 0,email:void 0,password:void 0,password_confirm:void 0,display_name:void 0}}},mounted:function(){this.fetchInstanceData()},methods:{fetchInstanceData:function(){var t=this;axios.get("/api/v1/instance").then(function(e){t.instance=e.data}).then(function(e){t.verifyToken()}).catch(function(t){console.log(t)})},verifyToken:function(){var t=this;axios.post("/api/v1.1/auth/invite/admin/verify",{token:this.code}).then(function(e){t.tabIndex=1,t.inviteConfig=e.data}).catch(function(e){t.tabIndex="invalid-code"})},checkUsernameAvailability:function(){var t=this;axios.post("/api/v1.1/auth/invite/admin/uc",{token:this.code,username:this.form.username}).then(function(e){e&&e.data?(t.isProceeding=!1,t.tabIndex=2):(t.tabIndex="invalid-code",t.isProceeding=!1)}).catch(function(e){e.response.data&&e.response.data.username?(t.errors.username=e.response.data.username[0],t.isProceeding=!1):(t.tabIndex="invalid-code",t.isProceeding=!1)})},checkEmailAvailability:function(){var t=this;axios.post("/api/v1.1/auth/invite/admin/ec",{token:this.code,email:this.form.email}).then(function(e){e&&e.data?(t.isProceeding=!1,t.tabIndex=3):(t.tabIndex="invalid-code",t.isProceeding=!1)}).catch(function(e){e.response.data&&e.response.data.email?(t.errors.email=e.response.data.email[0],t.isProceeding=!1):(t.tabIndex="invalid-code",t.isProceeding=!1)})},validateEmail:function(){return!(!this.form.email||!this.form.email.length)&&/^[a-zA-Z]+[a-zA-Z0-9_.-]+@[a-zA-Z0-9_.-]+[a-zA-Z]$/i.test(this.form.email)},handleRegistration:function(){var t=a("
",{action:"/api/v1.1/auth/invite/admin/re",method:"post"}),e={_token:document.head.querySelector('meta[name="csrf-token"]').content,token:this.code,username:this.form.username,name:this.form.display_name,email:this.form.email,password:this.form.password,password_confirm:this.form.password_confirm};a.each(e,function(e,i){a("").attr({type:"hidden",name:e,value:i}).appendTo(t)}),t.appendTo("body").submit()},proceed:function(t){switch(this.isProceeding=!0,event.currentTarget.blur(),t){case 1:this.checkUsernameAvailability();break;case 2:this.checkEmailAvailability();break;case 3:this.isProceeding=!1,this.tabIndex=4;break;case 4:this.isProceeding=!1,this.tabIndex=5;break;case 5:this.tabIndex=6,this.handleRegistration()}}}}},98819(t,e,i){"use strict";i.r(e),i.d(e,{render:()=>a,staticRenderFns:()=>s});var a=function(){var t=this,e=t._self._c;return e("div",{staticClass:"admin-invite-component"},[e("div",{staticClass:"admin-invite-component-inner"},[e("div",{staticClass:"card bg-dark"},[0===t.tabIndex?e("div",{staticClass:"card-body d-flex align-items-center justify-content-center"},[e("div",{staticClass:"text-center"},[e("b-spinner",{attrs:{variant:"muted"}}),t._v(" "),e("p",{staticClass:"text-muted mb-0"},[t._v("Loading...")])],1)]):1===t.tabIndex?e("div",{staticClass:"card-body"},[t._m(0),t._v(" "),e("div",{staticClass:"d-flex flex-column align-items-center justify-content-center"},[e("p",{staticClass:"lead mb-1 text-muted"},[t._v("You've been invited to join")]),t._v(" "),e("p",{staticClass:"h3 mb-2"},[t._v(t._s(t.instance.uri))]),t._v(" "),e("p",{staticClass:"mb-0 text-muted"},[e("span",[t._v(t._s(t.instance.stats.user_count.toLocaleString("en-CA",{compactDisplay:"short",notation:"compact"}))+" users")]),t._v(" "),e("span",[t._v("·")]),t._v(" "),e("span",[t._v(t._s(t.instance.stats.status_count.toLocaleString("en-CA",{compactDisplay:"short",notation:"compact"}))+" posts")])]),t._v(" "),"You've been invited to join"!=t.inviteConfig.message?e("div",[e("div",{staticClass:"admin-message"},[e("p",{staticClass:"small text-light mb-0"},[t._v("Message from admin(s):")]),t._v("\n "+t._s(t.inviteConfig.message)+"\n ")])]):t._e()]),t._v(" "),e("div",{staticClass:"mt-5"},[e("div",{staticClass:"form-group"},[e("label",{attrs:{for:"username"}},[t._v("Username")]),t._v(" "),e("input",{directives:[{name:"model",rawName:"v-model",value:t.form.username,expression:"form.username"}],staticClass:"form-control form-control-lg",attrs:{type:"text",placeholder:"What should everyone call you?",minlength:"2",u:"",maxlength:"30"},domProps:{value:t.form.username},on:{input:function(e){e.target.composing||t.$set(t.form,"username",e.target.value)}}}),t._v(" "),t.errors.username?e("p",{staticClass:"form-text text-danger"},[e("i",{staticClass:"far fa-exclamation-triangle mr-1"}),t._v("\n "+t._s(t.errors.username)+"\n ")]):t._e()]),t._v(" "),e("button",{staticClass:"btn btn-primary btn-block font-weight-bold",attrs:{disabled:t.isProceeding||!t.form.username||t.form.username.length<2},on:{click:function(e){return t.proceed(t.tabIndex)}}},[t.isProceeding?[e("b-spinner",{attrs:{small:""}})]:[t._v("\n Continue\n ")]],2),t._v(" "),t._m(1),t._v(" "),t._m(2)])]):2===t.tabIndex?e("div",{staticClass:"card-body"},[t._m(3),t._v(" "),e("div",{staticClass:"d-flex flex-column align-items-center justify-content-center"},[e("p",{staticClass:"lead mb-1 text-muted"},[t._v("You've been invited to join")]),t._v(" "),e("p",{staticClass:"h3 mb-2"},[t._v(t._s(t.instance.uri))])]),t._v(" "),e("div",{staticClass:"mt-5"},[e("div",{staticClass:"form-group"},[e("label",{attrs:{for:"username"}},[t._v("Email Address")]),t._v(" "),e("input",{directives:[{name:"model",rawName:"v-model",value:t.form.email,expression:"form.email"}],staticClass:"form-control form-control-lg",attrs:{type:"email",placeholder:"Your email address"},domProps:{value:t.form.email},on:{input:function(e){e.target.composing||t.$set(t.form,"email",e.target.value)}}}),t._v(" "),t.errors.email?e("p",{staticClass:"form-text text-danger"},[e("i",{staticClass:"far fa-exclamation-triangle mr-1"}),t._v("\n "+t._s(t.errors.email)+"\n ")]):t._e()]),t._v(" "),e("button",{staticClass:"btn btn-primary btn-block font-weight-bold",attrs:{disabled:t.isProceeding||!t.form.email||!t.validateEmail()},on:{click:function(e){return t.proceed(t.tabIndex)}}},[t.isProceeding?[e("b-spinner",{attrs:{small:""}})]:[t._v("\n Continue\n ")]],2)])]):3===t.tabIndex?e("div",{staticClass:"card-body"},[t._m(4),t._v(" "),e("div",{staticClass:"d-flex flex-column align-items-center justify-content-center"},[e("p",{staticClass:"lead mb-1 text-muted"},[t._v("You've been invited to join")]),t._v(" "),e("p",{staticClass:"h3 mb-2"},[t._v(t._s(t.instance.uri))])]),t._v(" "),e("div",{staticClass:"mt-5"},[e("div",{staticClass:"form-group"},[e("label",{attrs:{for:"username"}},[t._v("Password")]),t._v(" "),e("input",{directives:[{name:"model",rawName:"v-model",value:t.form.password,expression:"form.password"}],staticClass:"form-control form-control-lg",attrs:{type:"password",placeholder:"Use a secure password",minlength:"8"},domProps:{value:t.form.password},on:{input:function(e){e.target.composing||t.$set(t.form,"password",e.target.value)}}}),t._v(" "),t.errors.password?e("p",{staticClass:"form-text text-danger"},[e("i",{staticClass:"far fa-exclamation-triangle mr-1"}),t._v("\n "+t._s(t.errors.password)+"\n ")]):t._e()]),t._v(" "),e("button",{staticClass:"btn btn-primary btn-block font-weight-bold",attrs:{disabled:t.isProceeding||!t.form.password||t.form.password.length<8},on:{click:function(e){return t.proceed(t.tabIndex)}}},[t.isProceeding?[e("b-spinner",{attrs:{small:""}})]:[t._v("\n Continue\n ")]],2)])]):4===t.tabIndex?e("div",{staticClass:"card-body"},[t._m(5),t._v(" "),e("div",{staticClass:"d-flex flex-column align-items-center justify-content-center"},[e("p",{staticClass:"lead mb-1 text-muted"},[t._v("You've been invited to join")]),t._v(" "),e("p",{staticClass:"h3 mb-2"},[t._v(t._s(t.instance.uri))])]),t._v(" "),e("div",{staticClass:"mt-5"},[e("div",{staticClass:"form-group"},[e("label",{attrs:{for:"username"}},[t._v("Confirm Password")]),t._v(" "),e("input",{directives:[{name:"model",rawName:"v-model",value:t.form.password_confirm,expression:"form.password_confirm"}],staticClass:"form-control form-control-lg",attrs:{type:"password",placeholder:"Use a secure password",minlength:"8"},domProps:{value:t.form.password_confirm},on:{input:function(e){e.target.composing||t.$set(t.form,"password_confirm",e.target.value)}}}),t._v(" "),t.errors.password_confirm?e("p",{staticClass:"form-text text-danger"},[e("i",{staticClass:"far fa-exclamation-triangle mr-1"}),t._v("\n "+t._s(t.errors.password_confirm)+"\n ")]):t._e()]),t._v(" "),e("button",{staticClass:"btn btn-primary btn-block font-weight-bold",attrs:{disabled:t.isProceeding||!t.form.password_confirm||t.form.password!==t.form.password_confirm},on:{click:function(e){return t.proceed(t.tabIndex)}}},[t.isProceeding?[e("b-spinner",{attrs:{small:""}})]:[t._v("\n Continue\n ")]],2)])]):5===t.tabIndex?e("div",{staticClass:"card-body"},[t._m(6),t._v(" "),e("div",{staticClass:"d-flex flex-column align-items-center justify-content-center"},[e("p",{staticClass:"lead mb-1 text-muted"},[t._v("You've been invited to join")]),t._v(" "),e("p",{staticClass:"h3 mb-2"},[t._v(t._s(t.instance.uri))])]),t._v(" "),e("div",{staticClass:"mt-5"},[e("div",{staticClass:"form-group"},[e("label",{attrs:{for:"username"}},[t._v("Display Name")]),t._v(" "),e("input",{directives:[{name:"model",rawName:"v-model",value:t.form.display_name,expression:"form.display_name"}],staticClass:"form-control form-control-lg",attrs:{type:"text",placeholder:"Add an optional display name",minlength:"8"},domProps:{value:t.form.display_name},on:{input:function(e){e.target.composing||t.$set(t.form,"display_name",e.target.value)}}}),t._v(" "),t.errors.display_name?e("p",{staticClass:"form-text text-danger"},[e("i",{staticClass:"far fa-exclamation-triangle mr-1"}),t._v("\n "+t._s(t.errors.display_name)+"\n ")]):t._e()]),t._v(" "),e("button",{staticClass:"btn btn-primary btn-block font-weight-bold",attrs:{disabled:t.isProceeding},on:{click:function(e){return t.proceed(t.tabIndex)}}},[t.isProceeding?[e("b-spinner",{attrs:{small:""}})]:[t._v("\n Continue\n ")]],2)])]):6===t.tabIndex?e("div",{staticClass:"card-body d-flex flex-column"},[t._m(7),t._v(" "),e("div",{staticClass:"d-flex flex-column align-items-center justify-content-center"},[e("p",{staticClass:"lead mb-1 text-muted"},[t._v("You've been invited to join")]),t._v(" "),e("p",{staticClass:"h3 mb-2"},[t._v(t._s(t.instance.uri))])]),t._v(" "),e("div",{staticClass:"mt-5 d-flex align-items-center justify-content-center flex-column flex-grow-1"},[e("b-spinner",{attrs:{variant:"muted"}}),t._v(" "),e("p",{staticClass:"text-muted"},[t._v("Registering...")])],1)]):"invalid-code"===t.tabIndex?e("div",{staticClass:"card-body d-flex align-items-center justify-content-center"},[t._m(8)]):e("div",{staticClass:"card-body"},[e("p",[t._v("An error occured.")])])])])])},s=[function(){var t=this._self._c;return t("div",{staticClass:"d-flex justify-content-center my-3"},[t("img",{attrs:{src:"/img/pixelfed-icon-color.png",width:"60",alt:"Pixelfed logo"}})])},function(){var t=this._self._c;return t("p",{staticClass:"login-link"},[t("a",{attrs:{href:"/login"}},[this._v("Already have an account?")])])},function(){var t=this,e=t._self._c;return e("p",{staticClass:"register-terms"},[t._v("\n By registering, you agree to our "),e("a",{attrs:{href:"/site/terms"}},[t._v("Terms of Service")]),t._v(" and "),e("a",{attrs:{href:"/site/privacy"}},[t._v("Privacy Policy")]),t._v(".\n ")])},function(){var t=this._self._c;return t("div",{staticClass:"d-flex justify-content-center my-3"},[t("img",{attrs:{src:"/img/pixelfed-icon-color.png",width:"60",alt:"Pixelfed logo"}})])},function(){var t=this._self._c;return t("div",{staticClass:"d-flex justify-content-center my-3"},[t("img",{attrs:{src:"/img/pixelfed-icon-color.png",width:"60",alt:"Pixelfed logo"}})])},function(){var t=this._self._c;return t("div",{staticClass:"d-flex justify-content-center my-3"},[t("img",{attrs:{src:"/img/pixelfed-icon-color.png",width:"60",alt:"Pixelfed logo"}})])},function(){var t=this._self._c;return t("div",{staticClass:"d-flex justify-content-center my-3"},[t("img",{attrs:{src:"/img/pixelfed-icon-color.png",width:"60",alt:"Pixelfed logo"}})])},function(){var t=this._self._c;return t("div",{staticClass:"d-flex justify-content-center my-3"},[t("img",{attrs:{src:"/img/pixelfed-icon-color.png",width:"60",alt:"Pixelfed logo"}})])},function(){var t=this,e=t._self._c;return e("div",[e("h1",{staticClass:"text-center"},[t._v("Invalid Invite Code")]),t._v(" "),e("hr"),t._v(" "),e("p",{staticClass:"text-muted mb-1"},[t._v("The invite code you were provided is not valid, this can happen when:")]),t._v(" "),e("ul",{staticClass:"text-muted"},[e("li",[t._v("Invite code has typos")]),t._v(" "),e("li",[t._v("Invite code was already used")]),t._v(" "),e("li",[t._v("Invite code has reached max uses")]),t._v(" "),e("li",[t._v("Invite code has expired")]),t._v(" "),e("li",[t._v("You have been rate limited")])]),t._v(" "),e("hr"),t._v(" "),e("a",{staticClass:"btn btn-primary btn-block rounded-pill font-weight-bold",attrs:{href:"/"}},[t._v("Go back home")])])}]},65751(t,e,i){Vue.component("admin-invite",i(68043).default)},19945(t,e,i){"use strict";i.r(e),i.d(e,{default:()=>n});var a=i(76798),s=i.n(a)()(function(t){return t[1]});s.push([t.id,".admin-invite-component{font-family:var(--font-family-sans-serif)}.admin-invite-component-inner{align-items:center;display:flex;height:100vh;justify-content:center;width:100wv}.admin-invite-component-inner .card{border-radius:10px;color:#fff;min-height:530px;padding:1.25rem 2.5rem;width:100%}@media (min-width:768px){.admin-invite-component-inner .card{width:30%}}.admin-invite-component-inner .card label{color:var(--muted);font-weight:700;text-transform:uppercase}.admin-invite-component-inner .card .login-link{font-weight:600;margin-top:10px}.admin-invite-component-inner .card .register-terms{color:var(--muted);font-size:12px}.admin-invite-component-inner .card .form-control{color:#fff}.admin-invite-component-inner .card .admin-message{border:1px solid var(--dropdown-item-hover-color);border-radius:5px;color:var(--text-lighter);margin-top:20px;padding:1rem}",""]);const n=s},74670(t,e,i){"use strict";i.r(e),i.d(e,{default:()=>o});var a=i(85072),s=i.n(a),n=i(19945),r={insert:"head",singleton:!1};s()(n.default,r);const o=n.default.locals||{}},68043(t,e,i){"use strict";i.r(e),i.d(e,{default:()=>r});var a=i(80656),s=i(48016),n={};for(const t in s)"default"!==t&&(n[t]=()=>s[t]);i.d(e,n);i(70457);const r=(0,i(14486).default)(s.default,a.render,a.staticRenderFns,!1,null,null,null).exports},48016(t,e,i){"use strict";i.r(e),i.d(e,{default:()=>n});var a=i(62201),s={};for(const t in a)"default"!==t&&(s[t]=()=>a[t]);i.d(e,s);const n=a.default},80656(t,e,i){"use strict";i.r(e);var a=i(98819),s={};for(const t in a)"default"!==t&&(s[t]=()=>a[t]);i.d(e,s)},70457(t,e,i){"use strict";i.r(e);var a=i(74670),s={};for(const t in a)"default"!==t&&(s[t]=()=>a[t]);i.d(e,s)}},t=>{t.O(0,[3660],()=>{return e=65751,t(t.s=e);var e});t.O()}]); \ No newline at end of file +(self.webpackChunkpixelfed=self.webpackChunkpixelfed||[]).push([[5853],{62201(t,e,i){"use strict";i.r(e),i.d(e,{default:()=>n});var a=i(74692);const n={props:["code"],data:function(){return{instance:{},inviteConfig:{},tabIndex:0,isProceeding:!1,errors:{username:void 0,email:void 0,password:void 0,password_confirm:void 0},form:{username:void 0,email:void 0,password:void 0,password_confirm:void 0,display_name:void 0}}},mounted:function(){this.fetchInstanceData()},methods:{fetchInstanceData:function(){var t=this;axios.get("/api/v1/instance").then(function(e){t.instance=e.data}).then(function(e){t.verifyToken()}).catch(function(t){console.log(t)})},verifyToken:function(){var t=this;axios.post("/api/v1.1/auth/invite/admin/verify",{token:this.code}).then(function(e){t.tabIndex=1,t.inviteConfig=e.data}).catch(function(e){t.tabIndex="invalid-code"})},checkUsernameAvailability:function(){var t=this;axios.post("/api/v1.1/auth/invite/admin/uc",{token:this.code,username:this.form.username}).then(function(e){e&&e.data?(t.isProceeding=!1,t.tabIndex=2):(t.tabIndex="invalid-code",t.isProceeding=!1)}).catch(function(e){e.response.data&&e.response.data.username?(t.errors.username=e.response.data.username[0],t.isProceeding=!1):(t.tabIndex="invalid-code",t.isProceeding=!1)})},checkEmailAvailability:function(){var t=this;axios.post("/api/v1.1/auth/invite/admin/ec",{token:this.code,email:this.form.email}).then(function(e){e&&e.data?(t.isProceeding=!1,t.tabIndex=3):(t.tabIndex="invalid-code",t.isProceeding=!1)}).catch(function(e){e.response.data&&e.response.data.email?(t.errors.email=e.response.data.email[0],t.isProceeding=!1):(t.tabIndex="invalid-code",t.isProceeding=!1)})},validateEmail:function(){var t,e=null===(t=this.form)||void 0===t||null===(t=t.email)||void 0===t?void 0:t.trim();if(!e||e.length>254)return!1;return/^[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])?)+$/.test(e)},handleRegistration:function(){var t=a("",{action:"/api/v1.1/auth/invite/admin/re",method:"post"}),e={_token:document.head.querySelector('meta[name="csrf-token"]').content,token:this.code,username:this.form.username,name:this.form.display_name,email:this.form.email,password:this.form.password,password_confirm:this.form.password_confirm};a.each(e,function(e,i){a("").attr({type:"hidden",name:e,value:i}).appendTo(t)}),t.appendTo("body").submit()},proceed:function(t){switch(this.isProceeding=!0,event.currentTarget.blur(),t){case 1:this.checkUsernameAvailability();break;case 2:this.checkEmailAvailability();break;case 3:this.isProceeding=!1,this.tabIndex=4;break;case 4:this.isProceeding=!1,this.tabIndex=5;break;case 5:this.tabIndex=6,this.handleRegistration()}}}}},1896(t,e,i){"use strict";i.r(e),i.d(e,{render:()=>a,staticRenderFns:()=>n});var a=function(){var t=this,e=t._self._c;return e("div",{staticClass:"admin-invite-component"},[e("div",{staticClass:"admin-invite-component-inner"},[e("div",{staticClass:"card bg-dark"},[0===t.tabIndex?e("div",{staticClass:"card-body d-flex align-items-center justify-content-center"},[e("div",{staticClass:"text-center"},[e("b-spinner",{attrs:{variant:"muted"}}),t._v(" "),e("p",{staticClass:"text-muted mb-0"},[t._v("Loading...")])],1)]):1===t.tabIndex?e("div",{staticClass:"card-body"},[t._m(0),t._v(" "),e("div",{staticClass:"d-flex flex-column align-items-center justify-content-center"},[e("p",{staticClass:"lead mb-1 text-muted"},[t._v("You've been invited to join")]),t._v(" "),e("p",{staticClass:"h3 mb-2"},[t._v(t._s(t.instance.uri))]),t._v(" "),e("p",{staticClass:"mb-0 text-muted"},[e("span",[t._v(t._s(t.instance.stats.user_count.toLocaleString("en-CA",{compactDisplay:"short",notation:"compact"}))+" users")]),t._v(" "),e("span",[t._v("·")]),t._v(" "),e("span",[t._v(t._s(t.instance.stats.status_count.toLocaleString("en-CA",{compactDisplay:"short",notation:"compact"}))+" posts")])]),t._v(" "),"You've been invited to join"!=t.inviteConfig.message?e("div",[e("div",{staticClass:"admin-message"},[e("p",{staticClass:"small text-light mb-0"},[t._v("Message from admin(s):")]),t._v("\n "+t._s(t.inviteConfig.message)+"\n ")])]):t._e()]),t._v(" "),e("div",{staticClass:"mt-5"},[e("div",{staticClass:"form-group"},[e("label",{attrs:{for:"username"}},[t._v("Username")]),t._v(" "),e("input",{directives:[{name:"model",rawName:"v-model",value:t.form.username,expression:"form.username"}],staticClass:"form-control form-control-lg",attrs:{type:"text",placeholder:"What should everyone call you?",minlength:"2",u:"",maxlength:"30"},domProps:{value:t.form.username},on:{input:function(e){e.target.composing||t.$set(t.form,"username",e.target.value)}}}),t._v(" "),t.errors.username?e("p",{staticClass:"form-text text-danger"},[e("i",{staticClass:"far fa-exclamation-triangle mr-1"}),t._v("\n "+t._s(t.errors.username)+"\n ")]):t._e()]),t._v(" "),e("button",{staticClass:"btn btn-primary btn-block font-weight-bold",attrs:{disabled:t.isProceeding||!t.form.username||t.form.username.length<2},on:{click:function(e){return t.proceed(t.tabIndex)}}},[t.isProceeding?[e("b-spinner",{attrs:{small:""}})]:[t._v("\n Continue\n ")]],2),t._v(" "),t._m(1),t._v(" "),t._m(2)])]):2===t.tabIndex?e("div",{staticClass:"card-body"},[t._m(3),t._v(" "),e("div",{staticClass:"d-flex flex-column align-items-center justify-content-center"},[e("p",{staticClass:"lead mb-1 text-muted"},[t._v("You've been invited to join")]),t._v(" "),e("p",{staticClass:"h3 mb-2"},[t._v(t._s(t.instance.uri))])]),t._v(" "),e("div",{staticClass:"mt-5"},[e("div",{staticClass:"form-group"},[e("label",{attrs:{for:"username"}},[t._v("Email Address")]),t._v(" "),e("input",{directives:[{name:"model",rawName:"v-model",value:t.form.email,expression:"form.email"}],staticClass:"form-control form-control-lg",attrs:{type:"email",placeholder:"Your email address"},domProps:{value:t.form.email},on:{input:function(e){e.target.composing||t.$set(t.form,"email",e.target.value)}}}),t._v(" "),t.errors.email?e("p",{staticClass:"form-text text-danger"},[e("i",{staticClass:"far fa-exclamation-triangle mr-1"}),t._v("\n "+t._s(t.errors.email)+"\n ")]):t._e()]),t._v(" "),e("button",{staticClass:"btn btn-primary btn-block font-weight-bold",attrs:{disabled:t.isProceeding||!t.form.email||!t.validateEmail()},on:{click:function(e){return t.proceed(t.tabIndex)}}},[t.isProceeding?[e("b-spinner",{attrs:{small:""}})]:[t._v("\n Continue\n ")]],2)])]):3===t.tabIndex?e("div",{staticClass:"card-body"},[t._m(4),t._v(" "),e("div",{staticClass:"d-flex flex-column align-items-center justify-content-center"},[e("p",{staticClass:"lead mb-1 text-muted"},[t._v("You've been invited to join")]),t._v(" "),e("p",{staticClass:"h3 mb-2"},[t._v(t._s(t.instance.uri))])]),t._v(" "),e("div",{staticClass:"mt-5"},[e("div",{staticClass:"form-group"},[e("label",{attrs:{for:"username"}},[t._v("Password")]),t._v(" "),e("input",{directives:[{name:"model",rawName:"v-model",value:t.form.password,expression:"form.password"}],staticClass:"form-control form-control-lg",attrs:{type:"password",placeholder:"Use a secure password",minlength:"8"},domProps:{value:t.form.password},on:{input:function(e){e.target.composing||t.$set(t.form,"password",e.target.value)}}}),t._v(" "),t.errors.password?e("p",{staticClass:"form-text text-danger"},[e("i",{staticClass:"far fa-exclamation-triangle mr-1"}),t._v("\n "+t._s(t.errors.password)+"\n ")]):t._e()]),t._v(" "),e("button",{staticClass:"btn btn-primary btn-block font-weight-bold",attrs:{disabled:t.isProceeding||!t.form.password||t.form.password.length<8},on:{click:function(e){return t.proceed(t.tabIndex)}}},[t.isProceeding?[e("b-spinner",{attrs:{small:""}})]:[t._v("\n Continue\n ")]],2)])]):4===t.tabIndex?e("div",{staticClass:"card-body"},[t._m(5),t._v(" "),e("div",{staticClass:"d-flex flex-column align-items-center justify-content-center"},[e("p",{staticClass:"lead mb-1 text-muted"},[t._v("You've been invited to join")]),t._v(" "),e("p",{staticClass:"h3 mb-2"},[t._v(t._s(t.instance.uri))])]),t._v(" "),e("div",{staticClass:"mt-5"},[e("div",{staticClass:"form-group"},[e("label",{attrs:{for:"username"}},[t._v("Confirm Password")]),t._v(" "),e("input",{directives:[{name:"model",rawName:"v-model",value:t.form.password_confirm,expression:"form.password_confirm"}],staticClass:"form-control form-control-lg",attrs:{type:"password",placeholder:"Use a secure password",minlength:"8"},domProps:{value:t.form.password_confirm},on:{input:function(e){e.target.composing||t.$set(t.form,"password_confirm",e.target.value)}}}),t._v(" "),t.errors.password_confirm?e("p",{staticClass:"form-text text-danger"},[e("i",{staticClass:"far fa-exclamation-triangle mr-1"}),t._v("\n "+t._s(t.errors.password_confirm)+"\n ")]):t._e()]),t._v(" "),e("button",{staticClass:"btn btn-primary btn-block font-weight-bold",attrs:{disabled:t.isProceeding||!t.form.password_confirm||t.form.password!==t.form.password_confirm},on:{click:function(e){return t.proceed(t.tabIndex)}}},[t.isProceeding?[e("b-spinner",{attrs:{small:""}})]:[t._v("\n Continue\n ")]],2)])]):5===t.tabIndex?e("div",{staticClass:"card-body"},[t._m(6),t._v(" "),e("div",{staticClass:"d-flex flex-column align-items-center justify-content-center"},[e("p",{staticClass:"lead mb-1 text-muted"},[t._v("You've been invited to join")]),t._v(" "),e("p",{staticClass:"h3 mb-2"},[t._v(t._s(t.instance.uri))])]),t._v(" "),e("div",{staticClass:"mt-5"},[e("div",{staticClass:"form-group"},[e("label",{attrs:{for:"username"}},[t._v("Display Name")]),t._v(" "),e("input",{directives:[{name:"model",rawName:"v-model",value:t.form.display_name,expression:"form.display_name"}],staticClass:"form-control form-control-lg",attrs:{type:"text",placeholder:"Add an optional display name",minlength:"8"},domProps:{value:t.form.display_name},on:{input:function(e){e.target.composing||t.$set(t.form,"display_name",e.target.value)}}}),t._v(" "),t.errors.display_name?e("p",{staticClass:"form-text text-danger"},[e("i",{staticClass:"far fa-exclamation-triangle mr-1"}),t._v("\n "+t._s(t.errors.display_name)+"\n ")]):t._e()]),t._v(" "),e("button",{staticClass:"btn btn-primary btn-block font-weight-bold",attrs:{disabled:t.isProceeding},on:{click:function(e){return t.proceed(t.tabIndex)}}},[t.isProceeding?[e("b-spinner",{attrs:{small:""}})]:[t._v("\n Continue\n ")]],2)])]):6===t.tabIndex?e("div",{staticClass:"card-body d-flex flex-column"},[t._m(7),t._v(" "),e("div",{staticClass:"d-flex flex-column align-items-center justify-content-center"},[e("p",{staticClass:"lead mb-1 text-muted"},[t._v("You've been invited to join")]),t._v(" "),e("p",{staticClass:"h3 mb-2"},[t._v(t._s(t.instance.uri))])]),t._v(" "),e("div",{staticClass:"mt-5 d-flex align-items-center justify-content-center flex-column flex-grow-1"},[e("b-spinner",{attrs:{variant:"muted"}}),t._v(" "),e("p",{staticClass:"text-muted"},[t._v("Registering...")])],1)]):"invalid-code"===t.tabIndex?e("div",{staticClass:"card-body d-flex align-items-center justify-content-center"},[t._m(8)]):e("div",{staticClass:"card-body"},[e("p",[t._v("An error occured.")])])])])])},n=[function(){var t=this._self._c;return t("div",{staticClass:"d-flex justify-content-center my-3"},[t("img",{attrs:{src:"/img/pixelfed-icon-color.png",width:"60",alt:"Pixelfed logo"}})])},function(){var t=this._self._c;return t("p",{staticClass:"login-link"},[t("a",{attrs:{href:"/login"}},[this._v("Already have an account?")])])},function(){var t=this,e=t._self._c;return e("p",{staticClass:"register-terms"},[t._v("\n By registering, you agree to our "),e("a",{attrs:{href:"/site/terms"}},[t._v("Terms of Service")]),t._v(" and "),e("a",{attrs:{href:"/site/privacy"}},[t._v("Privacy Policy")]),t._v(".\n ")])},function(){var t=this._self._c;return t("div",{staticClass:"d-flex justify-content-center my-3"},[t("img",{attrs:{src:"/img/pixelfed-icon-color.png",width:"60",alt:"Pixelfed logo"}})])},function(){var t=this._self._c;return t("div",{staticClass:"d-flex justify-content-center my-3"},[t("img",{attrs:{src:"/img/pixelfed-icon-color.png",width:"60",alt:"Pixelfed logo"}})])},function(){var t=this._self._c;return t("div",{staticClass:"d-flex justify-content-center my-3"},[t("img",{attrs:{src:"/img/pixelfed-icon-color.png",width:"60",alt:"Pixelfed logo"}})])},function(){var t=this._self._c;return t("div",{staticClass:"d-flex justify-content-center my-3"},[t("img",{attrs:{src:"/img/pixelfed-icon-color.png",width:"60",alt:"Pixelfed logo"}})])},function(){var t=this._self._c;return t("div",{staticClass:"d-flex justify-content-center my-3"},[t("img",{attrs:{src:"/img/pixelfed-icon-color.png",width:"60",alt:"Pixelfed logo"}})])},function(){var t=this,e=t._self._c;return e("div",[e("h1",{staticClass:"text-center"},[t._v("Invalid Invite Code")]),t._v(" "),e("hr"),t._v(" "),e("p",{staticClass:"text-muted mb-1"},[t._v("The invite code you were provided is not valid, this can happen when:")]),t._v(" "),e("ul",{staticClass:"text-muted"},[e("li",[t._v("Invite code has typos")]),t._v(" "),e("li",[t._v("Invite code was already used")]),t._v(" "),e("li",[t._v("Invite code has reached max uses")]),t._v(" "),e("li",[t._v("Invite code has expired")]),t._v(" "),e("li",[t._v("You have been rate limited")])]),t._v(" "),e("hr"),t._v(" "),e("a",{staticClass:"btn btn-primary btn-block rounded-pill font-weight-bold",attrs:{href:"/"}},[t._v("Go back home")])])}]},65751(t,e,i){Vue.component("admin-invite",i(68043).default)},91e3(t,e,i){"use strict";i.r(e),i.d(e,{default:()=>s});var a=i(76798),n=i.n(a)()(function(t){return t[1]});n.push([t.id,".admin-invite-component{font-family:var(--font-family-sans-serif)}.admin-invite-component-inner{align-items:center;display:flex;height:100vh;justify-content:center;width:100wv}.admin-invite-component-inner .card{border-radius:10px;color:#fff;min-height:530px;padding:1.25rem 2.5rem;width:100%}@media (min-width:768px){.admin-invite-component-inner .card{width:30%}}.admin-invite-component-inner .card label{color:var(--muted);font-weight:700;text-transform:uppercase}.admin-invite-component-inner .card .login-link{font-weight:600;margin-top:10px}.admin-invite-component-inner .card .register-terms{color:var(--muted);font-size:12px}.admin-invite-component-inner .card .form-control{color:#fff}.admin-invite-component-inner .card .admin-message{border:1px solid var(--dropdown-item-hover-color);border-radius:5px;color:var(--text-lighter);margin-top:20px;padding:1rem}",""]);const s=n},79859(t,e,i){"use strict";i.r(e),i.d(e,{default:()=>o});var a=i(85072),n=i.n(a),s=i(91e3),r={insert:"head",singleton:!1};n()(s.default,r);const o=s.default.locals||{}},68043(t,e,i){"use strict";i.r(e),i.d(e,{default:()=>r});var a=i(25855),n=i(48016),s={};for(const t in n)"default"!==t&&(s[t]=()=>n[t]);i.d(e,s);i(79176);const r=(0,i(14486).default)(n.default,a.render,a.staticRenderFns,!1,null,null,null).exports},48016(t,e,i){"use strict";i.r(e),i.d(e,{default:()=>s});var a=i(62201),n={};for(const t in a)"default"!==t&&(n[t]=()=>a[t]);i.d(e,n);const s=a.default},25855(t,e,i){"use strict";i.r(e);var a=i(1896),n={};for(const t in a)"default"!==t&&(n[t]=()=>a[t]);i.d(e,n)},79176(t,e,i){"use strict";i.r(e);var a=i(79859),n={};for(const t in a)"default"!==t&&(n[t]=()=>a[t]);i.d(e,n)}},t=>{t.O(0,[3660],()=>{return e=65751,t(t.s=e);var e});t.O()}]); \ No newline at end of file diff --git a/public/mix-manifest.json b/public/mix-manifest.json index fff282783..0b5e2185b 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -21,7 +21,7 @@ "/js/stories.js": "/js/stories.js?id=8565c19bc915466ed5dd98076cfa3f04", "/js/portfolio.js": "/js/portfolio.js?id=2dfd35982335ad4eca174b70bc0e9bb4", "/js/account-import.js": "/js/account-import.js?id=fb9b306bcf2293dbb12c37e6629229db", - "/js/admin_invite.js": "/js/admin_invite.js?id=222184abde829eda900a444f2474b916", + "/js/admin_invite.js": "/js/admin_invite.js?id=200302f8562e57371a89a533d8b06f46", "/js/landing.js": "/js/landing.js?id=4cd020a2029a345c68204f8f783c16cc", "/js/remote_auth.js": "/js/remote_auth.js?id=c3f3d3f486795671a8eb9074893f99b8", "/js/groups.js": "/js/groups.js?id=a937eafec16e12848a15f1d5fa684b30", diff --git a/resources/assets/components/invite/AdminInvite.vue b/resources/assets/components/invite/AdminInvite.vue index 59e412e01..0141675b8 100644 --- a/resources/assets/components/invite/AdminInvite.vue +++ b/resources/assets/components/invite/AdminInvite.vue @@ -368,11 +368,15 @@ u maxlength="30" }, validateEmail() { - if(!this.form.email || !this.form.email.length) { + const email = this.form?.email?.trim(); + + if (!email || email.length > 254) { return false; } - return /^[a-zA-Z]+[a-zA-Z0-9_.-]+@[a-zA-Z0-9_.-]+[a-zA-Z]$/i.test(this.form.email); + const pattern = /^[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])?)+$/; + + return pattern.test(email); }, handleRegistration() {