[kronolith] Default external calendar
Jan Schneider
jan at horde.org
Mon Mar 19 08:36:05 UTC 2012
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.
--
The Horde Project
http://www.horde.org/
More information about the kronolith
mailing list