Refactor dashboard data creation

* reusable methods
* better variable names
Make sure user roles are included with extracted user.

Otherwise they don't have proper permissions for things.