def apply_getPersonalPortrait_patch(): LOGGER.info('Patching Products.PlonePAS.tools.membership.MembershipTool' '.getPersonalPortrait for generating a default portrait') from Products.PlonePAS.tools.membership import MembershipTool getPersonalPortrait = MembershipTool.getPersonalPortrait def getPersonalPortraitWrapper(self, id=None, verifyPermission=0): create_default_avatar(id or self.getAuthenticatedMember().getId()) return getPersonalPortrait(self, id=id, verifyPermission=verifyPermission) MembershipTool.getPersonalPortrait = getPersonalPortraitWrapper
from random import random from zope.component.hooks import getSite from zope.interface import implements import os.path from PIL.ImageFont import _imagingft_not_installed from PIL.ImageFont import core if core.__class__ is _imagingft_not_installed: FREETYPE_MISSING = ( 'The "_imagingft" C module is not installed, ' ' which is part of "freetype".' ' Install the freetype library and reinstall Pillow with' ' freetype support.' ' The avatar generation is disabled now.') LOGGER.error(FREETYPE_MISSING) else: FREETYPE_MISSING = False class DefaultAvatarGenerator(object): implements(IAvatarGenerator) # The resulting image size (square_size * square_size) square_size = 220 def generate(self, userid, output_stream): if FREETYPE_MISSING: return False image = Image.new('RGBA', (self.square_size, self.square_size), self.background_color())
def apply_member_image_scale_patch(): LOGGER.info('Patching maximum member scale in Products.PlonePAS.config' ' to %s' % str(MEMBER_IMAGE_SCALE)) from Products.PlonePAS import config config.MEMBER_IMAGE_SCALE = MEMBER_IMAGE_SCALE config.IMAGE_SCALE_PARAMS['scale'] = MEMBER_IMAGE_SCALE
from Products.CMFCore.utils import getToolByName from random import random from zope.component.hooks import getSite from zope.interface import implements import os.path from PIL.ImageFont import _imagingft_not_installed from PIL.ImageFont import core if core.__class__ is _imagingft_not_installed: FREETYPE_MISSING = ( 'The "_imagingft" C module is not installed, ' ' which is part of "freetype".' ' Install the freetype library and reinstall Pillow with' ' freetype support.' ' The avatar generation is disabled now.') LOGGER.error(FREETYPE_MISSING) else: FREETYPE_MISSING = False class DefaultAvatarGenerator(object): implements(IAvatarGenerator) # The resulting image size (square_size * square_size) square_size = 220 def generate(self, userid, output_stream): if FREETYPE_MISSING: return False image = Image.new('RGBA', (self.square_size, self.square_size), self.background_color())