[kronolith] Default external calendar
Gerard Breiner
gerard.breiner at ias.u-psud.fr
Mon Mar 19 15:41:45 UTC 2012
Le 19/03/2012 09:36, Jan Schneider a écrit :
>
> Zitat von gerard breiner <gerard.breiner at ias.u-psud.fr>:
>
>> gerard breiner <gerard.breiner at ias.u-psud.fr> a écrit :
>>
>>> Jan Schneider <jan at horde.org> a écrit :
>>>
>>>> Zitat von gerard breiner <gerard.breiner at ias.u-psud.fr>:
>>>>
>>>>> Jan Schneider <jan at horde.org> a écrit :
>>>>>
>>>>>> Zitat von Gerard Breiner <gerard.breiner at ias.u-psud.fr>:
>>>>>>
>>>>>>> Le 14/02/2012 15:37, Jan Schneider a écrit :
>>>>>>>>
>>>>>>>> Zitat von Martin Hochreiter <linuxbox at wavenet.at>:
>>>>>>>>
>>>>>>>>>> You cannot simply replace strings in the value copied from
>>>>>>>>>> the database, because it is a serialized hash. Using
>>>>>>>>>> $registry in prefs.local.php is not a good idea either.
>>>>>>>>>> Instead you should create a preference hook that builds the
>>>>>>>>>> hash, and return it serialized.
>>>>>>>>>>
>>>>>>>>> what a pitty :) ... ok, thank you I will create a hook for
>>>>>>>>> that (new world for me...)
>>>>>>>>> What should I use instead of the $registry variable to get the
>>>>>>>>> credentials - or is it ok
>>>>>>>>> to use it in the hooks?
>>>>>>>>
>>>>>>>> The prefs_init hook already gets the user name passed.
>>>>>>>>
>>>>>>> Hello ,
>>>>>>>
>>>>>>> I'm working on this too... So I followed the above Jan's advice
>>>>>>> and as well as read the very good doc
>>>>>>> /horde/config/hooks.php.dist (many thanks for all the work). The
>>>>>>> result is that I managed to create the remote calendar by
>>>>>>> working with prefs and hooks.local.php.
>>>>>>>
>>>>>>> Here is what I've done :
>>>>>>> kronolit/config/prefs.local.php
>>>>>>>
>>>>>>> [CODE]
>>>>>>> // remote calendars
>>>>>>> $_prefs['remote_cals'] = array(
>>>>>>> 'value' => '',
>>>>>>> 'hook' => 'true',
>>>>>>> 'locked' => 'false'
>>>>>>> );
>>>>>>> [/CODE]
>>>>>>>
>>>>>>> [CODE]
>>>>>>> kronolith/config/hooks.local.phpclass Kronolith_Hooks
>>>>>>> {
>>>>>>> public function prefs_init($prefs, $value, $username, $scope_ob)
>>>>>>> {
>>>>>>> switch ($prefs) {
>>>>>>> case 'remote_cals':
>>>>>>> $no_serialize = array(array('name'=>'Calendar',
>>>>>>>
>>>>>>> 'url'=>'https://myurl/caldav.php/' .$username. '/agenda',
>>>>>>> 'user'=> $username
>>>>>>> // 'password' => $password
>>>>>>> )
>>>>>>> );
>>>>>>> $value = serialize($no_serialize);
>>>>>>> return $value;
>>>>>>> }
>>>>>>> }
>>>>>>> }
>>>>>>> [/CODE]
>>>>>>>
>>>>>>> Nevertheless at this time I don't know how to catch the
>>>>>>> password... If Jan look at this again I would appreciate a
>>>>>>> little more hints about this last issue.
>>>>>>
>>>>>> Try $GLOBALS['registry']->getAuthCredential('password')
>>>>>>
>>>>>> Jan.
>>>>>>
>>>>>> --
>>>>>> The Horde Project
>>>>>> http://www.horde.org/
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Kronolith mailing list
>>>>>> Frequently Asked Questions: http://horde.org/faq/
>>>>>> To unsubscribe, mail: kronolith-unsubscribe at lists.horde.org
>>>>>
>>>>> Many thanks Jan for this advice... This command give the password
>>>>> without encodage (I tried it in admin/phpshell.php ).
>>>>> Nevertheless it seems that username and password are expecting as
>>>>> something like :
>>>>> s:4:"user";s:12:"PYnhqb8tbok=";s:8:"password";s:15:"PQ7F+FGnp7t="; .
>>>>
>>>> Sorry?
>>>>
>>>> --
>>>> The Horde Project
>>>> http://www.horde.org/
>>>>
>>>>
>>>> --
>>>> Kronolith mailing list
>>>> Frequently Asked Questions: http://horde.org/faq/
>>>> To unsubscribe, mail: kronolith-unsubscribe at lists.horde.org
>>>
>>> Probably misunderstanding from me... So followed your idea for
>>> catching the password, here is what is my code now :
>>>
>>> kronolith/config/hooks.local.php
>>>
>>> [CODE]
>>> class Kronolith_Hooks
>>> {
>>> public function prefs_init($prefs, $value, $username, $scope_ob)
>>> {
>>> switch ($prefs) {
>>> case 'remote_cals':
>>> $no_serialize = array(array('name'=>'Calendar',
>>>
>>> 'url'=>'https://calendar.ias.u-psud.fr/caldav.php/' .$username.
>>> '/calendar',
>>> 'user'=> $username,
>>> 'password' =>
>>> $GLOBALS['registry']->getAuthCredential('password')
>>> )
>>> );
>>> $value = serialize($no_serialize);
>>> return $value;
>>> }
>>> }
>>> }
>>> [/CODE]
>>>
>>> The remote calendar show up in the kronolith's interface but
>>> credentials are still requested despite the user and password in
>>> hooks.local.php.
>>>
>>> Best regards
>>>
>>> Gerard Breiner
>>>
>>> --
>>> Kronolith mailing list
>>> Frequently Asked Questions: http://horde.org/faq/
>>> To unsubscribe, mail: kronolith-unsubscribe at lists.horde.org
>>
>> Hello
>> Just for tests I added a few lines in the above code so that to save
>> the $value variable in a file. We can see that each keys has
>> respectively their values and the password is do catching.
>>
>> a:1:{i:0;a:4:{s:4:"name";s:10:"MyCalendar";s:3:"url";s:59:"https://davicalserver/caldav.php/gbreiner/calendar";s:4:"user";s:8:"gbreiner";s:8:"password";s:7:"1testpass2";}}
>>
>>
>> Having said When I click on agenda (kronolith) and then click on
>> "MyCalendar" I get the message (color red) saying that login and
>> password are requested.
>> So I read again the docs into which it is said : "This hook is ONLY
>> executed on login and preferences are cached during a user's
>> session". So I'm wondering why I have to put again login and password
>> in the form of "MyCalendar".
>>
>> I'm wondering where am I wrong....
>
> User name and password need to be encrypted with the user's password
> and base64 encoded. See Kronolith::subscribeRemoteCalendar(). Or even
> better: *use* subscribeRemoteCalendar().
>
> Jan.
>
Many thanks Jan! Works very fine now .....
The code is now :
kronolith/config/hooks.local.php
[CODE]
namespace Kronolith\subscribeRemoteCalendar;
use Kronolith\subscribeRemoteCalendar;
class Kronolith_Hooks
{
public function prefs_init($prefs, $value, $username, $scope_ob)
{
switch ($prefs) {
case 'remote_cals':
$password =
$GLOBALS['registry']->getAuthCredential('password');
$info = array(array('name'=>'MyCalendar',
'url'=>'https://calendar.ias.u-psud.fr/caldav.php/' .$username. '/calendar',
'user'=> $user,
'password' => $password
)
);
$value = subscribeRemoteCalendar($info);
return $value;
}
}
}
[/CODE]
kronolith/config/prefs.local.php
[CODE]
$_prefs['remote_cals'] = array(
'value' => '',
'hook' => 'true'
);
Best regards.
Gérard Breiner
[/CODE]
More information about the kronolith
mailing list