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'
self.reddit.clear_authentication()
show_notification(self.stdscr,
['Logged out'])
else:
curses.flash()
else:
username = self.prompt_input('Enter username:') username = self.prompt_input('Enter username:')
password = self.prompt_input('Enter password:', hide=True) password = self.prompt_input('Enter password:', hide=True)
if not username or not password:
if (username == '' or username is None) \
or (password == '' or password is None):
curses.flash() curses.flash()
return return
try: try:
self.reddit.login(username, password) self.reddit.login(username, password)
except praw.errors.InvalidUserPass: except praw.errors.InvalidUserPass:
show_notification(self.stdscr, show_notification(self.stdscr, ['Invalid user/pass'])
['Invalid password for username: {}'.format(username)])
else: else:
show_notification(self.stdscr, show_notification(self.stdscr, ['Logged in'])
['Successfully logged in as: {}'.format(username)])
return def logout(self):
"""
Prompt to log out of the user's account.
"""
ch = self.prompt_input("Log out? (y/n):")
if ch == 'y':
self.reddit.clear_authentication()
show_notification(self.stdscr, ['Logged out'])
elif ch != 'n':
curses.flash()
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,8 +269,8 @@ 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)
@@ -279,7 +278,6 @@ class BasePage(object):
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