I would like to support two separate template sources - the system templates and the user's templates. For user templates, the user would have full control (move, copy, delete, upload), but for the system templates, no move/copy/delete or upload. The system templates would be in a different folder from the user templates. This would require two buttons: insert system template (a custom button), and insert template (the standard button).
However, here is where I lose it. Is there a way for a custom button to access the insert template function, and force it to not allow modifications to the selected system template folder - using the available functionality of the editor? My only alternative plan is to put the system templates into a db, but this disallows the user to browse them with the insert dialog (they would have to select from drop-down lists, and then I would put the template HTML into the editor text property on page load).
There are numerous drawbacks to the db approach, which is why I am asking if there is another way...