コード例 #1
0
    def get_pending_invitations(self):
        portal = getToolByName(self.context, 'portal_url').getPortalObject()
        mtool = getToolByName(self.context, 'portal_membership')
        storage = IInvitationStorage(portal)

        mtool = getToolByName(self.context, 'portal_membership')
        member = mtool.getAuthenticatedMember()

        invitations = []
        for invitation in storage.get_invitations_for_context(self.context):
            inviter = mtool.getMemberById(invitation.inviter)
            if inviter:
                inviter_name = inviter.getProperty('fullname',
                                                   invitation.inviter)
            else:
                inviter_name = invitation.inviter

            item = dict(name=invitation.email,
                        roles=get_friendly_role_names(
                            invitation.roles, self.context, self.request),
                        inherited_roles=[],
                        inviter=inviter_name,
                        readonly=not member.getId() == invitation.inviter,
                        type_='invitations',
                        iid=invitation.iid)
            invitations.append(item)

        return invitations
コード例 #2
0
ファイル: quota.py プロジェクト: 4teamwork/ftw.participation
    def allowed_number_of_invitations(self):
        """Returns how many users can be invited on the context at the moment.
        Pending invitations are counted.

        """
        allowed = int(self.get_quota_limit())
        # subtract amount of local roles
        allowed -= len(self.context.get_local_roles())
        # subtract the amount of pending invitations
        storage = IInvitationStorage(self.context)
        allowed -= len(storage.get_invitations_for_context(self.context))
        return allowed