mirror of
https://github.com/altlinux/gpupdate.git
synced 2025-03-21 18:50:38 +03:00
Firefox and Chromium appliers refactored to avoid setting its own defaults
This commit is contained in:
parent
039a5f4c85
commit
788877b1ad
@ -3,6 +3,7 @@ from .applier_frontend import applier_frontend
|
||||
import logging
|
||||
import json
|
||||
import os
|
||||
|
||||
import util
|
||||
|
||||
class chromium_applier(applier_frontend):
|
||||
@ -43,8 +44,9 @@ class chromium_applier(applier_frontend):
|
||||
return defval
|
||||
|
||||
def set_policy(self, name, obj):
|
||||
self.policies[name] = obj
|
||||
logging.info('Chromium policy \'{}\' set to {}'.format(name, obj))
|
||||
if obj:
|
||||
self.policies[name] = obj
|
||||
logging.info('Chromium policy \'{}\' set to {}'.format(name, obj))
|
||||
|
||||
def set_user_policy(self, name, obj):
|
||||
'''
|
||||
@ -56,18 +58,25 @@ class chromium_applier(applier_frontend):
|
||||
os.makedirs(prefdir, exist_ok=True)
|
||||
|
||||
prefpath = os.path.join(prefdir, 'Preferences')
|
||||
util.mk_homedir_path(self.username, self.__user_settings)
|
||||
settings = dict()
|
||||
with open(prefpath, 'r') as f:
|
||||
settings = json.load(f)
|
||||
try:
|
||||
with open(prefpath, 'r') as f:
|
||||
settings = json.load(f)
|
||||
except FileNotFoundError as exc:
|
||||
logging.error('Chromium preferences file {} does not exist at the moment'.format(prefpath))
|
||||
except:
|
||||
logging.error('Error during attempt to read Chromium preferences for user {}'.format(self.username))
|
||||
|
||||
settings[name] = obj
|
||||
if obj:
|
||||
settings[name] = obj
|
||||
|
||||
with open(prefpath, 'w') as f:
|
||||
json.dump(settings, f)
|
||||
logging.info('Set user ({}) property \'{}\' to {}'.format(self.username, name, obj))
|
||||
with open(prefpath, 'w') as f:
|
||||
json.dump(settings, f)
|
||||
logging.info('Set user ({}) property \'{}\' to {}'.format(self.username, name, obj))
|
||||
|
||||
def get_home_page(self, hkcu=False):
|
||||
return self.get_hklm_string_entry_default('HomepageLocation', 'about:blank')
|
||||
return self.get_hklm_string_entry('HomepageLocation')
|
||||
|
||||
def machine_apply(self):
|
||||
'''
|
||||
@ -80,7 +89,7 @@ class chromium_applier(applier_frontend):
|
||||
os.makedirs(self.__managed_policies_path, exist_ok=True)
|
||||
with open(destfile, 'w') as f:
|
||||
json.dump(self.policies, f)
|
||||
logging.info('Wrote Chromium preferences to {}'.format(destfile))
|
||||
logging.debug('Wrote Chromium preferences to {}'.format(destfile))
|
||||
|
||||
def user_apply(self):
|
||||
'''
|
||||
@ -94,6 +103,5 @@ class chromium_applier(applier_frontend):
|
||||
'''
|
||||
self.machine_apply()
|
||||
if not self._is_machine_name:
|
||||
logging.info('Running user applier for Chromium')
|
||||
logging.debug('Running user applier for Chromium')
|
||||
self.user_apply()
|
||||
|
||||
|
@ -65,8 +65,9 @@ class firefox_applier(applier_frontend):
|
||||
'''
|
||||
Add entry to policy set.
|
||||
'''
|
||||
self.policies[name] = obj
|
||||
logging.info('Firefox policy \'{}\' set to {}'.format(name, obj))
|
||||
if obj:
|
||||
self.policies[name] = obj
|
||||
logging.info('Firefox policy \'{}\' set to {}'.format(name, obj))
|
||||
|
||||
def get_home_page(self):
|
||||
'''
|
||||
@ -77,19 +78,23 @@ class firefox_applier(applier_frontend):
|
||||
'Locked': False,
|
||||
'StartPage': 'homepage'
|
||||
})
|
||||
response = self.get_hklm_string_entry_default('Homepage\\URL', 'about:config')
|
||||
homepage['URL'] = response
|
||||
|
||||
return homepage
|
||||
response = self.get_hklm_string_entry('Homepage\\URL')
|
||||
if response:
|
||||
homepage['URL'] = response
|
||||
return homepage
|
||||
return None
|
||||
|
||||
def get_block_about_config(self):
|
||||
'''
|
||||
Query BlockAboutConfig boolean property from the storage.
|
||||
'''
|
||||
response = self.get_hklm_string_entry_default('BlockAboutConfig', False)
|
||||
if response.lower() in ['0', 'false', False, None, 'None']:
|
||||
return False
|
||||
return True
|
||||
response = self.get_hklm_string_entry('BlockAboutConfig')
|
||||
if response:
|
||||
if response.lower() in ['0', 'false', False, None, 'None']:
|
||||
return False
|
||||
return True
|
||||
|
||||
return None
|
||||
|
||||
def machine_apply(self):
|
||||
'''
|
||||
@ -103,18 +108,18 @@ class firefox_applier(applier_frontend):
|
||||
os.makedirs(self.__firefox_installdir, exist_ok=True)
|
||||
with open(destfile, 'w') as f:
|
||||
json.dump(self.policies_json, f)
|
||||
logging.info('Wrote Firefox preferences to {}'.format(destfile))
|
||||
logging.debug('Wrote Firefox preferences to {}'.format(destfile))
|
||||
|
||||
def user_apply(self):
|
||||
profiles = self.get_profiles()
|
||||
|
||||
profiledir = os.path.join(util.get_homedir(self.username), self.__user_settings_dir)
|
||||
for profile in profiles:
|
||||
logging.info('Found Firefox profile in {}/{}'.format(profiledir, profile))
|
||||
logging.debug('Found Firefox profile in {}/{}'.format(profiledir, profile))
|
||||
|
||||
def apply(self):
|
||||
self.machine_apply()
|
||||
if not self._is_machine_name:
|
||||
logging.info('Running user applier for Firefox')
|
||||
logging.debug('Running user applier for Firefox')
|
||||
self.user_apply()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user