[kronolith] Default fb_cals on first user login via hooks doesn't work right

winnertako fabiojsousa at gmail.com
Fri Jun 14 10:08:43 UTC 2019


Michael J Rubinsky wrote
> Quoting winnertako <

> fabiojsousa@

> >:
> 
>> Hello,
>>
>> I'm trying to initialize the free-busy information on users first login
>> via
>> hooks. My hook:
>>
>> class Kronolith_Hooks
>> {
>>      public function prefs_init($pref, $value, $username, $scope_ob)
>>      {
>>          if (is_null($username)) {	// not logged in
>>              return $value;
>>          }
>>
>>          switch ($pref) {
>>          	case 'fb_cals':
>>          		$cals =
>> @unserialize($GLOBALS['prefs']->getValue('display_cals'));
>>          		$fb_url = 'a:1:{i:0;s:32:"internal_' . $cals[0] . '";}';
>>          		$GLOBALS['prefs']->setValue('fb_cals', $fb_url);
>>                 $scope_ob->set($pref, $fb_url);
>>                 $scope_ob->setDirty($pref, true);
>>
>>  		}
>>  		return $fb_url;
>>  	}
>>  }
>>
>>
>> I've one strange problem, when the user get is first login the free-busy
>> link is wrong *a:1:{i:0;s:32:"internal_";}*
>> but when the user do the second login the free-busy information get the
>> correct syntax  *a:1:{i:0;s:32:"internal_pZFqfLNIZnq_4Rm6je1d_aE";}*
>>
>> What I'm missing ?
> 
> The prefs_init method is called before the application is fully  
> initialized. The VERY FIRST time a user logs in, there are no  
> calendars for that user (and they are not created until during app  
> initialization), so there are therefore no calendars in that user's  
> preferences yet...therefore, there is no existing calendar id to  
> populate the fb_url with.
> 
> 
> You should look at the appauthenticated hook instead, as suggested by  
> the comments in hooks.php.dist.
> 
> 
>> Thank you
>>
>>
>>
>>
>>
>> --
>> Sent from: http://horde.690.n7.nabble.com/Horde-Kronolith-f87467.html
>> --
>> kronolith mailing list
>> Frequently Asked Questions: http://wiki.horde.org/FAQ
>> To unsubscribe, mail: 

> kronolith-unsubscribe at .horde

> 
> 
> 
> -- 
> mike
> The Horde Project
> http://www.horde.org
> https://www.facebook.com/hordeproject
> https://www.twitter.com/hordeproject
> 
> -- 
> kronolith mailing list
> Frequently Asked Questions: http://wiki.horde.org/FAQ
> To unsubscribe, mail: 

> kronolith-unsubscribe at .horde

> 
> 
> attachment0 (9K)
> <http://horde.690.n7.nabble.com/attachment/144221/0/attachment0>
> attachment1 (838 bytes)
> <http://horde.690.n7.nabble.com/attachment/144221/1/attachment1>

I've tried to do the same but inside the *function appauthenticated()* but
without success.  The user  fb_cal only appears after the second login.

    public function appauthenticated()
    {
          $fb_cals = $GLOBALS['prefs']->getValue('fb_cals');

          if ($fb_cals == 'a:0:{}' || $fb_cals ==
'a:1:{i:0;s:32:"internal_";}' || empty($fb_cals)) {
              $display_calendars =
@unserialize($GLOBALS['prefs']->getValue('display_cals'));
              $fb_url = 'a:1:{i:0;s:32:"internal_' . $display_calendars[0] .
'";}';
              $GLOBALS['prefs']->setValue('fb_cals', $fb_url);
              $scope_ob->set($pref, $fb_url);
              $scope_ob->setDirty($pref, true);
          }
    }



--
Sent from: http://horde.690.n7.nabble.com/Horde-Kronolith-f87467.html


More information about the kronolith mailing list