Display confirmation if zeroid already exists

This commit is contained in:
HelloZeroNet 2016-04-09 19:49:12 +02:00
parent 561bd80aa3
commit 9bb0a0d91b
4 changed files with 40 additions and 6 deletions

View File

@ -477,11 +477,28 @@ class UiWebsocket(object):
["done", "New certificate added: <b>%s/%s@%s</b>." % (auth_type, auth_user_name, domain)]
)
self.response(to, "ok")
elif res is False:
# Display confirmation of change
cert_current = self.user.certs[domain]
body = "You current certificate: <b>%s/%s@%s</b>" % (cert_current["auth_type"], cert_current["auth_user_name"], domain)
#body += "<br>Do you want to change it to: <b>%s/%s@%s</b>?" % (auth_type, auth_user_name, domain)
self.cmd("confirm", [body, "Change it to %s/%s@%s" % (auth_type, auth_user_name, domain)],
lambda (res): self.cbCertAddConfirm(to, domain, auth_type, auth_user_name, cert)
)
else:
self.response(to, "Not changed")
except Exception, err:
self.response(to, {"error": err.message})
def cbCertAddConfirm(self, to, domain, auth_type, auth_user_name, cert):
self.user.deleteCert(domain)
self.user.addCert(self.user.getAuthAddress(self.site.address), domain, auth_type, auth_user_name, cert)
self.cmd(
"notification",
["done", "Certificate changed to: <b>%s/%s@%s</b>." % (auth_type, auth_user_name, domain)]
)
self.response(to, "ok")
# Select certificate for site
def actionCertSelect(self, to, accepted_domains=[]):
accounts = []

View File

@ -56,6 +56,9 @@ class Wrapper
else if cmd == "prompt" # Prompt input
@displayPrompt message.params[0], message.params[1], message.params[2], (res) =>
@ws.response message.id, res
else if cmd == "confirm" # Confirm action
@displayConfirm message.params[0], message.params[1], (res) =>
@ws.response message.id, res
else if cmd == "setSiteInfo"
@sendInner message # Pass to inner frame
if message.params.address == @address # Current page
@ -173,7 +176,9 @@ class Wrapper
displayConfirm: (message, caption, cb) ->
body = $("<span class='message'>"+message+"</span>")
button = $("<a href='##{caption}' class='button button-#{caption}'>#{caption}</a>") # Add confirm button
button.on "click", cb
button.on "click", =>
cb(true)
return false
body.append(button)
@notifications.add("notification-#{caption}", "ask", body)

View File

@ -830,6 +830,12 @@ jQuery.extend( jQuery.easing,
return _this.ws.response(message.id, res);
};
})(this));
} else if (cmd === "confirm") {
return this.displayConfirm(message.params[0], message.params[1], (function(_this) {
return function(res) {
return _this.ws.response(message.id, res);
};
})(this));
} else if (cmd === "setSiteInfo") {
this.sendInner(message);
if (message.params.address === this.address) {
@ -972,7 +978,12 @@ jQuery.extend( jQuery.easing,
var body, button;
body = $("<span class='message'>" + message + "</span>");
button = $("<a href='#" + caption + "' class='button button-" + caption + "'>" + caption + "</a>");
button.on("click", cb);
button.on("click", (function(_this) {
return function() {
cb(true);
return false;
};
})(this));
body.append(button);
this.notifications.add("notification-" + caption, "ask", body);
button.focus();

View File

@ -110,10 +110,7 @@ class User(object):
}
# Check if we have already cert for that domain and its not the same
if self.certs.get(domain) and self.certs[domain] != cert_node:
raise Exception(
"You already have certificate for this domain: %s/%s@%s" %
(self.certs[domain]["auth_type"], self.certs[domain]["auth_user_name"], domain)
)
return False
elif self.certs.get(domain) == cert_node: # Same, not updated
return None
else: # Not exist yet, add
@ -121,6 +118,10 @@ class User(object):
self.save()
return True
# Remove cert from user
def deleteCert(self, domain):
del self.certs[domain]
# Set active cert for a site
def setCert(self, address, domain):
site_data = self.getSiteData(address)