basic login and login required mixin
merge