[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