Implement updating registration via API
This commit is contained in:
43
api/views.py
43
api/views.py
@@ -6,7 +6,7 @@ from klein import Klein
|
||||
from twisted.web.server import Request
|
||||
|
||||
import main
|
||||
from modules import chankeep, helpers, provision, userinfo
|
||||
from modules import chankeep, helpers, provision, regproc, userinfo
|
||||
from modules.network import Network
|
||||
from utils.logging.log import warn
|
||||
|
||||
@@ -207,6 +207,7 @@ class API(object):
|
||||
network["port"] = inst.port
|
||||
network["security"] = inst.security
|
||||
network["relays"] = len(inst.relays)
|
||||
network["chanlimit"] = inst.chanlimit
|
||||
network["channels"] = userinfo.getTotalChanNum(net)
|
||||
network["records"] = userinfo.getNumWhoEntries(net)
|
||||
return dumps(network)
|
||||
@@ -247,6 +248,14 @@ class API(object):
|
||||
if not port.isdigit():
|
||||
return dumps({"success": False, "reason": "invalid port: not a number."})
|
||||
port = int(port)
|
||||
elif item == "chanlimit":
|
||||
chanlimit = data[item][0]
|
||||
if chanlimit == "None":
|
||||
chanlimit = None
|
||||
elif not chanlimit.isdigit():
|
||||
return dumps({"success": False, "reason": "invalid chanlimit: not a number."})
|
||||
else:
|
||||
chanlimit = int(chanlimit)
|
||||
elif item == "security":
|
||||
security = data[item][0]
|
||||
if security not in ["ssl", "plain"]:
|
||||
@@ -256,6 +265,7 @@ class API(object):
|
||||
inst.last = last
|
||||
inst.port = port
|
||||
inst.security = security
|
||||
inst.chanlimit = chanlimit
|
||||
main.saveConf("network")
|
||||
|
||||
return dumps({"success": True})
|
||||
@@ -535,3 +545,34 @@ class API(object):
|
||||
if name not in main.IRCPool.keys():
|
||||
return dumps({"success": False, "reason": f"relay {num} not on {net}"})
|
||||
return dumps({"nickname": main.IRCPool[name].nickname})
|
||||
|
||||
@app.route("/irc/reg/<net>/", methods=["GET"])
|
||||
@login_required
|
||||
def irc_get_unreg_net(self, request, net):
|
||||
if net not in main.network.keys():
|
||||
return dumps({"success": False, "reason": "no such net."})
|
||||
unreg = regproc.get_unregistered_relays(net)
|
||||
return dumps({"success": True, "unreg": unreg})
|
||||
|
||||
@app.route("/irc/reg/", methods=["GET"])
|
||||
@login_required
|
||||
def irc_get_unreg(self, request):
|
||||
unreg = regproc.get_unregistered_relays()
|
||||
return dumps({"success": True, "unreg": unreg})
|
||||
|
||||
@app.route("/irc/reg/", methods=["PUT"])
|
||||
@login_required
|
||||
def irc_confirm_accounts(self, request):
|
||||
try:
|
||||
data = loads(request.content.read())
|
||||
except JSONDecodeError:
|
||||
return "Invalid JSON"
|
||||
for item, token in data.items():
|
||||
if "|" not in item:
|
||||
return dumps({"success": False, "reason": f"malformed item: {item}"})
|
||||
spl = item.split("|")
|
||||
if not len(spl) == 2:
|
||||
return dumps({"success": False, "reason": f"malformed item: {item}"})
|
||||
net, num = spl
|
||||
regproc.confirmAccount(net, num, token)
|
||||
return dumps({"success": True})
|
||||
|
||||
Reference in New Issue
Block a user