[dev] New prefs_init hook
Jan Schneider
jan at horde.org
Thu Feb 10 21:13:34 UTC 2011
Zitat von Michael M Slusarz <slusarz at horde.org>:
> Quoting Jan Schneider <jan at horde.org>:
>
>> IIUC the new prefs_init hook is called *always* after logging in.
>> This is a change from the old behavior where the preference hooks
>> were only called if a value hasn't been set yet.
>>
>> 1) is this the intended behavior?
>> 2) if yes, why?
>> 3) who is one supposed to determine if the value passed to the hook
>> is the user's value or the pref's default value?
>
> 1) Yes.
>
> 2) Because there was no way to reliably do things like altering a
> currently existing preference, or removing an already set
> preference. You could do this in a hook elsewhere, a login task,
> etc. But it would not be guaranteed that the original preference
> value might be used somewhere in the meantime.
>
> e.g. A theme called 'foo' exists. Some users switch to 'foo'.
> 'foo' is removed as a theme. An admin doesn't want to mess with the
> backend to change this value, so he uses a prefs_init hook to change
> the value of 'foo' to something else.
>
> The use-case you describe above is only one thing an admin would
> want to do when initializing a preference value. The current
> prefs_init method is a more general solution for allowing other
> tasks, while guaranteeing that the pref value will never be used
> unless it is exactly what the admin wants it to be.
>
> 3) $injector->getInstance('Horde_Prefs')->isDefault($pref_name)
This works only for the current user, but prefs_init() is called for
arbitrary users.
Jan.
--
Do you need professional PHP or Horde consulting?
http://horde.org/consulting/
More information about the dev
mailing list