summaryrefslogtreecommitdiff
path: root/src/leap/bitmask/config
diff options
context:
space:
mode:
Diffstat (limited to 'src/leap/bitmask/config')
-rw-r--r--src/leap/bitmask/config/flags.py20
-rw-r--r--src/leap/bitmask/config/leapsettings.py38
-rw-r--r--src/leap/bitmask/config/providerconfig.py10
3 files changed, 59 insertions, 9 deletions
diff --git a/src/leap/bitmask/config/flags.py b/src/leap/bitmask/config/flags.py
index 98395def..5d8bc9b3 100644
--- a/src/leap/bitmask/config/flags.py
+++ b/src/leap/bitmask/config/flags.py
@@ -30,3 +30,23 @@ WARNING: You should NOT use this kind of flags unless you're sure of what
# - search for binaries inside the bundled app instead of the system ones.
# e.g.: openvpn, gpg
STANDALONE = False
+
+MAIL_LOGFILE = None
+
+# The APP/API version check flags are used to provide a way to skip
+# that checks.
+# This can be used for:
+# - allow the use of a client that is not compatible with a provider.
+# - use a development version of the client with an older version number
+# since it's not released yet, and it is compatible with a newer provider.
+APP_VERSION_CHECK = True
+API_VERSION_CHECK = True
+
+# Offline mode?
+# Used for skipping soledad bootstrapping/syncs.
+OFFLINE = False
+
+
+# CA cert path
+# used to allow self signed certs in requests that needs SSL
+CA_CERT_FILE = None
diff --git a/src/leap/bitmask/config/leapsettings.py b/src/leap/bitmask/config/leapsettings.py
index c524425e..13a1e99e 100644
--- a/src/leap/bitmask/config/leapsettings.py
+++ b/src/leap/bitmask/config/leapsettings.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# leapsettings.py
-# Copyright (C) 2013 LEAP
+# Copyright (C) 2013, 2014 LEAP
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -14,9 +14,8 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
"""
-QSettings abstraction
+QSettings abstraction.
"""
import os
import logging
@@ -70,6 +69,7 @@ class LeapSettings(object):
GATEWAY_KEY = "Gateway"
PINNED_KEY = "Pinned"
SKIPFIRSTRUN_KEY = "SkipFirstRun"
+ UUIDFORUSER_KEY = "%s/%s_uuid"
# values
GATEWAY_AUTOMATIC = "Automatic"
@@ -353,3 +353,35 @@ class LeapSettings(object):
"""
leap_assert_type(skip, bool)
self._settings.setValue(self.SKIPFIRSTRUN_KEY, skip)
+
+ def get_uuid(self, username):
+ """
+ Gets the uuid for a given username.
+
+ :param username: the full user identifier in the form user@provider
+ :type username: basestring
+ """
+ leap_assert("@" in username,
+ "Expected username in the form user@provider")
+ user, provider = username.split('@')
+ return self._settings.value(
+ self.UUIDFORUSER_KEY % (provider, user), "")
+
+ def set_uuid(self, username, value):
+ """
+ Sets the uuid for a given username.
+
+ :param username: the full user identifier in the form user@provider
+ :type username: str or unicode
+ :param value: the uuid to save or None to remove it
+ :type value: str or unicode or None
+ """
+ leap_assert("@" in username,
+ "Expected username in the form user@provider")
+ user, provider = username.split('@')
+ key = self.UUIDFORUSER_KEY % (provider, user)
+ if value is None:
+ self._settings.remove(key)
+ else:
+ leap_assert(len(value) > 0, "We cannot save an empty uuid")
+ self._settings.setValue(key, value)
diff --git a/src/leap/bitmask/config/providerconfig.py b/src/leap/bitmask/config/providerconfig.py
index e80b2337..2ebe05ce 100644
--- a/src/leap/bitmask/config/providerconfig.py
+++ b/src/leap/bitmask/config/providerconfig.py
@@ -21,11 +21,12 @@ Provider configuration
import logging
import os
-from leap.common.check import leap_check
-from leap.common.config.baseconfig import BaseConfig, LocalizedKey
+from leap.bitmask import provider
from leap.bitmask.config.provider_spec import leap_provider_spec
from leap.bitmask.services import get_service_display_name
from leap.bitmask.util import get_path_prefix
+from leap.common.check import leap_check
+from leap.common.config.baseconfig import BaseConfig, LocalizedKey
logger = logging.getLogger(__name__)
@@ -55,10 +56,7 @@ class ProviderConfig(BaseConfig):
:rtype: ProviderConfig or None if there is a problem loading the config
"""
provider_config = ProviderConfig()
- provider_config_path = os.path.join(
- "leap", "providers", domain, "provider.json")
-
- if not provider_config.load(provider_config_path):
+ if not provider_config.load(provider.get_provider_path(domain)):
provider_config = None
return provider_config