fox more event logging
This commit is contained in:
Binary file not shown.
@@ -236,6 +236,7 @@ class EventType(Enum):
|
|||||||
CONVERSATION_DELETE = 'conversation_delete'
|
CONVERSATION_DELETE = 'conversation_delete'
|
||||||
CONVERSATION_MEMBER_ADD = 'conversation_member_add'
|
CONVERSATION_MEMBER_ADD = 'conversation_member_add'
|
||||||
CONVERSATION_MEMBER_REMOVE = 'conversation_member_remove'
|
CONVERSATION_MEMBER_REMOVE = 'conversation_member_remove'
|
||||||
|
CONVERSATION_OPEN = 'conversation_open'
|
||||||
|
|
||||||
# Message events
|
# Message events
|
||||||
MESSAGE_CREATE = 'message_create'
|
MESSAGE_CREATE = 'message_create'
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -114,6 +114,19 @@ def conversation(conversation_id):
|
|||||||
flash('You do not have access to this conversation.', 'error')
|
flash('You do not have access to this conversation.', 'error')
|
||||||
return redirect(url_for('conversations.conversations'))
|
return redirect(url_for('conversations.conversations'))
|
||||||
|
|
||||||
|
# Log conversation open
|
||||||
|
log_event(
|
||||||
|
event_type='conversation_open',
|
||||||
|
details={
|
||||||
|
'conversation_id': conversation.id,
|
||||||
|
'conversation_name': conversation.name,
|
||||||
|
'user_id': current_user.id,
|
||||||
|
'user_name': f"{current_user.username} {current_user.last_name}",
|
||||||
|
'message_count': Message.query.filter_by(conversation_id=conversation_id).count()
|
||||||
|
}
|
||||||
|
)
|
||||||
|
db.session.commit()
|
||||||
|
|
||||||
# Query messages directly using the Message model
|
# Query messages directly using the Message model
|
||||||
messages = Message.query.filter_by(conversation_id=conversation_id).order_by(Message.created_at.asc()).all()
|
messages = Message.query.filter_by(conversation_id=conversation_id).order_by(Message.created_at.asc()).all()
|
||||||
|
|
||||||
|
|||||||
@@ -234,6 +234,7 @@ def upload_room_file(room_id):
|
|||||||
},
|
},
|
||||||
user_id=current_user.id
|
user_id=current_user.id
|
||||||
)
|
)
|
||||||
|
db.session.commit()
|
||||||
return jsonify({'success': True, 'filename': filename, 'overwritten': True})
|
return jsonify({'success': True, 'filename': filename, 'overwritten': True})
|
||||||
else:
|
else:
|
||||||
rf = RoomFile(
|
rf = RoomFile(
|
||||||
@@ -260,6 +261,7 @@ def upload_room_file(room_id):
|
|||||||
},
|
},
|
||||||
user_id=current_user.id
|
user_id=current_user.id
|
||||||
)
|
)
|
||||||
|
db.session.commit()
|
||||||
return jsonify({'success': True, 'filename': filename})
|
return jsonify({'success': True, 'filename': filename})
|
||||||
|
|
||||||
@room_files_bp.route('/<int:room_id>/files/<filename>', methods=['GET'])
|
@room_files_bp.route('/<int:room_id>/files/<filename>', methods=['GET'])
|
||||||
@@ -299,6 +301,7 @@ def download_room_file(room_id, filename):
|
|||||||
},
|
},
|
||||||
user_id=current_user.id
|
user_id=current_user.id
|
||||||
)
|
)
|
||||||
|
db.session.commit()
|
||||||
return send_from_directory(os.path.dirname(file_path), filename, as_attachment=True)
|
return send_from_directory(os.path.dirname(file_path), filename, as_attachment=True)
|
||||||
|
|
||||||
@room_files_bp.route('/<int:room_id>/files/<path:filename>', methods=['DELETE'])
|
@room_files_bp.route('/<int:room_id>/files/<path:filename>', methods=['DELETE'])
|
||||||
@@ -343,6 +346,7 @@ def delete_file(room_id, filename):
|
|||||||
},
|
},
|
||||||
user_id=current_user.id
|
user_id=current_user.id
|
||||||
)
|
)
|
||||||
|
db.session.commit()
|
||||||
|
|
||||||
return jsonify({'success': True})
|
return jsonify({'success': True})
|
||||||
|
|
||||||
@@ -415,6 +419,18 @@ def create_room_folder(room_id):
|
|||||||
)
|
)
|
||||||
db.session.add(rf)
|
db.session.add(rf)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
|
||||||
|
log_event(
|
||||||
|
event_type='folder_create',
|
||||||
|
details={
|
||||||
|
'created_by': f"{current_user.username} {current_user.last_name}",
|
||||||
|
'folder_name': folder_name,
|
||||||
|
'room_id': room_id,
|
||||||
|
'path': rel_path
|
||||||
|
},
|
||||||
|
user_id=current_user.id
|
||||||
|
)
|
||||||
|
db.session.commit()
|
||||||
return jsonify({'success': True, 'name': folder_name})
|
return jsonify({'success': True, 'name': folder_name})
|
||||||
|
|
||||||
@room_files_bp.route('/<int:room_id>/rename', methods=['POST'])
|
@room_files_bp.route('/<int:room_id>/rename', methods=['POST'])
|
||||||
@@ -494,6 +510,7 @@ def rename_room_file(room_id):
|
|||||||
},
|
},
|
||||||
user_id=current_user.id
|
user_id=current_user.id
|
||||||
)
|
)
|
||||||
|
db.session.commit()
|
||||||
|
|
||||||
return jsonify({'success': True, 'old_name': old_name, 'new_name': new_name})
|
return jsonify({'success': True, 'old_name': old_name, 'new_name': new_name})
|
||||||
|
|
||||||
@@ -633,6 +650,7 @@ def move_room_file(room_id):
|
|||||||
},
|
},
|
||||||
user_id=current_user.id
|
user_id=current_user.id
|
||||||
)
|
)
|
||||||
|
db.session.commit()
|
||||||
|
|
||||||
return jsonify({'success': True})
|
return jsonify({'success': True})
|
||||||
|
|
||||||
@@ -701,9 +719,33 @@ def toggle_star(room_id):
|
|||||||
if is_starred:
|
if is_starred:
|
||||||
# Unstar the file
|
# Unstar the file
|
||||||
rf.starred_by.remove(current_user)
|
rf.starred_by.remove(current_user)
|
||||||
|
log_event(
|
||||||
|
event_type='file_unstar',
|
||||||
|
details={
|
||||||
|
'unstarred_by': f"{current_user.username} {current_user.last_name}",
|
||||||
|
'filename': filename,
|
||||||
|
'room_id': room_id,
|
||||||
|
'path': rel_path,
|
||||||
|
'type': rf.type,
|
||||||
|
'size': rf.size if rf.type == 'file' else None
|
||||||
|
},
|
||||||
|
user_id=current_user.id
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
# Star the file
|
# Star the file
|
||||||
rf.starred_by.append(current_user)
|
rf.starred_by.append(current_user)
|
||||||
|
log_event(
|
||||||
|
event_type='file_star',
|
||||||
|
details={
|
||||||
|
'starred_by': f"{current_user.username} {current_user.last_name}",
|
||||||
|
'filename': filename,
|
||||||
|
'room_id': room_id,
|
||||||
|
'path': rel_path,
|
||||||
|
'type': rf.type,
|
||||||
|
'size': rf.size if rf.type == 'file' else None
|
||||||
|
},
|
||||||
|
user_id=current_user.id
|
||||||
|
)
|
||||||
|
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
|
||||||
@@ -914,6 +956,7 @@ def restore_file(room_id):
|
|||||||
},
|
},
|
||||||
user_id=current_user.id
|
user_id=current_user.id
|
||||||
)
|
)
|
||||||
|
db.session.commit()
|
||||||
|
|
||||||
return jsonify({'success': True})
|
return jsonify({'success': True})
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
<option value="file_star">File Star</option>
|
<option value="file_star">File Star</option>
|
||||||
<option value="file_unstar">File Unstar</option>
|
<option value="file_unstar">File Unstar</option>
|
||||||
<option value="file_delete_permanent">File Delete Permanent</option>
|
<option value="file_delete_permanent">File Delete Permanent</option>
|
||||||
|
<option value="folder_create">Folder Create</option>
|
||||||
<option value="room_create">Room Create</option>
|
<option value="room_create">Room Create</option>
|
||||||
<option value="room_delete">Room Delete</option>
|
<option value="room_delete">Room Delete</option>
|
||||||
<option value="room_update">Room Update</option>
|
<option value="room_update">Room Update</option>
|
||||||
@@ -26,6 +27,7 @@
|
|||||||
<option value="room_member_permissions_update">Room Member Permissions Update</option>
|
<option value="room_member_permissions_update">Room Member Permissions Update</option>
|
||||||
<option value="conversation_create">Conversation Create</option>
|
<option value="conversation_create">Conversation Create</option>
|
||||||
<option value="conversation_delete">Conversation Delete</option>
|
<option value="conversation_delete">Conversation Delete</option>
|
||||||
|
<option value="conversation_open">Conversation Open</option>
|
||||||
<option value="message_sent">Message Sent</option>
|
<option value="message_sent">Message Sent</option>
|
||||||
<option value="attachment_download">Attachment Download</option>
|
<option value="attachment_download">Attachment Download</option>
|
||||||
</select>
|
</select>
|
||||||
@@ -88,6 +90,8 @@
|
|||||||
<span class="badge bg-secondary">File Unstar</span>
|
<span class="badge bg-secondary">File Unstar</span>
|
||||||
{% elif event.event_type == 'file_delete_permanent' %}
|
{% elif event.event_type == 'file_delete_permanent' %}
|
||||||
<span class="badge bg-danger">File Delete Permanent</span>
|
<span class="badge bg-danger">File Delete Permanent</span>
|
||||||
|
{% elif event.event_type == 'folder_create' %}
|
||||||
|
<span class="badge bg-success">Folder Create</span>
|
||||||
{% elif event.event_type == 'room_create' %}
|
{% elif event.event_type == 'room_create' %}
|
||||||
<span class="badge bg-success">Room Create</span>
|
<span class="badge bg-success">Room Create</span>
|
||||||
{% elif event.event_type == 'room_delete' %}
|
{% elif event.event_type == 'room_delete' %}
|
||||||
@@ -102,6 +106,8 @@
|
|||||||
<span class="badge bg-success">Conversation Create</span>
|
<span class="badge bg-success">Conversation Create</span>
|
||||||
{% elif event.event_type == 'conversation_delete' %}
|
{% elif event.event_type == 'conversation_delete' %}
|
||||||
<span class="badge bg-danger">Conversation Delete</span>
|
<span class="badge bg-danger">Conversation Delete</span>
|
||||||
|
{% elif event.event_type == 'conversation_open' %}
|
||||||
|
<span class="badge bg-info">Conversation Open</span>
|
||||||
{% elif event.event_type == 'message_sent' %}
|
{% elif event.event_type == 'message_sent' %}
|
||||||
<span class="badge bg-primary">Message Sent</span>
|
<span class="badge bg-primary">Message Sent</span>
|
||||||
{% elif event.event_type == 'attachment_download' %}
|
{% elif event.event_type == 'attachment_download' %}
|
||||||
|
|||||||
Reference in New Issue
Block a user