Exemple #1
0
    def serialize(self, obj: OrganizationMember, attrs: Mapping[str, Any],
                  user: Any, **kwargs: Any) -> MutableMapping[str, JSONData]:
        d = {
            "id": str(obj.id),
            "email": obj.get_email(),
            "name":
            obj.user.get_display_name() if obj.user else obj.get_email(),
            "user": attrs["user"],
            "role": obj.role,
            "roleName": roles.get(obj.role).name,
            "pending": obj.is_pending,
            "expired": obj.token_expired,
            "flags": {
                "sso:linked":
                bool(getattr(obj.flags, "sso:linked")),
                "sso:invalid":
                bool(getattr(obj.flags, "sso:invalid")),
                "member-limit:restricted":
                bool(getattr(obj.flags, "member-limit:restricted")),
            },
            "dateCreated": obj.date_added,
            "inviteStatus": obj.get_invite_status_name(),
            "inviterName":
            obj.inviter.get_display_name() if obj.inviter else None,
        }

        if "externalUsers" in self.expand:
            d["externalUsers"] = attrs.get("externalUsers", [])

        return d
    def serialize(
        self, obj: OrganizationMember, attrs: Mapping[str, Any], user: Any, **kwargs: Any
    ) -> MutableMapping[str, JSONData]:

        d = {
            "schemas": [SCIM_SCHEMA_USER],
            "id": str(obj.id),
            "userName": obj.get_email(),  # TODO: does this get weird with secondary emails?
            "name": {"givenName": "N/A", "familyName": "N/A"},
            "emails": [
                {"primary": True, "value": obj.get_email(), "type": "work"}
            ],  # TODO: secondary emails?
            "active": True,
            "meta": {"resourceType": "User"},
        }
        return d
Exemple #3
0
    def serialize(
        self, obj: OrganizationMember, attrs: Mapping[str, Any], user: Any, **kwargs: Any
    ) -> OrganizationMemberSCIMSerializerResponse:

        result: OrganizationMemberSCIMSerializerResponse = {
            "schemas": [SCIM_SCHEMA_USER],
            "id": str(obj.id),
            "userName": obj.get_email(),
            "name": {"givenName": "N/A", "familyName": "N/A"},
            "emails": [{"primary": True, "value": obj.get_email(), "type": "work"}],
            "meta": {"resourceType": "User"},
        }
        if "active" in self.expand:
            result["active"] = True

        return result