Лучше заложить изначально такую возможность, можно посмотреть в сторону RBAC.
На мой взгляд это User->RoleGroups->Roles не совсем удачная реализация.
Лучше сделать что-то вроде User->Role->Permission, т.е.:
User - пользователь
Role - роль (администратор, модератор)
Permission - уровень доступа (редактирование, удаление и т.д.).
Но Role должны быть в иерархии, например администратор -> модератор -> пользователь -> гость, где:
- Гость просмотр постов
- Пользователь может создавать, редактировать свой пост
- Модератор может создавать, редактировать все посты
- Администратор может создавать, редактировать и удалять все посты