Beispiel #1
0
    def epilogue(self):
        old_node = self.session_old.query(self.model_from['Node']).one()
        old_notif = self.session_old.query(self.model_from['Notification']).one()

        with open(os.path.join(Settings.client_path, 'data', 'favicon.ico'), 'rb') as favicon_file:
            data = favicon_file.read()
            new_file = self.model_to['File']()
            new_file.id = u'favicon'
            new_file.data = base64.b64encode(data).decode()
            self.session_new.add(new_file)
            self.entries_count['File'] += 1

        file_path = os.path.join(Settings.files_path, 'custom_homepage.html')
        if os.path.exists(file_path):
            with open(file_path, 'r') as homepage_file:
                data = homepage_file.read()
                new_file = self.model_to['File']()
                new_file.id = u'homepage'
                new_file.data = base64.b64encode(data).decode()
                self.session_new.add(new_file)
                self.entries_count['File'] += 1

            os.remove(file_path)

        #### Create ConfigL10N table and rows ####
        for lang in old_node.languages_enabled:
            self.session_new.add(self.model_to['EnabledLanguage'](lang))

        self._migrate_l10n_static_config(old_node, 'node')
        self._migrate_l10n_static_config(old_notif, 'templates')

        # TODO assert that localized_keys matches exactly what is stored in the DB

        #### Create Config table and rows ####

        # Migrate Config saved in Node
        for var_name, _ in GLConfig_v_35['node'].items():
            old_val = getattr(old_node, var_name)
            self.session_new.add(self.model_to['Config']('node', var_name, old_val))

        # Migrate Config saved in Notification
        for var_name, _ in GLConfig_v_35['notification'].items():
            old_val = getattr(old_notif, var_name)

            if var_name == 'exception_email_pgp_key_expiration' and old_val is not None:
                old_val = iso_strf_time(old_val)

            self.session_new.add(self.model_to['Config']('notification', var_name, old_val))

        # Migrate private fields
        salt = old_node.receipt_salt
        if isinstance(old_node.receipt_salt, binary_type):
            salt = salt.decode()

        self.session_new.add(self.model_to['Config']('private', 'receipt_salt', salt))
        self.session_new.add(self.model_to['Config']('private', 'smtp_password', old_notif.password))

        # Set old verions that will be then handled by the version update
        self.session_new.add(self.model_to['Config']('private', 'version', 'X.Y.Z'))
        self.session_new.add(self.model_to['Config']('private', 'version_db', 0))
Beispiel #2
0
    def epilogue(self):
        old_node = self.session_old.query(self.model_from['Node']).one()
        old_notif = self.session_old.query(
            self.model_from['Notification']).one()

        with open(os.path.join(Settings.client_path, 'data', 'favicon.ico'),
                  'rb') as favicon_file:
            data = favicon_file.read()
            new_file = self.model_to['File']()
            new_file.id = 'favicon'
            new_file.data = base64.b64encode(data).decode()
            self.session_new.add(new_file)
            self.entries_count['File'] += 1

        #### Create ConfigL10N table and rows ####
        for lang in old_node.languages_enabled:
            self.session_new.add(self.model_to['EnabledLanguage'](lang))

        self._migrate_l10n_static_config(old_node, 'node')
        self._migrate_l10n_static_config(old_notif, 'templates')

        #### Create Config table and rows ####

        # Migrate Config saved in Node
        for var_name, _ in GLConfig_v_35['node'].items():
            old_val = getattr(old_node, var_name)
            self.session_new.add(self.model_to['Config']('node', var_name,
                                                         old_val))

        # Migrate Config saved in Notification
        for var_name, _ in GLConfig_v_35['notification'].items():
            old_val = getattr(old_notif, var_name)

            if var_name == 'exception_email_pgp_key_expiration' and old_val is not None:
                old_val = iso_strf_time(old_val)

            self.session_new.add(self.model_to['Config']('notification',
                                                         var_name, old_val))

        # Migrate private fields
        self.session_new.add(self.model_to['Config']('private', 'receipt_salt',
                                                     old_node.receipt_salt))
        self.session_new.add(self.model_to['Config']('private',
                                                     'smtp_password',
                                                     old_notif.password))

        # Set old verions that will be then handled by the version update
        self.session_new.add(self.model_to['Config']('private', 'version',
                                                     'X.Y.Z'))
        self.session_new.add(self.model_to['Config']('private', 'version_db',
                                                     0))
