@@ -77,25 +77,30 @@ def create(self, user: User):
77
77
if len (users_res ) < 1 :
78
78
raise exc
79
79
return SCIMProviderUser .objects .create (
80
- provider = self .provider , user = user , scim_id = users_res [0 ]["id" ]
80
+ provider = self .provider ,
81
+ user = user ,
82
+ scim_id = users_res [0 ]["id" ],
83
+ attributes = users_res [0 ],
81
84
)
82
85
else :
83
86
scim_id = response .get ("id" )
84
87
if not scim_id or scim_id == "" :
85
88
raise StopSync ("SCIM Response with missing or invalid `id`" )
86
89
return SCIMProviderUser .objects .create (
87
- provider = self .provider , user = user , scim_id = scim_id
90
+ provider = self .provider , user = user , scim_id = scim_id , attributes = response
88
91
)
89
92
90
93
def update (self , user : User , connection : SCIMProviderUser ):
91
94
"""Update existing user"""
92
95
scim_user = self .to_schema (user , connection )
93
96
scim_user .id = connection .scim_id
94
- self ._request (
97
+ response = self ._request (
95
98
"PUT" ,
96
99
f"/Users/{ connection .scim_id } " ,
97
100
json = scim_user .model_dump (
98
101
mode = "json" ,
99
102
exclude_unset = True ,
100
103
),
101
104
)
105
+ connection .attributes = response
106
+ connection .save ()
0 commit comments