<?php

class Horde_Hooks {
        /**
         * Setting value at login
         * ----------------------
         * If the 'hook' parameter is non-empty for a preference (config/prefs.php),
         * the prefs_init hook will be run on login to allow alteration of the value.
         * This hook receives the preference name, preference value, username, and
         * the master scope object (Horde_Prefs_Scope) as parameters and uses the
         * return value from the hook as the new preference value.
         *
         * Username will be null if the user is not authenticated.
         *
         * This hook is ONLY executed on login and preferences are cached during a
         * users' session.
         * We're making the settings permanent using $scope_ob->set
         */
        public function prefs_init($pref, $value, $username, $scope_ob) {

                if (is_null($username)) {    // not logged in
                        return $value;
                }

                switch ($pref) {
                        case 'from_addr':    // Define "from" address if it hasn't been set before
                                if($value == '') {
                                        $value = $username;
                                        $scope_ob->set($pref, $value);
                                        $scope_ob->setDirty($pref, true);
                                }
                                return $value;
                }
        }
}