fixing logs on multiple rooms
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user