Esempio n. 1
0
    def get_current_user(self):
        # Check for the API token
        if not GLSettings.appstate.api_token_session_suspended and \
           GLSettings.appstate.api_token_session is not None and \
           GLSettings.memory_copy.private.admin_api_token_digest:
            token = bytes(self.request.headers.get('x-api-token', ''))
            if len(token) != GLSettings.api_token_len:
                return None

            token_hash = bytes(
                GLSettings.memory_copy.private.admin_api_token_digest)

            if constant_time.bytes_eq(sha512(token), token_hash):
                return GLSettings.appstate.api_token_session
            else:
                GLSettings.appstate.api_token_session_suspended = True
                msg = "Warning: API Token temporary suspended due to possible attack"
                log.err(msg)
                schedule_email_for_all_admins(
                    "%s notification" % GLSettings.memory_copy.name,
                    "API Token temporary suspended due to possible attack")

        # Check for user session
        session_id = self.request.headers.get('x-session')
        if session_id is None:
            return None

        return GLSessions.get(session_id)
Esempio n. 2
0
    def migrate_Node(self):
        old_node = self.store_old.find(self.model_from['Node']).one()
        new_node = self.model_to['Node']()

        for _, v in new_node._storm_columns.iteritems():
            if v.name == 'receipt_salt':
                new_node.receipt_salt = sha512(old_node.receipt_salt.encode('utf8'))[:32]
                continue

            setattr(new_node, v.name, getattr(old_node, v.name))

        self.store_new.add(new_node)
Esempio n. 3
0
    def migrate_Node(self):
        old_node = self.store_old.find(self.model_from['Node']).one()
        new_node = self.model_to['Node']()

        for _, v in new_node._storm_columns.iteritems():
            if v.name == 'receipt_salt':
                new_node.receipt_salt = sha512(old_node.receipt_salt.encode('utf8'))[:32]
                continue

            setattr(new_node, v.name, getattr(old_node, v.name))

        self.store_new.add(new_node)
Esempio n. 4
0
    def migrate_User(self):
        old_objs = self.store_old.find(self.model_from['User'])
        for old_obj in old_objs:
            new_obj = self.model_to['User']()

            for _, v in new_obj._storm_columns.items():
                if v.name == 'salt':
                    new_obj.salt = sha512(old_obj.salt.encode('utf8'))[:32]
                    continue

                setattr(new_obj, v.name, getattr(old_obj, v.name))

            self.store_new.add(new_obj)
Esempio n. 5
0
    def migrate_User(self):
        old_objs = self.store_old.find(self.model_from['User'])
        for old_obj in old_objs:
            new_obj = self.model_to['User']()

            for _, v in new_obj._storm_columns.iteritems():
                if v.name == 'salt':
                    new_obj.salt = sha512(old_obj.salt.encode('utf8'))[:32]
                    continue

                setattr(new_obj, v.name, getattr(old_obj, v.name))

            self.store_new.add(new_obj)