예제 #1
0
 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))
예제 #2
0
파일: auth.py 프로젝트: norann/GateOne
 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))
예제 #3
0
 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("/")
예제 #4
0
 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))
예제 #5
0
파일: auth.py 프로젝트: goozbach/GateOne
 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))
예제 #6
0
파일: auth.py 프로젝트: Rivsen/GateOne
 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))
예제 #7
0
파일: auth.py 프로젝트: Rivsen/GateOne
 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("/")
예제 #8
0
파일: auth.py 프로젝트: norann/GateOne
 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))
예제 #9
0
 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("/")
예제 #10
0
파일: auth.py 프로젝트: wdshin/GateOne
 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))
예제 #11
0
    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')
예제 #12
0
파일: auth.py 프로젝트: Rivsen/GateOne
 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("/")