[feat] User invitation code (#3761)
This commit is contained in:
@@ -66,7 +66,7 @@ window._lnbitsApi = {
|
||||
name: name
|
||||
})
|
||||
},
|
||||
register(username, email, password, password_repeat) {
|
||||
register(username, email, password, password_repeat, invitation_code) {
|
||||
return axios({
|
||||
method: 'POST',
|
||||
url: '/api/v1/auth/register',
|
||||
@@ -74,7 +74,8 @@ window._lnbitsApi = {
|
||||
username,
|
||||
email,
|
||||
password,
|
||||
password_repeat
|
||||
password_repeat,
|
||||
invitation_code
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -432,8 +432,10 @@ window.app.component('username-password', {
|
||||
username: String,
|
||||
password_1: String,
|
||||
password_2: String,
|
||||
invitationCode: String,
|
||||
resetKey: String
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
oauth: [
|
||||
@@ -445,7 +447,11 @@ window.app.component('username-password', {
|
||||
username: this.userName,
|
||||
password: this.password_1,
|
||||
passwordRepeat: this.password_2,
|
||||
reset_key: this.resetKey
|
||||
reset_key: this.resetKey,
|
||||
confirmationMethod: 'code',
|
||||
confirmationEmail: '',
|
||||
confirmationCode: this.invitationCode || '',
|
||||
showConfirmationCode: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -458,6 +464,7 @@ window.app.component('username-password', {
|
||||
this.$emit('update:userName', this.username)
|
||||
this.$emit('update:password_1', this.password)
|
||||
this.$emit('update:password_2', this.passwordRepeat)
|
||||
this.$emit('update:invitationCode', this.confirmationCode)
|
||||
this.$emit('register')
|
||||
},
|
||||
reset() {
|
||||
@@ -549,6 +556,25 @@ window.app.component('username-password', {
|
||||
computed: {
|
||||
showOauth() {
|
||||
return this.oauth.some(m => this.authMethods.includes(m))
|
||||
},
|
||||
disableRegister() {
|
||||
const usernameOK = !!this.username
|
||||
const passwordOK = !!this.password && this.password.length >= 8
|
||||
const passwordsMatch = this.password === this.passwordRepeat
|
||||
const codeOk =
|
||||
this.confirmationMethodsCount === 0 ||
|
||||
this.confirmationMethod !== 'code' ||
|
||||
this.confirmationCode.length > 0
|
||||
|
||||
return !usernameOK || !passwordOK || !passwordsMatch || !codeOk
|
||||
},
|
||||
confirmationMethodsCount() {
|
||||
const methods = [
|
||||
this.g.settings.userActivationByEmail,
|
||||
this.g.settings.userActivationByPayment,
|
||||
this.g.settings.userActivationByInvitationCode
|
||||
]
|
||||
return methods.filter(Boolean).length
|
||||
}
|
||||
},
|
||||
created() {}
|
||||
|
||||
@@ -4,7 +4,9 @@ window.app.component('lnbits-admin-users', {
|
||||
data() {
|
||||
return {
|
||||
formAddUser: '',
|
||||
formAddAdmin: ''
|
||||
formAddAdmin: '',
|
||||
formAddActivationCode: '',
|
||||
showReusableActivationCode: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -31,6 +33,24 @@ window.app.component('lnbits-admin-users', {
|
||||
removeAdminUser(user) {
|
||||
let admin_users = this.formData.lnbits_admin_users
|
||||
this.formData.lnbits_admin_users = admin_users.filter(u => u !== user)
|
||||
},
|
||||
addOneTimeActivationCode() {
|
||||
const code = this.formAddActivationCode
|
||||
const activationCodes =
|
||||
this.formData.lnbits_register_one_time_activation_codes
|
||||
if (code?.length && !activationCodes.includes(code)) {
|
||||
this.formData.lnbits_register_one_time_activation_codes = [
|
||||
...activationCodes,
|
||||
code
|
||||
]
|
||||
this.formAddActivationCode = ''
|
||||
}
|
||||
},
|
||||
removeOneTimeActivationCode(code) {
|
||||
const codes = this.formData.lnbits_register_one_time_activation_codes
|
||||
this.formData.lnbits_register_one_time_activation_codes = codes.filter(
|
||||
u => u !== code
|
||||
)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -11,6 +11,7 @@ window.PageHome = {
|
||||
email: '',
|
||||
password: '',
|
||||
passwordRepeat: '',
|
||||
invitationCode: '',
|
||||
walletName: '',
|
||||
signup: false
|
||||
}
|
||||
@@ -40,6 +41,7 @@ window.PageHome = {
|
||||
this.username = null
|
||||
this.password = null
|
||||
this.passwordRepeat = null
|
||||
this.invitationCode = null
|
||||
|
||||
this.authAction = 'register'
|
||||
this.authMethod = authMethod
|
||||
@@ -51,7 +53,8 @@ window.PageHome = {
|
||||
this.username,
|
||||
this.email,
|
||||
this.password,
|
||||
this.passwordRepeat
|
||||
this.passwordRepeat,
|
||||
this.invitationCode
|
||||
)
|
||||
this.refreshAuthUser()
|
||||
} catch (e) {
|
||||
|
||||
Reference in New Issue
Block a user