def getMemberById(self, id): ''' Returns the given member. ''' stack = inspect.stack() upstream_callers = '/'.join([a[3] for a in stack]) # If the requested callers is in the whitelist if upstream_callers in WHITELISTED_CALLERS: user = get_safe_member_by_id(id) if user is not None: user_towrap = PropertiedUser(id) user_towrap.addPropertysheet('omega13', user) user = self.wrapUser(user_towrap) return user # If the user is not on the new catalog, then fallback anyway if api.env.debug_mode(): # import ipdb;ipdb.set_trace() genweb_log.warning('') genweb_log.warning('Warning! Using getMemberById') genweb_log.warning('from: {}'.format(upstream_callers)) genweb_log.warning('') user = self._huntUser(id, self) if user is not None: user = self.wrapUser(user) return user
def getMemberById(self, id): ''' Returns the given member. ''' stack = inspect.stack() upstream_callers = '/'.join([a[3] for a in stack]) # If the requested callers is in the whitelist if upstream_callers in WHITELISTED_CALLERS: user = get_safe_member_by_id(id) if user is not None: user_towrap = PropertiedUser(id) # As we added the key 'id' into the local user catalog, we need to # get rid of the get_safe_member_by_id result to make # addPropertyShit (pun intended) happy user.pop('id', None) user_towrap.addPropertysheet('omega13', user) user = self.wrapUser(user_towrap) return user # If the user is not on the new catalog, then fallback anyway if api.env.debug_mode(): genweb_log.warning('') genweb_log.warning('Warning! Using getMemberById') genweb_log.warning('from: {}'.format(upstream_callers)) genweb_log.warning('') user = self._huntUser(id, self) if user is not None: user = self.wrapUser(user) return user
def update(self): self.portal_state = getMultiAdapter((self.context, self.request), name=u'plone_portal_state') self.site_url = self.portal_state.portal_url() self.navigation_root_url = self.portal_state.navigation_root_url() context = aq_inner(self.context) context_state = getMultiAdapter((context, self.request), name=u'plone_context_state') self.user_actions = context_state.actions('user') self.anonymous = self.portal_state.anonymous() if not self.anonymous: member = self.portal_state.member() userid = member.getId() self.homelink_url = "%s/useractions" % self.navigation_root_url # Use the local catalog instead of getMemberById member_info = get_safe_member_by_id(userid) # member_info is None if there's no Plone user object, as when # using OpenID. if member_info: fullname = member_info.get('fullname', '') else: fullname = None if fullname: self.user_name = fullname else: self.user_name = userid
def publishTraverse(self, request, name): if self.username is None: # ../profile/username self.username = name self.user_info = api.user.get(self.username) member_info = get_safe_member_by_id(self.user_info.id) self.user_fullname = member_info.get('fullname', '') else: raise NotFound(self, name, request) return self
def info(self, userid=None): user = get_safe_member_by_id(userid) if user is None: # No such member: removed? We return something useful anyway. return {'username': userid, 'description': '', 'language': '', 'home_page': '', 'name_or_id': userid, 'location': '', 'fullname': ''} user['name_or_id'] = user.get('fullname') or \ user.get('username') or userid return user
def has_complete_profile(self): if self.user_info: pm = api.portal.get_tool('portal_membership') portrait = pm.getPersonalPortrait(self.user_info.id) member_info = get_safe_member_by_id(self.user_info.id) typePortrait = portrait.__class__.__name__ changePortrait = typePortrait == 'Image' and portrait.size != 9715 and portrait.size != 4831 if member_info.get('fullname', False) \ and member_info.get('fullname', False) != self.username \ and member_info.get('email', False) \ and changePortrait: return True else: return False else: # The user doesn't have any property information for some weird # reason or simply beccause we are admin return False
def render(self): try: from plone.protect.interfaces import IDisableCSRFProtection alsoProvides(self.request, IDisableCSRFProtection) except: pass pc = api.portal.get_tool('portal_catalog') communities = pc.searchResults(portal_type='ulearn.community') permission_map = { 'readers': 'reader', 'subscribed': 'writer', 'owners': 'owner' } for brain in communities: acl = dict(users=[], groups=[]) community = brain.getObject() adapter = community.adapted() logger.warn('{} -- {}'.format(community.id, community.absolute_url())) for old_role in permission_map: users = getattr(community, old_role) for username in users: acl['users'].append( dict(id=username, displayName=get_safe_member_by_id(username).get( 'fullname', u''), role=permission_map[old_role])) adapter.update_acl(acl) try: adapter.update_hub_subscriptions() except: pass logger.warn('migrated community {} with acl: {}'.format( community.absolute_url(), acl)) return 'Done'
def render(self): try: from plone.protect.interfaces import IDisableCSRFProtection alsoProvides(self.request, IDisableCSRFProtection) except: pass pc = api.portal.get_tool('portal_catalog') communities = pc.searchResults(portal_type='ulearn.community') permission_map = { 'readers': 'reader', 'subscribed': 'writer', 'owners': 'owner' } for brain in communities: acl = dict(users=[], groups=[]) community = brain.getObject() adapter = community.adapted() logger.warn('{} -- {}'.format(community.id, community.absolute_url())) for old_role in permission_map: users = getattr(community, old_role) for username in users: acl['users'].append(dict(id=username, displayName=get_safe_member_by_id(username).get('fullname', u''), role=permission_map[old_role])) adapter.update_acl(acl) try: adapter.update_hub_subscriptions() except: pass logger.warn('migrated community {} with acl: {}'.format(community.absolute_url(), acl)) return 'Done'
def __init__(self, context, request, view, manager, data): super(Renderer, self).__init__(context, request, view, manager, data) self.username = api.user.get_current().id self.user_info = get_safe_member_by_id(self.username) self.portal_url = api.portal.get().absolute_url()
def author(self): return get_safe_member_by_id(self.creator())