@@ -30,70 +30,67 @@ function auth0Middleware() {
3030 try {
3131 const uid = agent . split ( "id/" ) [ 1 ]
3232 const user = new User ( uid )
33- user . getSelf ( ) . then ( async ( u ) => {
34- if ( ! u || ! u ?. profile ) {
35- const email = payload . name
33+ const u = await user . getSelf ( )
34+ if ( ! u || ! u ?. profile ) {
35+ const email = payload . name
3636
37- // Check if a temporary user exists with this email
38- let existingUser = null
39- try {
40- existingUser = await user . getByEmail ( email )
41- } catch ( err ) {
42- // No user found - that's fine, continue
43- }
37+ // Check if a temporary user exists with this email
38+ let existingUser = null
39+ try {
40+ existingUser = await user . getByEmail ( email )
41+ } catch ( err ) {
42+ // No user found - that's fine, continue
43+ }
4444
45- if ( existingUser && existingUser . inviteCode ) {
46- // Found a temporary user - merge their memberships into this new user
47- user . data = {
48- _id : uid ,
49- agent,
50- _sub : payload . sub ,
51- email : email ,
52- profile : { displayName : payload . nickname } ,
53- }
54- await user . mergeFromTemporaryUser ( existingUser )
55- await user . save ( )
56- req . user = user
57- next ( )
58- return
59- } else if ( existingUser ) {
60- // Non-temporary user with same email - this is a conflict
61- const err = new Error ( `User with email ${ email } already exists. Please contact TPEN3 administrators for assistance.` )
62- err . status = 409
63- next ( err )
64- return
65- } else {
66- // No existing user - create new
67- user . data = {
68- _id : uid ,
69- agent,
70- _sub : payload . sub ,
71- email : email ,
72- profile : { displayName : payload . nickname } ,
73- }
74- await user . save ( )
75- req . user = user
76- next ( )
77- return
45+ if ( existingUser && existingUser . inviteCode ) {
46+ // Found a temporary user - merge their memberships into this new user
47+ user . data = {
48+ _id : uid ,
49+ agent,
50+ _sub : payload . sub ,
51+ email : email ,
52+ profile : { displayName : payload . nickname } ,
53+ }
54+ await user . mergeFromTemporaryUser ( existingUser )
55+ await user . save ( )
56+ req . user = user
57+ next ( )
58+ return
59+ } else if ( existingUser ) {
60+ // Non-temporary user with same email - this is a conflict
61+ const err = new Error ( `User with email ${ email } already exists. Please contact TPEN3 administrators for assistance.` )
62+ err . status = 409
63+ next ( err )
64+ return
65+ } else {
66+ // No existing user - create new
67+ user . data = {
68+ _id : uid ,
69+ agent,
70+ _sub : payload . sub ,
71+ email : email ,
72+ profile : { displayName : payload . nickname } ,
7873 }
74+ await user . save ( )
75+ req . user = user
76+ next ( )
77+ return
7978 }
79+ }
80+ // Ensure no inviteCode on authenticated user
81+ delete u . inviteCode
8082
81- // If user exists but has wrong _sub (e.g., from temp user), update it
82- if ( u . _sub !== payload . sub ) {
83- u . _sub = payload . sub
84- // Remove inviteCode if present - this user is now fully authenticated
85- delete u . inviteCode
86- const userObj = new User ( uid )
87- userObj . data = u
88- await userObj . update ( )
89- }
83+ // If user exists but has wrong _sub (e.g., from temp user), update it
84+ if ( u . _sub !== payload . sub ) {
85+ u . _sub = payload . sub
86+ const userObj = new User ( uid )
87+ userObj . data = u
88+ await userObj . update ( )
89+ }
9090
91- // Ensure no inviteCode on authenticated user (belt and suspenders)
92- delete u . inviteCode
93- req . user = u
94- next ( )
95- return
96- } )
91+ req . user = u
92+ next ( )
93+ return
9794 } catch ( error ) {
9895 next ( error )
9996 }
0 commit comments