[kronolith] Default external calendar

Gerard Breiner gerard.breiner at ias.u-psud.fr
Fri Apr 6 12:51:34 UTC 2012


Le 06/04/2012 13:40, Jan Schneider a écrit :
>
> Zitat von Gerard Breiner <gerard.breiner at ias.u-psud.fr>:
>
>> Le 19/03/2012 16:41, Gerard Breiner a écrit :
>>> 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]
>>>
>>>
>> Hello Jan and alls,
>>
>> I come back again about this subject because  what I believed was 
>> working doesn't longer works... I have to recognized that the use of 
>> namespace and *use* keywords are new for me. So for doing "simple" I 
>> use $value = Kronolith::subscribeRemoteCalendar($info); . 
>> Nevertheless, it seems that $value is empty.
>
> Yes. The method doesn't return anything. It does exactly what the 
> method name says. It subscribes a remote calendar.
>
>> Kronolith is 3.016.
>>
>> Here is the kronolith/config/hooks.php :
>>
>> [CODE]
>> class Kronolith_Hooks
>> {
>>     public function prefs_init($prefs, $value, $username, $scope_ob)
>>     {
>> $user = $username;
>>         switch ($prefs) {
>>              case 'remote_cals':
>>                    $password = 
>> $GLOBALS['registry']->getAuthCredential('password');
>>                    $info = array(array('name' => $username,
>>                                        'url' => 
>> 'https://calendar.ias.u-psud.fr/caldav.php/' .$username. '/calendar',
>>                                        'user' => $user,
>>                                        'password' => $password
>>                                       )
>>                                  );
>>                $value = subscribeRemoteCalendar($info);
>>                return $value;
>>         }
>>    }
>>
>> [/CODE]
>>
>> And the prefs['remote-cals'] in kronolith/config/prefs.local.php
>>
>> [CODE]
>> // remote calendars
>> $_prefs['remote_cals'] = array(
>>     'value' => '',
>>     'hook' => 'true'
>> );
>> [/CODE]
>>
>> And the horde.log about kronolith :
>>
>> [LOG]
>> 2012-04-06T11:40:53+02:00 DEBUG: HORDE4 [kronolith] Load config file 
>> (conf.php; app: kronolith) [pid 28322 on line 865 of "/ww            
>>                                     w/horde4/pear/php/Horde.php"]
>> 2012-04-06T11:40:53+02:00 DEBUG: HORDE4 [kronolith] Load config file 
>> (hooks.php; app: kronolith) [pid 28322 on line 865 of "/w            
>>                                     ww/horde4/pear/php/Horde.php"]
>> 2012-04-06T11:40:53+02:00 DEBUG: HORDE4 [kronolith] SQL  (0,0002s)
>>         SELECT DISTINCT s.* FROM kronolith_shares s LEFT JOIN
>>           kronolith_shares_users u ON u.share_id = s.share_id LEFT JOIN
>>           kronolith_shares_groups g ON g.share_id = s.share_id WHERE
>> 2012-04-06T11:40:53+02:00 DEBUG: HORDE4 [kronolith] SQL  (0,0001s)
>>         SELECT share_id, user_uid, perm FROM kronolith_shares_users 
>> WHERE
>> 2012-04-06T11:40:53+02:00 DEBUG: HORDE4 [kronolith] SQL  (0,0001s)
>>         SELECT share_id, group_uid, perm FROM kronolith_shares_groups 
>> WHERE
>> 2012-04-06T11:40:53+02:00 DEBUG: HORDE4 [kronolith] Horde_Prefs: 
>> Storing preference value (display_remote_cals) [pid 28322 on         
>>                                         line 200 of 
>> "/www/horde4/pear/php/Horde/Prefs.php"]
>> 2012-04-06T11:40:53+02:00 DEBUG: HORDE4 [kronolith] Horde_Prefs: 
>> Storing preference value (holiday_drivers) [pid 28322 on line        
>>                                          200 of 
>> "/www/horde4/pear/php/Horde/Prefs.php"]
>> 2012-04-06T11:40:53+02:00 DEBUG: HORDE4 [kronolith] Horde_Prefs: 
>> Storing preference value (display_external_cals) [pid 28322 o        
>>                                         n line 200 of 
>> "/www/horde4/pear/php/Horde/Prefs.php"]
>> 2012-04-06T11:40:53+02:00 DEBUG: HORDE4 [kronolith] SQL  (0,0001s)
>>         SELECT DISTINCT s.* FROM kronolith_shares s LEFT JOIN
>>           kronolith_shares_users u ON u.share_id = s.share_id LEFT JOIN
>>           kronolith_shares_groups g ON g.share_id = s.share_id WHERE
>> 2012-04-06T11:40:53+02:00 DEBUG: HORDE4 [kronolith] SQL  (0,0001s)
>>         SELECT share_id, user_uid, perm FROM kronolith_shares_users 
>> WHERE
>> 2012-04-06T11:40:53+02:00 DEBUG: HORDE4 [kronolith] SQL  (0,0006s)
>> 2012-04-06T11:40:53+02:00 DEBUG: HORDE4 [kronolith] Max memory usage: 
>> 35913728 bytes [pid 28322 on line 476 of "/www/horde4/pe      
>>                                           ar/php/Horde/Registry.php"]
>> [/LOG]
>>
>> Thanks in advance.
>>
>> Best regards.
>>
>> Gérard Breiner
>>
>>
>>
>>
>> -- 
>> kronolith mailing list
>> Frequently Asked Questions: http://wiki.horde.org/FAQ
>> To unsubscribe, mail: kronolith-unsubscribe at lists.horde.org
>
So, how I can see the subscribe is performed whereas "Remote Calendars" 
doesn't show up anything ?
It doesn't work since I've removed the one I  had created via the hook 
and changed the name of the remote calendar in the hook by $username.

  (I recently upgrade by pear, so horde is now 4.0.14 and kronolith is 
3.0.16). I also migrate again the database horde3 to horde4 to assume 
that all is "right". Nevertheless there is certainly something I missed 
but after working several days on this issue I have to recognize I need 
help. If you could give me some others hints for tracking this that 
would be friendly.

Many thanks.

Best regards.

Gérard Breiner


More information about the kronolith mailing list