fixing logs on multiple rooms

This commit is contained in:
2025-05-30 21:08:58 +02:00
parent a08345e676
commit f7853f96ed
8 changed files with 73 additions and 16 deletions

View File

@@ -5,6 +5,8 @@ from forms import RoomForm
from routes.room_files import user_has_permission
from routes.auth import require_password_change
from utils import log_event
import os
import shutil
rooms_bp = Blueprint('rooms', __name__, url_prefix='/rooms')
@@ -64,6 +66,7 @@ def create_room():
},
user_id=current_user.id
)
db.session.commit()
flash('Room created successfully!', 'success')
return redirect(url_for('rooms.rooms'))
@@ -96,6 +99,7 @@ def room(room_id):
},
user_id=current_user.id
)
db.session.commit()
return render_template('rooms/room.html', room=room, can_download=can_download, can_upload=can_upload, can_delete=can_delete, can_rename=can_rename, can_move=can_move, can_share=can_share)
@@ -145,6 +149,19 @@ def add_member(room_id):
if user not in room.members:
room.members.append(user)
db.session.commit()
log_event(
event_type='room_member_add',
details={
'room_id': room_id,
'room_name': room.name,
'added_user': f"{user.username} {user.last_name}",
'added_by': f"{current_user.username} {current_user.last_name}"
},
user_id=current_user.id
)
db.session.commit()
flash(f'{user.username} has been added to the room.', 'success')
return redirect(url_for('rooms.room_members', room_id=room_id))
@@ -168,8 +185,22 @@ def remove_member(room_id, user_id):
if not perm:
flash('User is not a member of this room.', 'error')
else:
user = User.query.get(user_id)
db.session.delete(perm)
db.session.commit()
log_event(
event_type='room_member_remove',
details={
'room_id': room_id,
'room_name': room.name,
'removed_user': f"{user.username} {user.last_name}",
'removed_by': f"{current_user.username} {current_user.last_name}"
},
user_id=current_user.id
)
db.session.commit()
flash('User has been removed from the room.', 'success')
return redirect(url_for('rooms.room_members', room_id=room_id))
@@ -184,6 +215,13 @@ def update_member_permissions(room_id, user_id):
if not perm:
flash('Member not found.', 'error')
return redirect(url_for('rooms.room_members', room_id=room_id))
# Get the user object
user = User.query.get(user_id)
if not user:
flash('User not found.', 'error')
return redirect(url_for('rooms.room_members', room_id=room_id))
perm.can_view = bool(request.form.get('can_view'))
perm.can_download = bool(request.form.get('can_download'))
perm.can_upload = bool(request.form.get('can_upload'))
@@ -192,6 +230,28 @@ def update_member_permissions(room_id, user_id):
perm.can_move = bool(request.form.get('can_move'))
perm.can_share = bool(request.form.get('can_share'))
db.session.commit()
log_event(
event_type='room_permission_update',
details={
'room_id': room_id,
'room_name': room.name,
'user': f"{user.username} {user.last_name}",
'updated_by': f"{current_user.username} {current_user.last_name}",
'permissions': {
'can_view': perm.can_view,
'can_download': perm.can_download,
'can_upload': perm.can_upload,
'can_delete': perm.can_delete,
'can_rename': perm.can_rename,
'can_move': perm.can_move,
'can_share': perm.can_share
}
},
user_id=current_user.id
)
db.session.commit()
flash('Permissions updated.', 'success')
return redirect(url_for('rooms.room_members', room_id=room_id))
@@ -225,6 +285,7 @@ def edit_room(room_id):
},
user_id=current_user.id
)
db.session.commit()
flash('Room updated successfully!', 'success')
return redirect(url_for('rooms.rooms'))
@@ -249,6 +310,12 @@ def delete_room(room_id):
try:
print(f"Attempting to delete room {room_id} ({room_name})")
# Delete physical files
room_dir = os.path.join('/data/rooms', str(room_id))
if os.path.exists(room_dir):
shutil.rmtree(room_dir)
print(f"Deleted room directory: {room_dir}")
# Delete the room (cascade will handle the rest)
db.session.delete(room)
db.session.commit()
@@ -263,6 +330,7 @@ def delete_room(room_id):
},
user_id=current_user.id
)
db.session.commit()
flash(f'Room "{room_name}" has been deleted.', 'success')
except Exception as e: