Bunch of updates for temp users and logging securely.

This commit is contained in:
2025-08-19 12:09:19 -06:00
parent 3b88eef397
commit 960bd39e21
9 changed files with 170 additions and 71 deletions

View File

@@ -52,7 +52,7 @@ class AuthController {
}
// Check if temp user has expired
const userType = user.UserType || user.userType || 'user';
const userType = user['User Type'] || user.UserType || user.userType || 'user';
if (userType === 'temp') {
const expiration = user.ExpiresAt || user.expiresAt || user.Expiration || user.expiration;
if (expiration) {
@@ -91,11 +91,23 @@ class AuthController {
req.session.userEmail = user.email || user.Email; // Make sure this is set
req.session.userName = user.name || user.Name;
req.session.isAdmin = user.admin || user.Admin || false;
req.session.userType = user.UserType || user.userType || (req.session.isAdmin ? 'admin' : 'user');
logger.info('User logged in:', {
email: req.session.userEmail,
admin: req.session.isAdmin
// More explicit userType determination with proper fallback - handle both field name variations
let sessionUserType = 'user'; // default
if (user['User Type']) {
sessionUserType = user['User Type'].toLowerCase();
} else if (user.UserType) {
sessionUserType = user.UserType.toLowerCase();
} else if (user.userType) {
sessionUserType = user.userType.toLowerCase();
} else if (req.session.isAdmin) {
sessionUserType = 'admin';
}
req.session.userType = sessionUserType;
logger.info('User logged in successfully', {
userType: req.session.userType
});
// Force session save

View File

@@ -334,6 +334,14 @@ class LocationsController {
async delete(req, res) {
try {
// Check if user is temp and deny delete
if (req.session?.userType === 'temp') {
return res.status(403).json({
success: false,
error: 'Temporary users cannot delete locations'
});
}
const locationId = req.params.id;
// Validate ID

View File

@@ -100,6 +100,7 @@ class UsersController {
name: name || '',
Admin: isAdmin === true,
admin: isAdmin === true,
'User Type': userType || 'user', // Handle space in field name
UserType: userType || 'user',
userType: userType || 'user',
CreatedAt: new Date().toISOString(),
@@ -121,6 +122,7 @@ class UsersController {
Email: email,
Name: name,
Admin: isAdmin,
'User Type': userType, // Handle space in field name
UserType: userType,
'Created At': new Date().toISOString(),
ExpiresAt: expiresAt