A change control board (CCB) would be helpful to shield the developers from the user requests. A CCB is a group (although it could be an individual) that meets on a regular basis to review the latest submitted defects, determine their impact, prioritize them, and in some cases, assign them to a member of the development team.
The CCB would review all of the defects and feature requests submitted since the last meeting. For each one, they would determine if it's a valid request. If it's not, it would get closed with a reason why. If it is valid, it would be assigned a criticality and perhaps a milestone for incorporation or deadline date. The development lead at the CCB might even assign the task to a specific developer, depending on the process you are using.
Developers only need to care about the defects and feature requests approved by the CCB, and not all defects submitted by the user. The CCB would also be responsible for transforming user requests into the expected input to the development team such as a formal bug report, a prioritizied user story, or an updated requirements specification.
Depending on your situation, it might not be possible to provide your users/customers with access to your issue tracking tool. In such an instance, you would want another standardized method for everyone to submit reports with all of the information the CCB would need to turn it into a bug report or feature request in the issue tracking tool of your choice. Quality assurance would most likely still be submitting right into the issue tracking tool that you are using, but they would be reviewed, prioritized, and assigned by the CCB before a developer starts working on it.