def user_login(self, user): """ Called immediately after a user authenticates successfully. Saves session information in the user's directory. Expects *user* to be a dict containing a 'upn' value representing the username or userPrincipalName. e.g. 'user@REALM' or just 'someuser'. Any additional values will be attached to the user object/cookie. """ logging.debug("user_login(%s)" % user['upn']) # Make a directory to store this user's settings/files/logs/etc user_dir = os.path.join(self.settings['user_dir'], user['upn']) if not os.path.exists(user_dir): logging.info(_("Creating user directory: %s" % user_dir)) mkdir_p(user_dir) os.chmod(user_dir, 0o700) session_file = os.path.join(user_dir, 'session') session_file_exists = os.path.exists(session_file) if session_file_exists: session_data = open(session_file).read() try: session_info = tornado.escape.json_decode(session_data) except ValueError: # Something wrong with the file session_file_exists = False # Overwrite it below if not session_file_exists: with open(session_file, 'w') as f: # Save it so we can keep track across multiple clients session_info = { 'session': generate_session_id(), } session_info.update(user) session_info_json = tornado.escape.json_encode(session_info) f.write(session_info_json) self.set_secure_cookie("gateone_user", tornado.escape.json_encode(session_info))
def user_login(self, user): """ Called immediately after a user authenticates successfully. Saves session information in the user's directory. Expects *user* to be a dict containing a 'upn' value representing the username or userPrincipalName. e.g. 'user@REALM' or just 'someuser'. Any additional values will be attached to the user object/cookie. """ logging.debug("user_login(%s)" % user["upn"]) user.update(additional_attributes(user)) # Make a directory to store this user's settings/files/logs/etc user_dir = os.path.join(self.settings["user_dir"], user["upn"]) if not os.path.exists(user_dir): logging.info(_("Creating user directory: %s" % user_dir)) mkdir_p(user_dir) os.chmod(user_dir, 0o700) session_file = os.path.join(user_dir, "session") session_file_exists = os.path.exists(session_file) if session_file_exists: session_data = open(session_file).read() try: session_info = tornado.escape.json_decode(session_data) except ValueError: # Something wrong with the file session_file_exists = False # Overwrite it below if not session_file_exists: with open(session_file, "w") as f: # Save it so we can keep track across multiple clients session_info = {"session": generate_session_id()} session_info.update(user) session_info_json = tornado.escape.json_encode(session_info) f.write(session_info_json) self.set_secure_cookie("gateone_user", tornado.escape.json_encode(session_info))
def _on_auth(self, user): """ Just a continuation of the get() method (the final step where it actually sets the cookie). """ if not user: raise tornado.web.HTTPError(500, "Google auth failed") print("GoogleAuthLoginHandler user: %s" % user) # NOTE: Google auth 'user' will be a dict like so: # user: { # 'locale': u'en-us', # 'first_name': u'Dan', # 'last_name': u'McDougall', # 'name': u'Dan McDougall', # 'email': u'*****@*****.**'} # Named these 'go_<whatever>' since that is less likely to conflict with # anything in the future (should some auth mechanism start returning # session IDs of some sort). self.user_login(user) # This takes care of the user's settings dir user_cookie = { # Don't need all that other stuff 'go_session': generate_session_id(), 'go_upn': user['email'] # Just an equivalent for standardization } self.set_secure_cookie("user", tornado.escape.json_encode(user_cookie)) next_url = self.get_argument("next", None) if next_url: self.redirect(next_url) else: self.redirect("/")
def user_login(self, user): """ Called immediately after a user authenticates successfully. Saves session information in the user's directory. Expects *user* to be a string containing the username or userPrincipalName. e.g. 'user@REALM' or just 'someuser'. """ # Make a directory to store this user's settings/files/logs/etc user_dir = self.settings['user_dir'] + "/" + user logging.info("Creating user directory: %s" % user_dir) mkdir_p(user_dir) os.chmod(user_dir, 0700) session_file = user_dir + '/session' if os.path.exists(session_file): session_data = open(session_file).read() session_info = tornado.escape.json_decode(session_data) else: with open(session_file, 'w') as f: # Save it so we can keep track across multiple clients session_info = { 'go_upn': user, # FYI: UPN == userPrincipalName 'go_session': generate_session_id() } session_info_json = tornado.escape.json_encode(session_info) f.write(session_info_json) self.set_secure_cookie("user", tornado.escape.json_encode(session_info))
def user_login(self, user): """ Called immediately after a user authenticates successfully. Saves session information in the user's directory. Expects *user* to be a string containing the username or userPrincipalName. e.g. 'user@REALM' or just 'someuser'. """ logging.debug("user_login(%s)" % user) # Make a directory to store this user's settings/files/logs/etc user_dir = os.path.join(self.settings['user_dir'], user) if not os.path.exists(user_dir): logging.info(_("Creating user directory: %s" % user_dir)) mkdir_p(user_dir) os.chmod(user_dir, 0o700) session_file = os.path.join(user_dir, 'session') session_file_exists = os.path.exists(session_file) if session_file_exists: session_data = open(session_file).read() try: session_info = tornado.escape.json_decode(session_data) except ValueError: # Something wrong with the file session_file_exists = False # Overwrite it below if not session_file_exists: with open(session_file, 'w') as f: # Save it so we can keep track across multiple clients session_info = { 'upn': user, # FYI: UPN == userPrincipalName 'session': generate_session_id() } session_info_json = tornado.escape.json_encode(session_info) f.write(session_info_json) self.set_secure_cookie( "gateone_user", tornado.escape.json_encode(session_info))
def _on_auth(self, user): """ Just a continuation of the get() method (the final step where it actually sets the cookie). """ if not user: raise tornado.web.HTTPError(500, "Google auth failed") # NOTE: Google auth 'user' will be a dict like so: # user: { # 'locale': u'en-us', # 'first_name': u'Dan', # 'last_name': u'McDougall', # 'name': u'Dan McDougall', # 'email': u'*****@*****.**'} # Named these 'go_<whatever>' since that is less likely to conflict with # anything in the future (should some auth mechanism start returning # session IDs of some sort). self.user_login(user['email']) # Takes care of the user's settings dir user_cookie = { # Don't need all that other stuff 'go_session': generate_session_id(), 'go_upn': user['email'] # Just an equivalent for standardization } self.set_secure_cookie("user", tornado.escape.json_encode(user_cookie)) next_url = self.get_argument("next", None) if next_url: self.redirect(next_url) else: self.redirect("/")
def user_login(self, user): """ This is an override of BaseAuthHandler since anonymous auth is special. Generates a unique session ID for this user and saves it in a browser cookie. This is to ensure that anonymous users can't access each other's sessions. """ logging.debug("NullAuthHandler.user_login(%s)" % user["upn"]) # Make a directory to store this user's settings/files/logs/etc user_dir = os.path.join(self.settings["user_dir"], user["upn"]) if not os.path.exists(user_dir): logging.info(_("Creating user directory: %s" % user_dir)) mkdir_p(user_dir) os.chmod(user_dir, 0o700) session_info = {"session": generate_session_id()} session_info.update(user) self.set_secure_cookie("gateone_user", tornado.escape.json_encode(session_info))
def get(self): """ Sets the 'user' cookie with a new random session ID (*go_session*) and sets *go_upn* to '%anonymous'. """ # % is valid on the filesystem but invalid for an actual username. # This ensures we won't have a conflict at some point with an actual # user. user = r'%anonymous' self.user_login(user) # Takes care of the user's settings dir user_cookie = {'go_upn': user, 'go_session': generate_session_id()} self.set_secure_cookie("user", tornado.escape.json_encode(user_cookie)) next_url = self.get_argument("next", None) if next_url: self.redirect(next_url) else: self.redirect("/")
def user_login(self, user): """ This is an override of BaseAuthHandler since anonymous auth is special. Generates a unique session ID for this user and saves it in a browser cookie. This is to ensure that anonymous users can't access each other's sessions. """ logging.debug("NullAuthHandler.user_login(%s)" % user) # Make a directory to store this user's settings/files/logs/etc user_dir = os.path.join(self.settings['user_dir'], user) if not os.path.exists(user_dir): logging.info(_("Creating user directory: %s" % user_dir)) mkdir_p(user_dir) os.chmod(user_dir, 0o700) session_info = {'upn': user, 'session': generate_session_id()} self.set_secure_cookie("gateone_user", tornado.escape.json_encode(session_info))
def __init__(self, *args, **kwargs): tk.Tk.__init__(self, *args, **kwargs) self.title("Homemade tool") self.resizable(0, 0) check_validation('version', self.version) self.session_id = generate_session_id() self.userNameVar = tk.StringVar(value=self.userNameDefault) self.emailVar = tk.StringVar(value=self.emailDefault) self.passVar = tk.StringVar(value=self.passDefault) self.teleIdVar = tk.StringVar(value=self.teleIdDefault) self.rememberMeVar = tk.IntVar() self.rememberMeVar.set(1) self.keywordsVar = tk.StringVar(value=self.keywordsDefault) self.blacklistKeywordsVar = tk.StringVar( value=self.blacklistKeywordsDefault) self.emailVar2 = tk.StringVar(value=self.emailDefault2) self.passVar2 = tk.StringVar(value=self.passDefault2) self.teleIdVar2 = tk.StringVar(value=self.teleIdDefault2) self.rememberMeVar2 = tk.IntVar() self.rememberMeVar2.set(1) self.keywordsVar2 = tk.StringVar(value=self.keywordsDefault2) self.blacklistKeywordsVar2 = tk.StringVar( value=self.blacklistKeywordsDefault2) self.groupIdListVar = tk.StringVar(value=self.groupIdListDefault) self.start_append_gsheet() menu = MenuBar(self) tab_control = ttk.Notebook(self) AdsPostsTab = AdsPostsWindow(tab_control, self) GroupPostsTab = GroupPostsWindow(tab_control, self) tab_control.add(AdsPostsTab, text='Ads Posts') tab_control.add(GroupPostsTab, text='Group Posts') tab_control.pack(expand=1, fill='both') self.statusBar = tk.Label(self, text=self.statusBarText, bd=1, relief='sunken', anchor='w') self.statusBar.pack(side='bottom', fill='x')
def get(self): """ Sets the 'user' cookie with a new random session ID (*go_session*) and sets *go_upn* to '%anonymous'. """ # % is valid on the filesystem but invalid for an actual username. # This ensures we won't have a conflict at some point with an actual # user. user = r'%anonymous' self.user_login(user) # Takes care of the user's settings dir user_cookie = { 'go_upn': user, 'go_session': generate_session_id() } self.set_secure_cookie("user", tornado.escape.json_encode(user_cookie)) next_url = self.get_argument("next", None) if next_url: self.redirect(next_url) else: self.redirect("/")