Custom user model

Depends on #24