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
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