Skip to content

Commit 2a7701d

Browse files
authored
call user_created plugin method for SCIM users (#2387)
* fixing test and using plugin directly * refactor * pass in empty dict to profile create
1 parent 86b33d4 commit 2a7701d

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

users/adapters.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from mitol.scim.adapters import UserAdapter
22

3-
from authentication.api import user_created_actions
3+
from authentication.hooks import get_plugin_manager
44
from profiles.models import Profile
55

66

@@ -40,13 +40,23 @@ def from_dict(self, d):
4040
self.obj.profile.name = d.get("fullName", d.get("name", ""))
4141
self.obj.profile.email_optin = d.get("emailOptIn", 1) == 1
4242

43+
def save(self):
44+
"""
45+
Save the user object and any related objects, such as the profile.
46+
"""
47+
newly_created = self.is_new_user
48+
super().save()
49+
if newly_created:
50+
pm = get_plugin_manager()
51+
hook = pm.hook
52+
hook.user_created(user=self.obj, user_data={})
53+
4354
def _save_related(self):
4455
"""
4556
Save models related to the user
4657
"""
4758
self.obj.profile.user = self.obj
4859
self.obj.profile.save()
49-
user_created_actions(user=self.obj, details=self.to_dict(), is_new=True)
5060

5161
def _handle_replace_nested_path(self, nested_path, nested_value):
5262
"""Per-path replacement handling"""

users/adapters_test.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,12 @@ def test_save_related_creates_profile_and_favorites_if_missing(mocker, settings)
1111
Test that saving a LearnUserAdapter creates a profile and default favorites list
1212
"""
1313
settings.MITOL_AUTHENTICATION_PLUGINS = "learning_resources.plugins.FavoritesListPlugin,profiles.plugins.CreateProfilePlugin"
14-
user = UserFactory()
1514

15+
# simulate a new and blank unsaved user
16+
user = UserFactory.create()
17+
user.scim_id = None
18+
user.global_id = None
19+
user.id = None
1620
scimUser = LearnUserAdapter(user)
1721
scimUser.request = RequestFactory()
1822
scimUser.obj.request = RequestFactory()

0 commit comments

Comments
 (0)