diff --git a/plugins/MergerSite/MergerSitePlugin.py b/plugins/MergerSite/MergerSitePlugin.py
index 49aeebe2..f030ce07 100644
--- a/plugins/MergerSite/MergerSitePlugin.py
+++ b/plugins/MergerSite/MergerSitePlugin.py
@@ -199,6 +199,26 @@ class UiWebsocketPlugin(object):
if permission.startswith("Merger"):
self.site.storage.rebuildDb()
+ def actionPermissionDetails(self, to, permission):
+ if not permission.startswith("Merger"):
+ return super(UiWebsocketPlugin, self).actionPermissionDetails(to, permission)
+
+ merger_type = permission.replace("Merger:", "")
+ merged_sites = []
+ for address, merged_type in merged_db.iteritems():
+ if merged_type != merger_type:
+ continue
+ site = self.server.sites.get(address)
+ try:
+ merged_sites.append(site.content_manager.contents.get("content.json").get("title", address))
+ except Exception as err:
+ merged_sites.append(address)
+
+ details = _["Read and write permissions to sites with merged type of %s "] % merger_type
+ details += _["(%s sites)"] % len(merged_sites)
+ details += "
%s
" % ", ".join(merged_sites)
+ self.response(to, details)
+
@PluginManager.registerTo("UiRequest")
class UiRequestPlugin(object):
diff --git a/src/Config.py b/src/Config.py
index ad7d9a97..1ffa7939 100644
--- a/src/Config.py
+++ b/src/Config.py
@@ -10,7 +10,7 @@ class Config(object):
def __init__(self, argv):
self.version = "0.6.0"
- self.rev = 3112
+ self.rev = 3114
self.argv = argv
self.action = None
self.config_file = "zeronet.conf"
diff --git a/src/Ui/UiWebsocket.py b/src/Ui/UiWebsocket.py
index b97585e5..20005731 100644
--- a/src/Ui/UiWebsocket.py
+++ b/src/Ui/UiWebsocket.py
@@ -734,6 +734,12 @@ class UiWebsocket(object):
self.site.updateWebsocket(permission_removed=permission)
self.response(to, "ok")
+ def actionPermissionDetails(self, to, permission):
+ if permission == "ADMIN":
+ self.response(to, _["Modify your client's configuration and access all site"] + " " + _["(Dangerous!)"] + "")
+ else:
+ self.response(to, "")
+
# Set certificate that used for authenticate user for site
def actionCertSet(self, to, domain):
self.user.setCert(self.site.address, domain)
diff --git a/src/Ui/media/Wrapper.coffee b/src/Ui/media/Wrapper.coffee
index 109ab57d..fbbe1e8c 100644
--- a/src/Ui/media/Wrapper.coffee
+++ b/src/Ui/media/Wrapper.coffee
@@ -197,9 +197,10 @@ class Wrapper
actionPermissionAdd: (message) ->
permission = message.params
- @displayConfirm "This site requests permission:" + " #{@toHtmlSafe(permission)}", "Grant", =>
- @ws.cmd "permissionAdd", permission, =>
- @sendInner {"cmd": "response", "to": message.id, "result": "Granted"}
+ @ws.cmd "permissionDetails", permission, (permission_details) =>
+ @displayConfirm "This site requests permission:" + " #{@toHtmlSafe(permission)}" + "
#{permission_details}", "Grant", =>
+ @ws.cmd "permissionAdd", permission, =>
+ @sendInner {"cmd": "response", "to": message.id, "result": "Granted"}
actionNotification: (message) ->
message.params = @toHtmlSafe(message.params) # Escape html
diff --git a/src/Ui/media/all.js b/src/Ui/media/all.js
index 1f347a57..8a5fa48b 100644
--- a/src/Ui/media/all.js
+++ b/src/Ui/media/all.js
@@ -1076,13 +1076,15 @@ jQuery.extend( jQuery.easing,
Wrapper.prototype.actionPermissionAdd = function(message) {
var permission;
permission = message.params;
- return this.displayConfirm("This site requests permission:" + (" " + (this.toHtmlSafe(permission)) + ""), "Grant", (function(_this) {
- return function() {
- return _this.ws.cmd("permissionAdd", permission, function() {
- return _this.sendInner({
- "cmd": "response",
- "to": message.id,
- "result": "Granted"
+ return this.ws.cmd("permissionDetails", permission, (function(_this) {
+ return function(permission_details) {
+ return _this.displayConfirm("This site requests permission:" + (" " + (_this.toHtmlSafe(permission)) + "") + ("
" + permission_details + ""), "Grant", function() {
+ return _this.ws.cmd("permissionAdd", permission, function() {
+ return _this.sendInner({
+ "cmd": "response",
+ "to": message.id,
+ "result": "Granted"
+ });
});
});
};