Nhiệm vụ
Quản trị viên phải có khả năng chỉnh sửa công việc, dự án và nhật ký công việc của người dùng khác. Hiện tại, các thực thể của người khác không thể chỉnh sửa ngay cả khi có quyền quản trị.
Quan sát: Truy vấn `projects(take: 100) { id name }` trả về danh sách trống khi có người dùng hiện tại. Giả định: resolver `projects` đang tự động tính đến người dùng hiện tại và chỉ trả về các dự án của họ. Hành vi mong đợi: Query chung `projects` không được tự động giới hạn kết quả ở các dự án của người dùng hiện tại, trừ khi bộ lọc đó được truyền rõ ràng trong các đối số hoặc được cung cấp bởi một thao tác/chính sách truy cập riêng biệt. Hành vi thực tế: Khi có người dùng hiện tại, đánh giá theo kết quả, việc lựa chọn bị giới hạn ở các dự án của họ, khiến danh sách dự án toàn cục không thể truy cập được. Các bước tái tạo: 1. Thực thi truy vấn GraphQL: `query { projects(take: 100) { id name } }` trong ngữ cảnh của một người dùng đã được ủy quyền. 2. So sánh kết quả với danh sách dự án toàn cục mong đợi. 3. Kiểm tra resolver `projects` xem có việc tự động thêm bộ lọc theo người dùng hiện tại hay không. Cần làm: Loại bỏ việc lọc người dùng ngầm định khỏi `projects` hoặc tách việc lựa chọn theo người dùng thành một bộ lọc/query riêng biệt rõ ràng, đồng thời giữ lại các hạn chế truy cập ở phía máy chủ nơi thực sự cần thiết.