Creating similar but non-identical pages?

Our app has two user models, User and Admin, each with their own non- overlapping UI.

Users have a reasonably simple crud page, let's call it "foods", and we want to add "foods template" functionality to the admin ui. Basically reusing the food model, but with a blank user_id FK, as default data for new users.

What is the best way to go about this and not duplicate model, controllers and views..?

We've considered extracting common controller code into a module and mixing that into two separate controllers, but would still have to duplicate the views for that -- or at least sprinkle them with permission checks for every link.

Using a single controller/view sprinkled with "mode" checks doesn't feel right either, but could work with some work on our authorization code.

Any other suggestions?