@@ -6,6 +6,7 @@ const bcrypt = require('bcrypt');
66const { v4 : uuidv4 } = require ( 'uuid' ) ;
77const { openidConfig, jwtConfig } = require ( '../utils/config' ) ;
88const { search, insert, update } = require ( '../utils/db' ) ;
9+ const { processPendingTeamAssignments } = require ( '../managers/teams' ) ;
910
1011/**
1112 * @swagger
@@ -194,6 +195,18 @@ router.get('/openid/callback', async (req, res) => {
194195
195196 await insert ( 'users' , Object . keys ( userData ) , Object . values ( userData ) ) ;
196197 user = await search ( 'users' , 'id' , userId ) ;
198+
199+ // Process any pending team assignments for this user
200+ let teamAssignmentResult = null ;
201+ if ( userData . email ) {
202+ try {
203+ teamAssignmentResult = await processPendingTeamAssignments ( userId , userData . email ) ;
204+ console . log ( 'Processed pending team assignments for OpenID user:' , teamAssignmentResult ) ;
205+ } catch ( error ) {
206+ console . error ( 'Error processing pending team assignments for OpenID user:' , error ) ;
207+ // Don't fail user creation if team assignment fails
208+ }
209+ }
197210 } else {
198211 // Update existing user info and role
199212 const updateData = {
@@ -204,13 +217,26 @@ router.get('/openid/callback', async (req, res) => {
204217 role : userRole
205218 } ;
206219
207- await update ( 'users' , 'email' , updateData . email , 'id' , [ user . id ] ) ;
208- await update ( 'users' , 'first_name' , updateData . first_name , 'id' , [ user . id ] ) ;
209- await update ( 'users' , 'last_name' , updateData . last_name , 'id' , [ user . id ] ) ;
210- await update ( 'users' , 'openid_groups' , updateData . openid_groups , 'id' , [ user . id ] ) ;
211- await update ( 'users' , 'role' , updateData . role , 'id' , [ user . id ] ) ;
220+ await update ( 'users' , 'email' , updateData . email , 'id' , [ user . id ] ) ;
221+ await update ( 'users' , 'first_name' , updateData . first_name , 'id' , [ user . id ] ) ;
222+ await update ( 'users' , 'last_name' , updateData . last_name , 'id' , [ user . id ] ) ;
223+ await update ( 'users' , 'openid_groups' , updateData . openid_groups , 'id' , [ user . id ] ) ;
224+ await update ( 'users' , 'role' , updateData . role , 'id' , [ user . id ] ) ;
212225
213226 user = await search ( 'users' , 'id' , user . id ) ;
227+
228+ // Process any pending team assignments for existing user (in case they were added after account creation)
229+ if ( updateData . email ) {
230+ try {
231+ const teamAssignmentResult = await processPendingTeamAssignments ( user . id , updateData . email ) ;
232+ if ( teamAssignmentResult && teamAssignmentResult . results && teamAssignmentResult . results . length > 0 ) {
233+ console . log ( 'Processed pending team assignments for existing OpenID user:' , teamAssignmentResult ) ;
234+ }
235+ } catch ( error ) {
236+ console . error ( 'Error processing pending team assignments for existing OpenID user:' , error ) ;
237+ // Don't fail user update if team assignment fails
238+ }
239+ }
214240 }
215241
216242 // Generate JWT token
0 commit comments