Fix provisioning with emails

This commit is contained in:
Mark Veidemanis 2022-07-21 13:39:46 +01:00
parent f88e6dec5a
commit e0f86ec853
Signed by: m
GPG Key ID: 5ACFCEED46C0904F
2 changed files with 11 additions and 4 deletions

View File

@ -5,7 +5,7 @@ from twisted.internet import reactor
import modules.regproc import modules.regproc
def provisionUserNetworkData(num, nick, altnick, ident, realname, network, host, port, security, auth, password): def provisionUserNetworkData(num, nick, altnick, emails, ident, realname, network, host, port, security, auth, password):
commands = {} commands = {}
stage2commands = {} stage2commands = {}
stage2commands["status"] = [] stage2commands["status"] = []

View File

@ -3,7 +3,7 @@ from modules import provision
from utils.logging.log import * from utils.logging.log import *
from utils.logging.debug import * from utils.logging.debug import *
from copy import deepcopy from copy import deepcopy
from random import choice
def needToRegister(net): def needToRegister(net):
inst = selectInst(net) inst = selectInst(net)
@ -28,16 +28,23 @@ def selectInst(net):
def substitute(net, num, token=None): def substitute(net, num, token=None):
inst = selectInst(net) inst = selectInst(net)
alias = main.alias[num] alias = main.alias[num]
if "emails" in inst:
# First priority is explicit email lists
email = choice(alias["emails"])
elif "domains" in inst:
domain = choice(inst["domains"])
email = f"{alias['nickname']}@{domain}"
print("Constructed email: {email}")
nickname = alias["nick"] nickname = alias["nick"]
username = nickname + "/" + net username = nickname + "/" + net
password = main.network[net].aliases[num]["password"] password = main.network[net].aliases[num]["password"]
inst["email"] = inst["email"].replace("{nickname}", nickname) #inst["email"] = inst["email"].replace("{nickname}", nickname)
for i in inst.keys(): for i in inst.keys():
if not isinstance(inst[i], str): if not isinstance(inst[i], str):
continue continue
inst[i] = inst[i].replace("{nickname}", nickname) inst[i] = inst[i].replace("{nickname}", nickname)
inst[i] = inst[i].replace("{password}", password) inst[i] = inst[i].replace("{password}", password)
inst[i] = inst[i].replace("{email}", inst["email"]) inst[i] = inst[i].replace("{email}", email)
if token: if token:
inst[i] = inst[i].replace("{token}", token) inst[i] = inst[i].replace("{token}", token)
return inst return inst