Beispiel #3
0
     'disable_custodian_notification_emails':
     Bool(default=False),
     'disable_receiver_notification_emails':
     Bool(default=False),
     'tip_expiration_threshold':
     Int(default=72),  # Hours
     'notification_threshold_per_hour':
     Int(default=20),
     'exception_email_address':
     Unicode(default='*****@*****.**'),
     'exception_email_pgp_key_fingerprint':
     Unicode(default=''),
     'exception_email_pgp_key_public':
     Unicode(default=''),
     'exception_email_pgp_key_expiration':
     Unicode(default=iso_strf_time(datetime_null())),
 },
 'node': {
     'name':
     Unicode(default=''),
     'basic_auth':
     Bool(default=False),
     'basic_auth_username':
     Unicode(default=''),
     'basic_auth_password':
     Unicode(default=''),
     'public_site':
     Unicode(default=''),
     'hidden_service':
     Unicode(default=''),
     'tb_download_link':
Beispiel #4
0
        'source_name': Unicode(default=u'GlobaLeaks - CHANGE EMAIL ACCOUNT USED FOR NOTIFICATION'),
        'source_email': Unicode(default=u'*****@*****.**'),

        'security': Unicode(default=u'TLS'),
        'disable_admin_notification_emails': Bool(default=False),
        'disable_custodian_notification_emails': Bool(default=False),
        'disable_receiver_notification_emails': Bool(default=False),

        'tip_expiration_threshold': Int(default=72),  # Hours
        'notification_threshold_per_hour': Int(default=20),

        'exception_email_address': Unicode(default=u'*****@*****.**'),
        'exception_email_pgp_key_fingerprint': Unicode(default=u''),
        'exception_email_pgp_key_public': Unicode(default=u''),
        'exception_email_pgp_key_expiration': Unicode(default=iso_strf_time(datetime_null())),
    },
    'node': {
        'name': Unicode(default=u''),

        'basic_auth': Bool(default=False),
        'basic_auth_username': Unicode(default=u''),
        'basic_auth_password': Unicode(default=u''),

        'public_site': Unicode(default=u''),
        'hidden_service': Unicode(default=u''),
        'tb_download_link': Unicode(default=u'https://www.torproject.org/download/download'),

        'default_language': Unicode(default=u'en'),
        'default_password': Unicode(default=u'globaleaks'),
Beispiel #5
0
        # See smtp_password in private for password

        'source_email': Unicode(default=u'*****@*****.**'),

        'security': Unicode(default=u'TLS'),
        'disable_admin_notification_emails': Bool(default=False),
        'disable_custodian_notification_emails': Bool(default=False),
        'disable_receiver_notification_emails': Bool(default=False),

        'tip_expiration_threshold': Int(default=72),  # Hours
        'notification_threshold_per_hour': Int(default=20),

        'exception_email_address': Unicode(default=u'*****@*****.**'),
        'exception_email_pgp_key_fingerprint': Unicode(default=u''),
        'exception_email_pgp_key_public': Unicode(default=u''),
        'exception_email_pgp_key_expiration': Unicode(default=iso_strf_time(datetime_null())),
    },
    'node': {
        'name': Unicode(default=u''),

        'basic_auth': Bool(default=False),
        'basic_auth_username': Unicode(default=u''),
        'basic_auth_password': Unicode(default=u''),

        'public_site': Unicode(default=u''),
        'hidden_service': Unicode(default=u''),
        'tb_download_link': Unicode(default=u'https://www.torproject.org/download/download'),

        'default_language': Unicode(default=u'en'),
        'default_password': Unicode(default=u'globaleaks'),