
Mozilla Firefox Configuration Template
Silent install package for Mozilla Firefox Configuration Template
78.0-17
- package: tis-firefox-config-template
- name: Mozilla Firefox Configuration Template
- version: 78.0-17
- categories: Configuration
- maintainer: WAPT Team,Tranquil IT,Jimmy PELÉ
- editor: Mozilla Foundation
- licence: wapt_public
- locale: all
- target_os: all
- impacted_process: firefox
- architecture: all
- signature_date:
- size: 11.87 Ko
- homepage : https://support.mozilla.org/kb/customizing-firefox-using-policiesjson
package : tis-firefox-config-template
version : 78.0-17
architecture : all
section : base
priority : optional
name : Mozilla Firefox Configuration Template
categories : Configuration
maintainer : WAPT Team,Tranquil IT,Jimmy PELÉ
description : Configuration for Mozilla Firefox - The package will not have any effect if an ADMX GPO for Firefox is applied
depends :
conflicts :
maturity : PROD
locale : all
target_os : all
min_wapt_version : 2.3
sources : https://github.com/mozilla/policy-templates/
installed_size :
impacted_process : firefox
description_fr : Configuration pour Mozilla Firefox - Le paquet n'aura aucun effet si une GPO ADMX pour Firefox est appliquée
description_pl : Konfiguracja dla Mozilli Firefox - pakiet nie będzie miał żadnego wpływu, jeśli zastosowano ADMX GPO dla Firefoxa
description_de : Konfiguration für Mozilla Firefox - Das Paket hat keine Auswirkungen, wenn ein ADMX GPO für Firefox angewendet wird
description_es : Configuración para Mozilla Firefox - El paquete no tendrá ningún efecto si se aplica un GPO de ADMX para Firefox
description_pt : Configuração para Mozilla Firefox - O pacote não terá qualquer efeito se for aplicado um ADMX GPO para Firefox
description_it : Configurazione per Mozilla Firefox - Il pacchetto non avrà alcun effetto se viene applicato un GPO ADMX per Firefox
description_nl : Configuratie voor Mozilla Firefox - Het pakket zal geen effect hebben als een ADMX GPO voor Firefox wordt toegepast
description_ru : Конфигурация для Mozilla Firefox - Пакет не будет иметь никакого эффекта, если применяется ADMX GPO для Firefox
audit_schedule :
editor : Mozilla Foundation
keywords :
licence : wapt_public
homepage : https://support.mozilla.org/kb/customizing-firefox-using-policiesjson
package_uuid : 6b203902-6e54-4f31-91c7-7ebc7814d28e
valid_from :
valid_until :
forced_install_on :
changelog :
min_os_version :
max_os_version :
icon_sha256sum : 0750ff4649741284d4b6140fbca1d53a7a3e41215d524181a139e761db490311
signer : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature : pWFEK9qIeTZF+3ACROXmNwr9bR7iVLOPogyIYdV466uU1dKXJhDSDH9I/S2TxyuOLHhGNXMzlgi0PG1f/I8KKjYh341jw3wCE6tIkC7mvBO42j72XogK60nGFojMTwbXtLXIExqnQGlk8hh6UQM4LrtRtRRSO6f1UyuF9Zzqizd95slNk3HF77dRybyXmCURuV87Mpb1g1naiLvN8GaxCfpjEky2Or4g9+DyiK4DjN3banAx0HvigSCiyj4a/3rGI59AwyOfY7jONLUXqZk2vCb4rVIQhLy0Qu95sm+DcyrCmiHGmXlHgdG8jvN+fniNclkiCiuewNsTDLbDJypdXA==
signature_date : 2024-04-27T08:00:07.601475
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes
from setuphelpers import *
"""
Installation procedures:
https://mozilla.github.io/policy-templates/
https://mozilla.github.io/policy-templates/#extensionsettings
"""
policies_file = "policies.json"
def get_firefox_policies_dirs():
detected_apps = installed_softwares("Firefox")
firefox_policies_dirs = []
if get_os_name() == "Linux":
firefox_policies_dirs.append("/etc/firefox/policies")
else:
if not detected_apps:
error("Firefox is not installed on this machine.")
for ffox in detected_apps:
if get_os_name() == "Windows":
firefox_policies_dirs.append(makepath(ffox["install_location"], "distribution"))
if get_os_name() == "Darwin":
firefox_policies_dirs.append(makepath(ffox["install_location"], "Contents", "Resources", "distribution"))
return firefox_policies_dirs
def install():
# Check if policies.json is valid
try:
json_load_file(policies_file)
except:
error(f"{policies_file} is malformed.")
# Interact differently with Luti
if params.get("running_as_luti", False):
WAPT.install("tis-firefox")
for ffox_dist_dir in get_firefox_policies_dirs():
policies_path = makepath(ffox_dist_dir, policies_file)
print(f"Writting Firefox configuration to: {policies_path}")
killalltasks(ensure_list(control.impacted_process))
if get_os_name() == "Darwin":
run("sudo defaults write /Library/Preferences/org.mozilla.firefox EnterprisePoliciesEnabled -bool TRUE")
mkdirs(ffox_dist_dir)
filecopyto(policies_file, policies_path)
if get_os_name() == "Windows":
# Removing policies from registry since it bypass the policies.json file (source: https://support.mozilla.org/bm/questions/1236197)
ffox_policies_reg_path = r"SOFTWARE\Policies\Mozilla\Firefox"
if reg_key_exists(HKEY_LOCAL_MACHINE, ffox_policies_reg_path):
registry_deletekey(HKEY_LOCAL_MACHINE, ffox_policies_reg_path, "", force=True)
# Forget package instead of adding it as conflict
WAPT.forget_packages(f"{control.package.split('-')[0]}-config-firefox")
def uninstall():
for ffox_dist_dir in get_firefox_policies_dirs():
policies_path = makepath(ffox_dist_dir, policies_file)
remove_file(policies_path)
if get_os_name() == "Windows":
# Reapplying minimal configuration for Firefox
if not isfile(policies_path):
registry_set(HKEY_LOCAL_MACHINE, r"SOFTWARE\Policies\Mozilla\Firefox", "DisableAppUpdate", 1, REG_DWORD)
registry_set(HKEY_LOCAL_MACHINE, r"SOFTWARE\Policies\Mozilla\Firefox", "DisableTelemetry", 1, REG_DWORD)
def audit():
audit_status = "OK"
for ffox_dist_dir in get_firefox_policies_dirs():
policies_path = makepath(ffox_dist_dir, policies_file)
if not isfile(policies_path):
print("WARNING: Configuration is NOT applied for Firefox, re-applying...")
install()
audit_status = "WARNING"
else:
print("OK: Configuration is correctly applied for Firefox.")
audit_status = "OK"
return audit_status
# def merge_dicts(first, second):
# merged = copy.deepcopy(first)
# merged.update(second)
# return merged
# def merge_json(first, second):
# return merge_dicts(json.loads(first), json.loads(second))
# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *
def update_package():
# Declaring local variables
package_updated = False
# Interact differently with Luti
if params.get("running_as_luti", False):
return "OK"
# Checking wapt version
up_min_wapt_version = "2.5"
if Version(get_version_from_binary("wapt-get.exe")) < Version(up_min_wapt_version):
error(f"Your WAPT Console must be {up_min_wapt_version} minimum to continue")
# Renaming package
if "template" in control.package:
complete_control_package(control)
complete_control_name(control)
if "template" in control.package:
error("Please rename the package.")
else:
last_version_digit = str(int(control.get_software_version().split(".")[-1]) + 1)
version = ".".join(control.get_software_version().split(".")[:-1] + [last_version_digit])
ask_message(
control.package,
"Please note that you will still need to edit this package to apply your own configuration that is compliant with your company's internal policies. You are sole responsible for the use of this package on your network.",
48,
)
else:
last_version_digit = str(int(control.get_software_version().split(".")[-1]) + 1)
version = ".".join(control.get_software_version().split(".")[:-1] + [last_version_digit])
# Changing version of the package
if Version(version, 4) > Version(control.get_software_version(), 4):
print("Software version updated (from: %s to: %s)" % (control.get_software_version(), Version(version)))
package_updated = True
else:
print("Software version up-to-date (%s)" % Version(version))
control.set_software_version(version)
control.save_control_to_wapt()
# Validating or not update-package-sources
return package_updated
7235e48e3019851356fd92e6173902f0fc7ed159b11b8a935d3160e632e70e8d : setup.py
1ce80cd53e3ba07ed982c8b5223869189df6a635f756ec163ba23b64057b54a9 : policies.json
b39a3bb53d6bc3c8e130ab7808148065648d83cd9e2da7ee235eb3fadb116e52 : update_package.py
0750ff4649741284d4b6140fbca1d53a7a3e41215d524181a139e761db490311 : WAPT/icon.png
a5a97261381e1d0ad46ee15916abec9c2631d0201f5cc50ceb0197a165a0bbbf : WAPT/certificate.crt
d6d5f54b8d03ab9779fdb581476d5115279e3aebad7fe80e5e274fa30ea11865 : luti.json
ce828d267b0119f7ea3796c8cf8d33ccf156b6de9ec20f3e3244f21b6b36af85 : WAPT/control