[kronolith] Default external calendar

Jan Schneider jan at horde.org
Fri Apr 6 11:40:59 UTC 2012


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

-- 
Jan Schneider
The Horde Project
http://www.horde.org/




More information about the kronolith mailing list