С точки зрения безопасности, я бы лучше разделил функционально - отдельно пользовательскую часть, отдельно админскую часть (на уровне модулей).
А в том случае когда оба модуля используют одинаковый функционал (в основном сервисы и директивы, их можно ввести в какой-то общий модуль + склеивать через gulp/grunt
Если админская часть используется скорее как функционал редактора, то можно использовать и один контролер и одно представление (на основе сведений о роли можно через директивы ng-if управлять отображением нужных кнопок/полей)