Exemple #1
0
    def epilogue(self):
        nf = NodeFactory(self.store_new)
        url = nf.get_val(u'public_site')
        o = urlparse(url)
        domain = o.hostname if not o.hostname is None else ''

        models.db_delete(self.store_new,
                         Config,
                         var_group=u'node',
                         var_name=u'public_site')
        add_raw_config(self.store_new, u'node', u'hostname', domain != '',
                       unicode(domain))

        url = nf.get_val(u'hidden_service')
        o = urlparse(url)
        domain = o.hostname if not o.hostname is None else ''

        models.db_delete(self.store_new,
                         Config,
                         var_group=u'node',
                         var_name=u'hidden_service')
        add_raw_config(self.store_new, u'node', u'onionservice', domain != '',
                       unicode(domain))

        add_raw_config(self.store_new, u'node', u'reachable_via_web', False,
                       False)
        self.entries_count['Config'] += 1

        self.store_new.commit()
Exemple #2
0
def wizard(store, request, language):
    node = NodeFactory(store)

    if node.get_val('wizard_done'):
        # TODO report as anomaly
        log.err("DANGER: Wizard already initialized!")
        raise errors.ForbiddenOperation

    try:
        node._query_group()

        node.set_val('name', request['node']['name'])
        node.set_val('default_language', language)
        node.set_val('wizard_done', True)

        if GLSettings.onionservice is not None:
            node.set_val('onionservice', GLSettings.onionservice)

        node_l10n = NodeL10NFactory(store)

        node_l10n.set_val('description', language,
                          request['node']['description'])
        node_l10n.set_val('header_title_homepage', language,
                          request['node']['name'])

        context = db_create_context(store, request['context'], language)

        langs_to_drop = EnabledLanguage.list(store)
        langs_to_drop.remove(language)
        if len(langs_to_drop):
            EnabledLanguage.remove_old_langs(store, langs_to_drop)

        request['receiver']['contexts'] = [context.id]
        request['receiver']['language'] = language
        db_create_receiver(store, request['receiver'], language)

        admin_dict = {
            'username': u'admin',
            'password': request['admin']['password'],
            'role': u'admin',
            'state': u'enabled',
            'deletable': False,
            'name': u'Admin',
            'public_name': u'Admin',
            'description': u'',
            'mail_address': request['admin']['mail_address'],
            'language': language,
            'password_change_needed': False,
            'pgp_key_remove': False,
            'pgp_key_fingerprint': '',
            'pgp_key_public': '',
            'pgp_key_expiration': datetime_null()
        }

        db_create_admin_user(store, admin_dict, language)

    except Exception as excep:
        log.err("Failed wizard initialization %s" % excep)
        raise excep
def get_onion_service_info(store):
    node_fact = NodeFactory(store)
    hostname = node_fact.get_val(u'onionservice')

    priv_fact = PrivateFactory(store)
    key = priv_fact.get_val(u'tor_onion_key')

    return hostname, key
Exemple #4
0
def wizard(store, request, language):
    node = NodeFactory(store)

    if node.get_val('wizard_done'):
        # TODO report as anomaly
        log.err("DANGER: Wizard already initialized!")
        raise errors.ForbiddenOperation

    try:
        node._query_group()

        nn = unicode(request['node']['name'])
        node.set_val('name', nn)
        node.set_val('default_language', language)
        node.set_val('wizard_done', True)

        node_l10n = NodeL10NFactory(store)

        node_l10n.set_val('description', language, nn)
        node_l10n.set_val('header_title_homepage', language, nn)
        node_l10n.set_val('presentation', language, nn)

        context = db_create_context(store, request['context'], language)

        langs_to_drop = EnabledLanguage.list(store)
        langs_to_drop.remove(language)
        if len(langs_to_drop):
            EnabledLanguage.remove_old_langs(store, langs_to_drop)

        request['receiver']['contexts'] = [context.id]
        request['receiver']['language'] = language
        db_create_receiver(store, request['receiver'], language)

        admin_dict = {
            'username': u'admin',
            'password': request['admin']['password'],
            'role': u'admin',
            'state': u'enabled',
            'deletable': False,
            'name': u'Admin',
            'public_name': u'Admin',
            'description': u'',
            'mail_address': request['admin']['mail_address'],
            'language': language,
            'password_change_needed': False,
            'pgp_key_remove': False,
            'pgp_key_fingerprint': '',
            'pgp_key_public': '',
            'pgp_key_expiration': datetime_null()
        }

        db_create_admin_user(store, admin_dict, language)

    except Exception as excep:
        log.err("Failed wizard initialization %s" % excep)
        raise excep