[2466] | 1 | import logging |
---|
| 2 | from zope.component import getSiteManager |
---|
| 3 | |
---|
| 4 | logger = logging.getLogger('quintagroup.plonecaptchas') |
---|
| 5 | |
---|
[3160] | 6 | |
---|
[3270] | 7 | def registerDiscussionLayer(context): |
---|
| 8 | """ Register browser layer for extending discussion |
---|
[3279] | 9 | with quintagroup captcha |
---|
[2466] | 10 | """ |
---|
[3270] | 11 | from quintagroup.plonecaptchas.interfaces import IQGDiscussionCaptchas |
---|
| 12 | from plone.browserlayer.utils import register_layer |
---|
| 13 | name = "QGCaptchaDiscussionLayer" |
---|
| 14 | site = getSiteManager(context) |
---|
| 15 | register_layer(IQGDiscussionCaptchas, name, site_manager=site) |
---|
| 16 | |
---|
| 17 | |
---|
| 18 | def removeBrowserLayers(site): |
---|
| 19 | """ Remove browser layers. |
---|
| 20 | """ |
---|
[2466] | 21 | from plone.browserlayer.utils import unregister_layer |
---|
| 22 | from plone.browserlayer.interfaces import ILocalBrowserLayerType |
---|
| 23 | |
---|
[3270] | 24 | layers = ["quintagroup.plonecaptchas", "QGCapchaDiscussionLayer"] |
---|
[2466] | 25 | site = getSiteManager(site) |
---|
| 26 | registeredLayers = [r.name for r in site.registeredUtilities() |
---|
| 27 | if r.provided == ILocalBrowserLayerType] |
---|
[3270] | 28 | for name in layers: |
---|
| 29 | if name in registeredLayers: |
---|
| 30 | unregister_layer(name, site_manager=site) |
---|
[3279] | 31 | logger.log(logging.INFO, |
---|
| 32 | "Unregistered \"%s\" browser layer." % name) |
---|
[2466] | 33 | |
---|
[3160] | 34 | |
---|
[2466] | 35 | def uninstall(context): |
---|
| 36 | """ Do customized uninstallation. |
---|
| 37 | """ |
---|
[2469] | 38 | if context.readDataFile('qgplonecaptchas_uninstall.txt') is None: |
---|
[2466] | 39 | return |
---|
| 40 | site = context.getSite() |
---|
[3270] | 41 | removeBrowserLayers(site) |
---|