Brainstorming here...now that taxonomy is part of the entity system, it should be possible to do something like this:
- Install http://drupal.org/project/workflow
- Add a field to your taxonomy called "Published" or "Approved" that is a boolean checkbox
- Setup a workflow that is triggered on taxonomy term creation with Approved as a field only accessible to admins
- Write a hook into taxonomy terms that removes a term unless it is approved (this is the tricky part - there are a lot of ways to get to taxonomy terms, so this might make this approach moot).
Alternative:
Since you mentioned a user filling out a form - you could pretty easily have a content type called "Taxonomy Term" or something with the needed Taxonomy fields, then use workflow/Rules to send the submission to an admin, upon approval use Rules or custom code to create a new taxonomy term.
hook_taxonomy_term_insert
. – Paul May 9 '12 at 6:19