diff options
| -rw-r--r-- | src/leap/bitmask/vpn/helpers/__init__.py | 7 | ||||
| -rw-r--r-- | src/leap/bitmask/vpn/privilege.py | 24 | 
2 files changed, 15 insertions, 16 deletions
| diff --git a/src/leap/bitmask/vpn/helpers/__init__.py b/src/leap/bitmask/vpn/helpers/__init__.py index 3b7e1176..f57bd7fd 100644 --- a/src/leap/bitmask/vpn/helpers/__init__.py +++ b/src/leap/bitmask/vpn/helpers/__init__.py @@ -6,6 +6,8 @@ import sys  from leap.bitmask.vpn.constants import IS_LINUX  from leap.bitmask.vpn import _config +from leap.bitmask.util import STANDALONE +  if IS_LINUX:      helper_to = '/usr/local/sbin/bitmask-root' @@ -22,8 +24,9 @@ if IS_LINUX:          copyfile(polkit_from, polkit_to) -        copyfile(openvpn_from, openvpn_to) -        chmod(openvpn_to, 0700) +        if STANDALONE: +            copyfile(openvpn_from, openvpn_to) +            chmod(openvpn_to, 0700)      def uninstall():          remove(helper_to) diff --git a/src/leap/bitmask/vpn/privilege.py b/src/leap/bitmask/vpn/privilege.py index d918a30d..c7cf1199 100644 --- a/src/leap/bitmask/vpn/privilege.py +++ b/src/leap/bitmask/vpn/privilege.py @@ -41,31 +41,27 @@ log = Logger()  # TODO wrap the install/uninstall helper functions around the policychecker  # classes below. +  def install_helpers(): -    if IS_LINUX: -        cmd = 'bitmask_helpers install' -        if STANDALONE: -            binary_path = os.path.join(here(), "bitmask") -            cmd = "%s %s" % (binary_path, cmd) -        if os.getuid() != 0: -            cmd = 'pkexec ' + cmd -        retcode, _ = commands.getstatusoutput(cmd) -        if retcode != 0: -            raise Exception('Could not install helpers') -    else: -        raise Exception('No install mechanism for this platform') +    _helper_installer('install')  def uninstall_helpers(): +    _helper_installer('uninstall') + + +def _helper_installer(action): +    if action not in ('install', 'uninstall'): +        raise Exception('Wrong action: %s' % action) +      if IS_LINUX: -        cmd = 'bitmask_helpers uninstall' +        cmd = 'bitmask_helpers ' + action          if STANDALONE:              binary_path = os.path.join(here(), "bitmask")              cmd = "%s %s" % (binary_path, cmd)          if os.getuid() != 0:              cmd = 'pkexec ' + cmd          retcode, _ = commands.getstatusoutput(cmd) -        commands.getoutput('pkexec ' + cmd)          if retcode != 0:              raise Exception('Could not uninstall helpers')      else: | 
