Refactor login logic to the login widget.

**DO NOT MERGE**

A little work needs to be done yet.
Added comment, replaced `_logged_in_user` with `_full_logged_user` and added extra docstring to `get_logged_user` to note that too.