add login functionality and user roles