From 8cd7a634909a804d59f19360594f4ce55050d3f4 Mon Sep 17 00:00:00 2001 From: shortcutme Date: Mon, 15 Aug 2016 23:05:05 +0200 Subject: [PATCH] Rev1416, Remove merger permission from merged sites --- plugins/MergerSite/MergerSitePlugin.py | 19 +++++++++++++------ src/Config.py | 2 +- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/plugins/MergerSite/MergerSitePlugin.py b/plugins/MergerSite/MergerSitePlugin.py index 10aeff45..5d22285d 100644 --- a/plugins/MergerSite/MergerSitePlugin.py +++ b/plugins/MergerSite/MergerSitePlugin.py @@ -245,6 +245,8 @@ class SitePlugin(object): virtual_path = "merged-%s/%s/%s" % (merged_type, self.address, inner_path) for merger_site in merged_to_merger.get(self.address, []): + if merger_site.address == self.address: + continue merger_site.fileDone(virtual_path) def fileFailed(self, inner_path): @@ -254,6 +256,8 @@ class SitePlugin(object): virtual_path = "merged-%s/%s/%s" % (merged_type, self.address, inner_path) for merger_site in merged_to_merger.get(self.address, []): + if merger_site.address == self.address: + continue merger_site.fileFailed(virtual_path) @@ -268,21 +272,25 @@ class SiteManagerPlugin(object): merged_to_merger = {} site_manager = self for site in self.sites.itervalues(): + # Update merged sites + merged_type = site.content_manager.contents.get("content.json", {}).get("merged_type") + if merged_type: + merged_db[site.address] = merged_type + # Update merger sites for permission in site.settings["permissions"]: if not permission.startswith("Merger:"): continue + if merged_type: + self.log.error("Removing permission %s from %s: Merger and merged at the same time." % (permission, site.address)) + site.settings["permissions"].remove(permission) + continue merger_type = permission.replace("Merger:", "") if site.address not in merger_db: merger_db[site.address] = [] merger_db[site.address].append(merger_type) site_manager.sites[site.address] = site - # Update merged sites - merged_type = site.content_manager.contents.get("content.json", {}).get("merged_type") - if merged_type: - merged_db[site.address] = merged_type - # Update merged to merger if merged_type: for merger_site in self.sites.itervalues(): @@ -292,7 +300,6 @@ class SiteManagerPlugin(object): merged_to_merger[site.address].append(merger_site) self.log.debug("Updated merger sites in %.3fs" % (time.time() - s)) - def load(self, *args, **kwags): super(SiteManagerPlugin, self).load(*args, **kwags) self.updateMergerSites() diff --git a/src/Config.py b/src/Config.py index 019cd9c8..c9a349c4 100644 --- a/src/Config.py +++ b/src/Config.py @@ -8,7 +8,7 @@ class Config(object): def __init__(self, argv): self.version = "0.4.0" - self.rev = 1413 + self.rev = 1416 self.argv = argv self.action = None self.config_file = "zeronet.conf"