def _serialize_member(self, member, request, allowed_roles=None):
        context = serialize(member,
                            serializer=OrganizationMemberWithTeamsSerializer())

        if request.access.has_scope('member:admin'):
            context['invite_link'] = member.get_invite_link()

        context['roles'] = serialize(roles.get_all(),
                                     serializer=RoleSerializer(),
                                     allowed_roles=allowed_roles)

        return context
    def _serialize_member(self, member, request, allowed_roles=None):
        context = serialize(member, serializer=OrganizationMemberWithTeamsSerializer())

        if request.access.has_scope("member:admin"):
            context["invite_link"] = member.get_invite_link()
            context["user"] = serialize(member.user, request.user, DetailedUserSerializer())

        context["isOnlyOwner"] = self.is_only_owner(member)
        context["roles"] = serialize(
            roles.get_all(), serializer=RoleSerializer(), allowed_roles=allowed_roles
        )

        return context
    def get(self, request, organization, member_id):
        """Currently only returns allowed invite roles for member invite"""

        try:
            member = self._get_member(request, organization, member_id)
        except OrganizationMember.DoesNotExist:
            raise ResourceDoesNotExist

        _, allowed_roles = get_allowed_roles(request, organization, member)

        allowed_roles = [{
            'role': serialize(r, serializer=RoleSerializer()),
            'allowed': r in allowed_roles
        } for r in roles.get_all()]

        context = serialize(member, )

        context['allowed_roles'] = allowed_roles

        return Response(context)