Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
    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
Ejemplo n.º 5
0
 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
Ejemplo n.º 6
0
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
Ejemplo n.º 7
0
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
Ejemplo n.º 8
0
    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
Ejemplo n.º 9
0
    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'
Ejemplo n.º 10
0
    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'
Ejemplo n.º 11
0
 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()
Ejemplo n.º 12
0
def author(self):
    return get_safe_member_by_id(self.creator())
Ejemplo n.º 13
0
def author(self):
    return get_safe_member_by_id(self.creator())