Restrict blocked site addition when using mergerSiteAdd

This commit is contained in:
shortcutme 2019-09-28 17:02:27 +02:00
parent b21b885aa9
commit 43c366d2fb
No known key found for this signature in database
GPG Key ID: 5B63BAE6CB9613AE
3 changed files with 18 additions and 2 deletions

View File

@ -25,6 +25,13 @@ class SiteManagerPlugin(object):
super(SiteManagerPlugin, self).load(*args, **kwargs)
filter_storage = ContentFilterStorage(site_manager=self)
def add(self, address, *args, **kwargs):
if filter_storage.isSiteblocked(address):
details = filter_storage.getSiteblockDetails(address)
raise Exception("Site blocked: %s" % html.escape(details.get("reason", "unknown reason")))
else:
return super(SiteManagerPlugin, self).add(address, *args, **kwargs)
@PluginManager.registerTo("UiWebsocket")
class UiWebsocketPlugin(object):

View File

@ -120,6 +120,12 @@ class ContentFilterStorage(object):
else:
return False
def getSiteblockDetails(self, address):
details = self.file_content["siteblocks"].get(address)
if not details:
details = self.include_filters["siteblocks"].get(address)
return details
# Search and remove or readd files of an user
def changeDbs(self, auth_address, action):
self.log.debug("Mute action %s on user %s" % (action, auth_address))

View File

@ -79,8 +79,11 @@ class UiWebsocketPlugin(object):
def cbMergerSiteAdd(self, to, addresses):
added = 0
for address in addresses:
added += 1
site_manager.need(address)
try:
site_manager.need(address)
added += 1
except Exception as err:
self.cmd("notification", ["error", _["Adding <b>%s</b> failed: %s"] % (address, err)])
if added:
self.cmd("notification", ["done", _["Added <b>%s</b> new site"] % added, 5000])
RateLimit.called(self.site.address + "-MergerSiteAdd")