Allow non-administrator users to copy certain projects
Currently only administrators can copy projects, which is not ideal because Project Managers should be able to create, edit and copy projects but not have full access to everything else. The copying is important, because certain projects are used as templates and are only ever copied to speed everything up.
Attached is a patch which removes the :copy from the require_admin before_filter and instead adds its own method to determine copy access. This method essentially checks if the user can edit the project, and if so grants access to copy. The patch also adds a button to copy a project to the contextual links area when viewing a project if the current user can edit the project.
I realize this patch is incomplete (I don't use translatable labels for the button and I should ideally create a new permission instead of using "edit") but this is as far as my current knowledge can take me. In the mean time I hope this patch is a good jumping off point for either other developers or core developers to use for further improvements.