X-Git-Url: https://scm.cri.ensmp.fr/git/Plinn.git/blobdiff_plain/3c4367d8e03450e9a73e61f4247145d2b6c86a33..959d888c17d1403d2eeecc19bc4b5e2c8d1debf6:/Products/Plinn/userlanguages.py diff --git a/Products/Plinn/userlanguages.py b/Products/Plinn/userlanguages.py new file mode 100644 index 0000000..d108c40 --- /dev/null +++ b/Products/Plinn/userlanguages.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +from zope.publisher.browser import BrowserLanguages +from Products.CMFCore.utils import getUtilityByInterfaceName +from zope.component.interfaces import ComponentLookupError + +class AuthenticatedUserLanguages(BrowserLanguages): + + def getPreferredLanguages(self) : + try : + mtool = getUtilityByInterfaceName('Products.CMFCore.interfaces.IMembershipTool') + except ComponentLookupError : + return super(AuthenticatedUserLanguages, self).getPreferredLanguages() + if mtool.isAnonymousUser() : + return super(AuthenticatedUserLanguages, self).getPreferredLanguages() + else : + m = mtool.getAuthenticatedMember() + userLangs = m.getProperty('preferred_languages', [])[:] + return userLangs or super(AuthenticatedUserLanguages, self).getPreferredLanguages()