Bunch of updates for temp users and logging securely.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user