Skip to content

Commit cae7b56

Browse files
committed
temp user team fix
1 parent 3e6528e commit cae7b56

File tree

1 file changed

+31
-5
lines changed

1 file changed

+31
-5
lines changed

backend/routes/auth.js

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ const bcrypt = require('bcrypt');
66
const { v4: uuidv4 } = require('uuid');
77
const { openidConfig, jwtConfig } = require('../utils/config');
88
const { 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

Comments
 (0)