
Mozilla Firefox Configuration Template
Silent install package for Mozilla Firefox Configuration Template
78.0-18
- package: tis-firefox-config-template
- name: Mozilla Firefox Configuration Template
- version: 78.0-18
- categories: Configuration
- maintainer: WAPT Team,Tranquil IT,Jimmy PELÉ
- editor: Mozilla Foundation
- licence: opensource_free,cpe:/a:gnu:gpl_v3,wapt_public
- locale: all
- target_os: all
- impacted_process: firefox
- architecture: all
- signature_date:
- size: 11.95 Ko
- homepage : https://support.mozilla.org/kb/customizing-firefox-using-policiesjson
package : tis-firefox-config-template
version : 78.0-18
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 : opensource_free,cpe:/a:gnu:gpl_v3,wapt_public
homepage : https://support.mozilla.org/kb/customizing-firefox-using-policiesjson
package_uuid : 1464b898-e179-453b-860c-bd6e1feaa9b7
valid_from :
valid_until :
forced_install_on :
changelog :
min_os_version :
max_os_version :
icon_sha256sum : 0750ff4649741284d4b6140fbca1d53a7a3e41215d524181a139e761db490311
signer : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature : cyqQ36wTh5bqmNy/hRwqMymwUT9O7YAOcgUeuEjUnkDrD06LR2uwmyFvIvGR9cMbjSthnmZJjXxSasJimwpxVU4zyAf2bItWOXxwuSqRO82pShX0X/213AiGG52ZbyjZGB8aqunnOPX93CQ8UItwU7duFuPqw7zAEVPoT9GPaz5Unc9d1DBl8G7chkO8jus3qeJ2UoimaMwNkYFSIEPDSWKXIUaN8flZ44aaTfbX5dRnO581G3bnYqpTSkhxvDWPPRcmbZUZ99M9NYxvSnpfqB6QYI0VjtmWwArFRXh9+dc43qoBtw/qIV02i58bhwUy3M9fiNsA7gpZWxe+SLWRDg==
signature_date : 2024-04-28T10:00:26.053864
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 firefox_policies_dir in get_firefox_policies_dirs():
policies_path = makepath(firefox_policies_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(firefox_policies_dir)
filecopyto(policies_file, policies_path)
if get_os_name() == "Windows":
ffox_policies_reg_path = r"SOFTWARE\Policies\Mozilla\Firefox"
if reg_key_exists(HKEY_LOCAL_MACHINE, ffox_policies_reg_path):
print(
"WARNING: Registry policies has been removed because it bypasses the policies.json file (source: https://support.mozilla.org/bm/questions/1236197)."
)
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 firefox_policies_dir in get_firefox_policies_dirs():
policies_path = makepath(firefox_policies_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 firefox_policies_dir in get_firefox_policies_dirs():
policies_path = makepath(firefox_policies_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(dict1, dict2):
# for key, value in dict2.items():
# if key in dict1 and isinstance(value, dict) and isinstance(dict1[key], dict):
# merge_dicts(dict1[key], value) # recursive merge
# else:
# dict1[key] = value
# return dict1
# -*- 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
18a1348ad8bc95dfbf92b22d403c020cf64bb93498020ff37da435063022928e : setup.py
1ce80cd53e3ba07ed982c8b5223869189df6a635f756ec163ba23b64057b54a9 : policies.json
b39a3bb53d6bc3c8e130ab7808148065648d83cd9e2da7ee235eb3fadb116e52 : update_package.py
0750ff4649741284d4b6140fbca1d53a7a3e41215d524181a139e761db490311 : WAPT/icon.png
a5a97261381e1d0ad46ee15916abec9c2631d0201f5cc50ceb0197a165a0bbbf : WAPT/certificate.crt
58540eae16a742f75267802b0e04e17ed0802f6c5a6fad17422d48c3756bff1c : luti.json
e4339eb651cb2954fa39b610fde0619d21d8f08160bccff1abb2837d189e198d : WAPT/control