[kronolith] Default external calendar

gerard breiner gerard.breiner at ias.u-psud.fr
Sun Mar 18 21:34:03 UTC 2012


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....

Best regards

Gérard Breiner







More information about the kronolith mailing list