Cleaned up user login.

This commit is contained in:
Michael Lazar
2015-04-02 09:59:23 -07:00
parent c7a760791a
commit 2141fe6e31

View File

@@ -230,39 +230,38 @@ class BasePage(object):
@BaseController.register('u') @BaseController.register('u')
def login(self): def login(self):
""" """
Prompt to log out if logged in. Prompt to log into the user's account. Log out if the user is already
Prompt to log in if looged out. logged in.
""" """
if self.reddit.is_logged_in(): if self.reddit.is_logged_in():
ch = show_notification(self.stdscr, ["Log out? (y/N)"]) self.logout()
return
if ch == 121: # 'y' username = self.prompt_input('Enter username:')
self.reddit.clear_authentication() password = self.prompt_input('Enter password:', hide=True)
show_notification(self.stdscr, if not username or not password:
['Logged out']) curses.flash()
else: return
curses.flash()
try:
self.reddit.login(username, password)
except praw.errors.InvalidUserPass:
show_notification(self.stdscr, ['Invalid user/pass'])
else: else:
username = self.prompt_input('Enter username: ') show_notification(self.stdscr, ['Logged in'])
password = self.prompt_input('Enter password: ', hide=True)
if (username == '' or username is None) \ def logout(self):
or (password == '' or password is None): """
curses.flash() Prompt to log out of the user's account.
return """
try: ch = self.prompt_input("Log out? (y/n):")
self.reddit.login(username, password) if ch == 'y':
except praw.errors.InvalidUserPass: self.reddit.clear_authentication()
show_notification(self.stdscr, show_notification(self.stdscr, ['Logged out'])
['Invalid password for username: {}'.format(username)]) elif ch != 'n':
else: curses.flash()
show_notification(self.stdscr,
['Successfully logged in as: {}'.format(username)])
return
def prompt_input(self, prompt, hide=False): def prompt_input(self, prompt, hide=False):
"""Prompt the user for input""" """Prompt the user for input"""
@@ -270,16 +269,15 @@ class BasePage(object):
n_rows, n_cols = self.stdscr.getmaxyx() n_rows, n_cols = self.stdscr.getmaxyx()
if hide: if hide:
self.stdscr.addstr(n_rows - 1, 0, prompt+' '*(n_cols-1-len(prompt)), prompt += ' ' * (n_cols - len(prompt) - 1)
attr) self.stdscr.addstr(n_rows-1, 0, prompt, attr)
out = self.stdscr.getstr(n_rows-1, 1) out = self.stdscr.getstr(n_rows-1, 1)
else: else:
self.stdscr.addstr(n_rows - 1, 0, prompt, attr) self.stdscr.addstr(n_rows - 1, 0, prompt, attr)
self.stdscr.refresh() self.stdscr.refresh()
window = self.stdscr.derwin(1, n_cols - len(prompt), window = self.stdscr.derwin(1, n_cols - len(prompt),
n_rows - 1, len(prompt)) n_rows - 1, len(prompt))
window.attrset(attr) window.attrset(attr)
out = text_input(window) out = text_input(window)
return out return out