def db_create(session, desc): t = models.Tenant() t.active = desc['active'] session.add(t) # required to generate the tenant id session.flush() appdata = load_appdata() if t.id == 1: db_load_defaults(session) models.config.initialize_config(session, t.id, desc['mode']) for var in ['mode', 'name', 'subdomain']: db_set_config_variable(session, t.id, var, desc[var]) models.config.add_new_lang(session, t.id, 'en', appdata) db_initialize_tenant_submission_statuses(session, t.id) db_refresh_memory_variables(session, [t.id]) return t
def db_create(session, desc): t = models.Tenant() session.add(t) # required to generate the tenant id session.flush() appdata = load_appdata() db_load_defaults(session) models.config.initialize_config(session, t.id, desc['mode']) for var in ['mode', 'name', 'subdomain']: db_set_config_variable(session, t.id, var, desc[var]) models.config.add_new_lang(session, t.id, 'en', appdata) db_initialize_tenant_submission_statuses(session, t.id) if desc['mode'] == 'default': file_descs = [('favicon', 'data/favicon.ico')] for file_desc in file_descs: with open(os.path.join(Settings.client_path, file_desc[1]), 'rb') as f: data = base64.b64encode(f.read()).decode() file.db_add_file(session, t.id, file_desc[0], '', data) return t
def _setUp(self, session): valid_setup = test_tls.get_valid_setup() config.db_set_config_variable(session, 1, 'https_cert', valid_setup['cert']) config.db_set_config_variable(session, 1, 'https_enabled', True) db_refresh_memory_variables(session)
def set_hostnames(self, session, i): hosts = [('www.globaleaks.org', 'aaaaaaaaaaaaaaaa.onion'), ('www.domain-a.com', 'bbbbbbbbbbbbbbbb.onion'), ('www.domain-b.com', 'cccccccccccccccc.onion')] hostname, onionservice = hosts[i - 1] db_set_config_variable(session, i, 'hostname', hostname) db_set_config_variable(session, i, 'onionservice', onionservice)
def update(session, tid, request): tenant = db_get(session, models.Tenant, models.Tenant.id == tid) tenant.active = request['active'] for var in ['mode', 'name', 'subdomain']: db_set_config_variable(session, tid, var, request[var]) return serialize_tenant(session, tenant)
def init_db(session): from globaleaks.handlers.admin import tenant tenant.db_create(session, {'mode': 'default', 'label': 'root'}) memlimit, opslimit = GCE.auto_tune() db_set_config_variable(session, 1, 'encryption_memlimit', memlimit) db_set_config_variable(session, 1, 'encryption_opslimit', opslimit) db_load_default_questionnaires(session) db_load_default_fields(session)
def update(session, id, request): tenant = models.db_get(session, models.Tenant, models.Tenant.id == id) tenant.update(request) # A tenant created via signup but not activated may require initialization if not session.query( models.Config).filter(models.Config.tid == id).count(): db_initialize_tenant(session, tenant, request['mode']) else: db_set_config_variable(session, id, 'mode', request['mode']) return serialize_tenant(session, tenant)
def set_config_variable(session, tid, var, val): db_set_config_variable(session, tid, var, val) db_refresh_memory_variables(session, [tid])