Perhaps a tracker? http://jtrac.info <first look here, if not as a solution, then google: open source trackers: and there are so many that I donβt know where to start.
As for approval / disapproval, it will be a matter of creating a task, and then assigning the task to the pool of authorized officers and returning them to the development pool if they were approved.
From experience, everything becomes hairy when the workload for each task allocated to the work pool changes. We used the PeopleSoft system in the Eternal Downward Spiral. This did not pay attention to the required amount of work, and I understand that they paid a lot for this terrible "decision"!
Any workload distribution system that I chose would at least take into account the workload for each task. This is due to the fact that if you are fulfilling a daily work quota based on the total number of tasks performed and cleared, and not on a quantitative load; you can and will have people who attack easy tasks, who are subsequently praised for the fact that they all play.
I cannot vouch for the first option to which I provided the link, but I quickly cross-referenced it as the top sentence; how far Java problem tracking systems are.
You may need a third step to ensure quality, but I need more information to give further advice.
source share