/usr/share/spotweb/lib/SpotSettings.php is in spotweb 20111002+dfsg-4.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | <?php
define('SPOTWEB_SETTINGS_VERSION', '0.06');
define('SPOTWEB_VERSION', '0.' . (SPOTDB_SCHEMA_VERSION * 100) . '.' . (SPOTWEB_SETTINGS_VERSION * 100) . '.' . (SPOTWEB_SECURITY_VERSION * 100));
/*
* Classe om de server settings in op te slaan
*/
class SpotSettings {
private static $_instance = null;
private $_db;
/* Gemergede array met alle settings */
private static $_settings;
/* Settings die uit PHP komen */
private static $_phpSettings;
/* Settings die uit de database komen */
private static $_dbSettings;
/*
* Instantieert een nieuwe settings klasse
*/
public static function singleton(SpotDb $db, array $phpSettings) {
if (self::$_instance === null) {
self::$_instance = new SpotSettings($db);
# maak de array met PHP settings beschikbaar in de klasse
self::$_phpSettings = $phpSettings;
# haal alle settings op, en prepareer die
self::$_dbSettings = $db->getAllSettings();
# en merge de settings met degene die we door krijgen
self::$_settings = array_merge(self::$_phpSettings, self::$_dbSettings);
} # if
return self::$_instance;
} # singleton
/*
* Geeft de waarde van de setting terug
*/
function get($name) {
return self::$_settings[$name];
} # get
/*
* Unset een bepaalde waarde
*/
function remove($name) {
unset(self::$_settings[$name]);
$this->_db->removeSetting($name);
} # remove
/*
* Geeft terug of een bepaalde setting uit de database
* komt of uit de settings.php file. De settings-file
* heeft altijd prioriteit
*/
function getOrigin($name) {
if (isset(self::$_phpSettings[$name])) {
return "php";
} else {
return "db";
} # if
} # getOrigin
/*
* Set de waarde van de setting, maakt hem ook
* meteen persistent dus mee oppassen
*/
function set($name, $value) {
# Als de setting uit PHP komt, dan mag die niet geupdate worden
# hier omdat we dan niet meer weten wat er gebeurt.
if (isset(self::$_phpSettings[$name])) {
throw new InvalidSettingsUpdateException();
} # if
# Update onze eigen settings array zodat we meteen up-to-date zijn
self::$_settings[$name] = $value;
$this->_db->updateSetting($name, $value);
} # set
/*
* Zijn onze settings versie nog wel geldig?
*/
function settingsValid() {
# SPOTWEB_SETTINGS_VERSION is gedefinieerd bovenin dit bestand
return ($this->get('settingsversion') == SPOTWEB_SETTINGS_VERSION);
} # settingsValid
/*
* Bestaat de opgegeven setting ?
*/
function exists($name) {
return isset(self::$_settings[$name]);
} # isSet
/*
* Private constructor, moet altijd via singleton gaan
*/
private function __construct($db) {
$this->_db = $db;
} # ctor
} # class SpotSettings
|