userPref() sets a user preference.
lockPref() also sets a user preference, but the programs don't allow a user to change it -- therefore the lock.
unlockPref() unlocks the preference, effectively removing a previously locked preference.`
It is good to see that current Firefox builds have the autoconfig built into them again, and we are putting that to use to distribute (and lock down) settings in Firefox, adding a twist to allow per-user customization. In order to do that, we are passing the username from the user's environment to the autoconfig URL, which can use that username to further customize the returned configuration script. The following snippet (which doesn't contain error- handling) shows how:
var env_user = getenv("USERNAME"); lockPref("autoadmin.global_config_url", "http://example.com/conf.php/u=" + env_user);
(It is interesting to note that a question mark (?) doesn't work in the URI --
that is why we're using a PATH_INFO to retrieve the username.) The
script is as complex as you want it to be. A short example:
<?php $uid = ''; # Extract username into $uid $path = $_SERVER['PATH_INFO']; if (preg_match( '|^/u=(.*)|', $path, $m)) $uid = $m; $home = "http://home.example.com/$uid"; ?> lockPref("browser.startup.homepage", "<? echo $home; ?>");
If you don't feel like reading documentation, there is a CCK add-on that might work for you, but I recommend reading first. If you need inspiration, this site has lots of tips and tricks (some of which may be outdated) on the subject.