diff --git a/src/metabase/models/permissions_group.clj b/src/metabase/models/permissions_group.clj
index a66ff9da783604a517a7b1355f47af8083d49bad..5984eb2310057b20466903ab942b6273d205b192 100644
--- a/src/metabase/models/permissions_group.clj
+++ b/src/metabase/models/permissions_group.clj
@@ -106,10 +106,10 @@
 (t2/define-before-update :model/PermissionsGroup
   [group]
   (let [changes (t2/changes group)]
-   (u/prog1 group
-     (check-not-magic-group group)
-     (when-let [group-name (:name changes)]
-       (check-name-not-already-taken group-name)))))
+    (u/prog1 group
+      (check-not-magic-group group)
+      (when-let [group-name (:name changes)]
+        (check-name-not-already-taken group-name)))))
 
 ;;; ---------------------------------------------------- Util Fns ----------------------------------------------------
 
diff --git a/src/metabase/models/user.clj b/src/metabase/models/user.clj
index b29865c20c423474d13afb6238ad56a4de78d503..ecb0de60ad721f773c5767aebd99fdc5b8d8757d 100644
--- a/src/metabase/models/user.clj
+++ b/src/metabase/models/user.clj
@@ -91,17 +91,20 @@
 (t2/define-after-insert :model/User
   [{user-id :id, superuser? :is_superuser, :as user}]
   (u/prog1 user
-    ;; add the newly created user to the magic perms groups
-    (binding [perms-group-membership/*allow-changing-all-users-group-members* true]
-      (log/info (trs "Adding User {0} to All Users permissions group..." user-id))
-      (t2/insert! PermissionsGroupMembership
-        :user_id  user-id
-        :group_id (:id (perms-group/all-users))))
+    ;; add the newly created user to the magic perms groups.
+    (log/info (trs "Adding User {0} to All Users permissions group..." user-id))
     (when superuser?
-      (log/info (trs "Adding User {0} to Admin permissions group..." user-id))
-      (t2/insert! PermissionsGroupMembership
-        :user_id  user-id
-        :group_id (:id (perms-group/admin))))))
+      (log/info (trs "Adding User {0} to All Users permissions group..." user-id)))
+    (let [groups (filter some? [(perms-group/all-users)
+                                (when superuser? (perms-group/admin))])]
+      (binding [perms-group-membership/*allow-changing-all-users-group-members* true]
+        ;; do a 'simple' insert against the Table name so we don't trigger the after-insert behavior
+        ;; for [[metabase.models.permissions-group-membership]]... we don't want it recursively trying to update
+        ;; the user
+        (t2/insert! (t2/table-name :model/PermissionsGroupMembership)
+                    (for [group groups]
+                      {:user_id  user-id
+                       :group_id (u/the-id group)}))))))
 
 (t2/define-before-update :model/User
   [{:keys [id] :as user}]