Private key save and fogot to sidebar
This commit is contained in:
parent
2a1849d027
commit
8fd2af1870
5 changed files with 57 additions and 7 deletions
|
@ -126,7 +126,7 @@ class UiWebsocketPlugin(object):
|
|||
<li>
|
||||
<label>
|
||||
{_[Peers]}
|
||||
<small><a href='{copy_link}' id='link-copypeers' class='link-right'>{_[Copy to clipboard]}</a></small>
|
||||
<small class="label-right"><a href='{copy_link}' id='link-copypeers' class='link-right'>{_[Copy to clipboard]}</a></small>
|
||||
</label>
|
||||
<ul class='graph'>
|
||||
<li style='width: 100%' class='total back-black' title="{_[Total peers]}"></li>
|
||||
|
@ -174,7 +174,7 @@ class UiWebsocketPlugin(object):
|
|||
<li>
|
||||
<label>
|
||||
{_[Files]}
|
||||
<small><a href='#Site+directory' id='link-directory' class='link-right'>{_[Open site directory]}</a>
|
||||
<small class="label-right"><a href='#Site+directory' id='link-directory' class='link-right'>{_[Open site directory]}</a>
|
||||
<a href='/ZeroNet-Internal/Zip?address={site.address}' id='link-zip' class='link-right' download='site.zip'>{_[Save as .zip]}</a></small>
|
||||
</label>
|
||||
<ul class='graph graph-stacked'>
|
||||
|
@ -480,9 +480,15 @@ class UiWebsocketPlugin(object):
|
|||
"""))
|
||||
|
||||
def sidebarRenderContents(self, body, site):
|
||||
has_privatekey = bool(self.user.getSiteData(site.address).get("privatekey"))
|
||||
if has_privatekey:
|
||||
tag_privatekey = _(u"{_[Private key saved.]} <a href='#Forgot+private+key' id='privatekey-forgot' class='link-right'>{_[Forgot]}</a>")
|
||||
else:
|
||||
tag_privatekey = _(u"<a href='#Add+private+key' id='privatekey-add' class='link-right'>{_[Add saved private key]}</a>")
|
||||
|
||||
body.append(_(u"""
|
||||
<li>
|
||||
<label>{_[Content publishing]}</label>
|
||||
<label>{_[Content publishing]} <small class='label-right'>{tag_privatekey}</small></label>
|
||||
"""))
|
||||
|
||||
# Choose content you want to sign
|
||||
|
@ -709,6 +715,17 @@ class UiWebsocketPlugin(object):
|
|||
self.site.settings["own"] = bool(owned)
|
||||
self.site.updateWebsocket(owned=owned)
|
||||
|
||||
def actionUserSetSitePrivatekey(self, to, privatekey):
|
||||
permissions = self.getPermissions(to)
|
||||
if "ADMIN" not in permissions:
|
||||
return self.response(to, "You don't have permission to run this command")
|
||||
|
||||
site_data = self.user.sites[self.site.address]
|
||||
site_data["privatekey"] = privatekey
|
||||
self.site.updateWebsocket(set_privatekey=bool(privatekey))
|
||||
|
||||
return "ok"
|
||||
|
||||
def actionSiteSetAutodownloadoptional(self, to, owned):
|
||||
permissions = self.getPermissions(to)
|
||||
if "ADMIN" not in permissions:
|
||||
|
|
|
@ -202,6 +202,19 @@ class Sidebar extends Class
|
|||
return true
|
||||
}
|
||||
|
||||
# Save and forgot privatekey for site signing
|
||||
@tag.find("#privatekey-add").off("click, touchend").on "click touchend", (e) =>
|
||||
@wrapper.displayPrompt "Enter your private key:", "password", "Save", "", (privatekey) =>
|
||||
@wrapper.ws.cmd "userSetSitePrivatekey", [privatekey], (res) =>
|
||||
@wrapper.notifications.add "privatekey", "done", "Private key saved for site signing", 5000
|
||||
return false
|
||||
|
||||
@tag.find("#privatekey-forgot").off("click, touchend").on "click touchend", (e) =>
|
||||
@wrapper.ws.cmd "userSetSitePrivatekey", [""], (res) =>
|
||||
@wrapper.notifications.add "privatekey", "done", "Saved private key removed", 5000
|
||||
return false
|
||||
|
||||
|
||||
|
||||
animDrag: (e) =>
|
||||
mousex = e.pageX
|
||||
|
|
|
@ -12,7 +12,8 @@
|
|||
.body-sidebar iframe { transform: rotateY(5deg); opacity: 0.8; pointer-events: none; outline: 1px solid transparent }
|
||||
.body-internals iframe { transform: rotateX(5deg); opacity: 0.8; pointer-events: none; outline: 1px solid transparent }
|
||||
|
||||
.sidebar .link-right { color: white; text-decoration: none; border-bottom: 1px solid #666; text-transform: uppercase; float: right; margin-right: 7px; margin-top: 1px; }
|
||||
.sidebar .label-right { float: right; margin-right: 7px; margin-top: 1px; float: right; }
|
||||
.sidebar .link-right { color: white; text-decoration: none; border-bottom: 1px solid #666; text-transform: uppercase; }
|
||||
.sidebar .link-right:hover { border-color: #CCC; }
|
||||
.sidebar .link-right:active { background-color: #444 }
|
||||
/* SIDEBAR */
|
||||
|
|
|
@ -113,7 +113,8 @@
|
|||
.body-sidebar iframe { -webkit-transform: rotateY(5deg); -moz-transform: rotateY(5deg); -o-transform: rotateY(5deg); -ms-transform: rotateY(5deg); transform: rotateY(5deg) ; opacity: 0.8; pointer-events: none; outline: 1px solid transparent }
|
||||
.body-internals iframe { -webkit-transform: rotateX(5deg); -moz-transform: rotateX(5deg); -o-transform: rotateX(5deg); -ms-transform: rotateX(5deg); transform: rotateX(5deg) ; opacity: 0.8; pointer-events: none; outline: 1px solid transparent }
|
||||
|
||||
.sidebar .link-right { color: white; text-decoration: none; border-bottom: 1px solid #666; text-transform: uppercase; float: right; margin-right: 7px; margin-top: 1px; }
|
||||
.sidebar .label-right { float: right; margin-right: 7px; margin-top: 1px; float: right; }
|
||||
.sidebar .link-right { color: white; text-decoration: none; border-bottom: 1px solid #666; text-transform: uppercase; }
|
||||
.sidebar .link-right:hover { border-color: #CCC; }
|
||||
.sidebar .link-right:active { background-color: #444 }
|
||||
/* SIDEBAR */
|
||||
|
|
|
@ -584,9 +584,9 @@ window.initScrollable = function () {
|
|||
this.log("Creating content");
|
||||
this.container.addClass("loaded");
|
||||
morphdom(this.tag.find(".content")[0], '<div class="content">' + res + '</div>');
|
||||
return this.when_loaded.resolve();
|
||||
this.when_loaded.resolve();
|
||||
} else {
|
||||
return morphdom(this.tag.find(".content")[0], '<div class="content">' + res + '</div>', {
|
||||
morphdom(this.tag.find(".content")[0], '<div class="content">' + res + '</div>', {
|
||||
onBeforeMorphEl: function(from_el, to_el) {
|
||||
if (from_el.className === "globe" || from_el.className.indexOf("noupdate") >= 0) {
|
||||
return false;
|
||||
|
@ -596,6 +596,24 @@ window.initScrollable = function () {
|
|||
}
|
||||
});
|
||||
}
|
||||
this.tag.find("#privatekey-add").off("click, touchend").on("click touchend", (function(_this) {
|
||||
return function(e) {
|
||||
_this.wrapper.displayPrompt("Enter your private key:", "password", "Save", "", function(privatekey) {
|
||||
return _this.wrapper.ws.cmd("userSetSitePrivatekey", [privatekey], function(res) {
|
||||
return _this.wrapper.notifications.add("privatekey", "done", "Private key saved for site signing", 5000);
|
||||
});
|
||||
});
|
||||
return false;
|
||||
};
|
||||
})(this));
|
||||
return this.tag.find("#privatekey-forgot").off("click, touchend").on("click touchend", (function(_this) {
|
||||
return function(e) {
|
||||
_this.wrapper.ws.cmd("userSetSitePrivatekey", [""], function(res) {
|
||||
return _this.wrapper.notifications.add("privatekey", "done", "Saved private key removed", 5000);
|
||||
});
|
||||
return false;
|
||||
};
|
||||
})(this));
|
||||
};
|
||||
|
||||
Sidebar.prototype.animDrag = function(e) {
|
||||
|
|
Loading…
Reference in a new issue