[dev] Commit: 4f393eb31fff0d8d9b01fb8f4d69b41bb0a12173 (Don't Use Session Objects)

Michael J Rubinsky mrubinsk at horde.org
Fri Apr 25 15:05:26 UTC 2014


This commit seems to have broken something when first upgrading from  
5.1 to 5.2. After the initial pull, the configuration screen fails to  
load due to broken data being returned from the share system. The data  
is being returned as an array, instead of a share object from  
listShares calls. E.g.,

$GLOBALS['injector']->getInstance('Turba_Shares')->listShares returns  
something like:

array(5) { ["d17518e5a3e507f36a4678a4850c0af3"]=> array(2) {  
["availablePermissions"]=> array(4) { [0]=> int(2) [1]=> int(4) [2]=>  
int(8) [3]=> int(16) } ["data"]=> array(9) { ["share_id"]=> string(4)  
"9227" ["share_name"]=> string(32) "d17518e5a3e507f36a4678a4850c0af3"  
["share_owner"]=> string(6) "ashley" ["share_flags"]=> string(1) "1"  
["attribute_name"]=> string(21) "ashley's Address Book"  
["attribute_desc"]=> NULL ["attribute_params"]=> string(76)  
"a:3:{s:6:"source";s:8:"localsql";s:7:"default";b:1;s:4:"name";s:6:"ashley";}"  
["share_parents"]=> NULL ["perm"]=> array(5) { ["users"]=> array(1) {  
["mike"]=> int(30) } ["type"]=> string(6) "matrix" ["creator"]=>  
int(0) ["guest"]=> int(0) ["default"]=> int(0) } } }  
["29244df57a40774ff5a2ccffc9140473"]=> array(2) {  
["availablePermissions"]=> array(4) { [0]=> int(2) [1]=> int(4) [2]=>  
int(8) [3]=> int(16) } ["data"]=> array(9) { ["share_id"]=> string(4)  
"9277" ["share_name"]=> string(32) "29244df57a40774ff5a2ccffc9140473"  
["share_owner"]=> string(4) "mike" ["share_flags"]=> string(1) "0"  
["attribute_name"]=> string(31) "Michael Rubinsky's Address Book"  
["attribute_desc"]=> NULL ["attribute_params"]=> string(74)  
"a:3:{s:6:"source";s:8:"localsql";s:7:"default";b:1;s:4:"name";s:4:"mike";}"  
["share_parents"]=> NULL ["perm"]=> array(4) { ["type"]=> string(6)  
"matrix" ["creator"]=> int(0) ["guest"]=> int(0) ["default"]=> int(0)  
} } } ["601d139dd8913161f59a196148ea0817"]=> array(2) {  
["availablePermissions"]=> array(4) { [0]=> int(2) [1]=> int(4) [2]=>  
int(8) [3]=> int(16) } ["data"]=> array(9) { ["share_id"]=> string(4)  
"9278" ["share_name"]=> string(32) "601d139dd8913161f59a196148ea0817"  
["share_owner"]=> string(4) "mike" ["share_flags"]=> string(1) "0"  
["attribute_name"]=> string(7) "Clients" ["attribute_desc"]=>  
string(0) "" ["attribute_params"]=> string(85)  
"a:2:{s:6:"source";s:8:"localsql";s:4:"name";s:32:"601d139dd8913161f59a196148ea0817";}" ["share_parents"]=> NULL ["perm"]=> array(4) { ["type"]=> string(6) "matrix" ["creator"]=> int(0) ["guest"]=> int(0) ["default"]=> int(0) } } } ["5MLmb5cRtLVO-n7_55yHeJA"]=> array(2) { ["availablePermissions"]=> array(4) { [0]=> int(2) [1]=> int(4) [2]=> int(8) [3]=> int(16) } ["data"]=> array(9) { ["share_id"]=> string(4) "9281" ["share_name"]=> string(23) "5MLmb5cRtLVO-n7_55yHeJA" ["share_owner"]=> string(4) "mike" ["share_flags"]=> string(1) "1" ["attribute_name"]=> string(6) "Family" ["attribute_desc"]=> string(2) " " ["attribute_params"]=> string(76) "a:2:{s:6:"source";s:8:"localsql";s:4:"name";s:23:"5MLmb5cRtLVO-n7_55yHeJA";}" ["share_parents"]=> NULL ["perm"]=> array(5) { ["users"]=> array(1) { ["ashley"]=> int(14) } ["type"]=> string(6) "matrix" ["creator"]=> int(0) ["guest"]=> int(0) ["default"]=> int(0) } } } ["iGnSGi5-A-zRS154mmpVfA1"]=> array(2) { ["availablePermissions"]=> array(4) { [0]=> int(2) [1]=> int(4) [2]=> int(8) [3]=> int(16) } ["data"]=> array(9) { ["share_id"]=> string(4) "9282" ["share_name"]=> string(23) "iGnSGi5-A-zRS154mmpVfA1" ["share_owner"]=> string(6) "jordyn" ["share_flags"]=> string(1) "1" ["attribute_name"]=> string(22) "Address book of jordyn" ["attribute_desc"]=> string(0) "" ["attribute_params"]=> string(76) "a:3:{s:6:"source";s:8:"localsql";s:7:"default";b:1;s:4:"name";s:6:"jordyn";}" ["share_parents"]=> NULL ["perm"]=> array(5) { ["users"]=> array(2) { ["mike"]=> int(30) ["ashley"]=> int(30) } ["type"]=> string(6) "matrix" ["creator"]=> int(0) ["guest"]=> int(0) ["default"]=> int(0) } } }  
}


and this is the backtrace from loading the config screen:

#0  Turba::getConfigFromShares(Array ([localsql] => Array ([disabled]  
=> ,[title] => Shared Address Books,[type] => sql,[params] => Array  
([table] => turba_objects),[map] => Array ([__key] =>  
object_id,[__owner] => owner_id,[__type] => object_type,[__members] =>  
object_members,[__uid] => object_uid,[firstname] =>  
object_firstname,[lastname] => object_lastname,[middlenames] =>  
object_middlenames,[namePrefix] => object_nameprefix,[nameSuffix] =>  
object_namesuffix,[name] => Array ([fields] => Array ([0] =>  
namePrefix,[1] => firstname,[2] => middlenames,[3] => lastname,[4] =>  
nameSuffix),[format] => %s %s %s %s %s,[parse] => Array ([0] => Array  
([fields] => Array ([0] => firstname,[1] => middlenames,[2] =>  
lastname),[format] => %s %s %s),[1] => Array ([fields] => Array ([0]  
=> firstname,[1] => lastname),[format] => %s %s))),[alias] =>  
object_alias,[yomifirstname] => object_yomifirstname,[yomilastname] =>  
object_yomilastname,[birthday] => object_bday,[anniversary] =>  
object_anniversary,[spouse] => object_spouse,[photo] =>  
object_photo,[phototype] => object_phototype,[homeStreet] =>  
object_homestreet,[homePOBox] => object_homepob,[homeCity] =>  
object_homecity,[homeProvince] => object_homeprovince,[homePostalCode]  
=> object_homepostalcode,[homeCountry] =>  
object_homecountry,[homeAddress] => Array ([fields] => Array ([0] =>  
homeStreet,[1] => homeCity,[2] => homeProvince,[3] =>  
homePostalCode),[format] => %s
%s, %s  %s),[workStreet] => object_workstreet,[workPOBox] =>  
object_workpob,[workCity] => object_workcity,[workProvince] =>  
object_workprovince,[workPostalCode] =>  
object_workpostalcode,[workCountry] =>  
object_workcountry,[workAddress] => Array ([fields] => Array ([0] =>  
workStreet,[1] => workCity,[2] => workProvince,[3] =>  
workPostalCode),[format] => %s
%s, %s  %s),[otherStreet] => object_otherstreet,[otherPOBox] =>  
object_otherpob,[otherCity] => object_othercity,[otherProvince] =>  
object_otherprovince,[otherPostalCode] =>  
object_otherpostalcode,[otherCountry] =>  
object_othercountry,[otherAddress] => Array ([fields] => Array ([0] =>  
otherStreet,[1] => otherCity,[2] => otherProvince,[3] =>  
otherPostalCode),[format] => %s
%s, %s  %s),[department] => object_department,[manager] =>  
object_manager,[assistant] => object_assistant,[timezone] =>  
object_tz,[email] => object_email,[homePhone] =>  
object_homephone,[homePhone2] => object_homephone2,[homeFax] =>  
object_homefax,[workPhone] => object_workphone,[workPhone2] =>  
object_workphone2,[cellPhone] => object_cellphone,[carPhone] =>  
object_carphone,[radioPhone] => object_radiophone,[companyPhone] =>  
object_companyphone,[assistPhone] => object_assistantphone,[fax] =>  
object_fax,[pager] => object_pager,[title] => object_title,[role] =>  
object_role,[company] => object_company,[logo] =>  
object_logo,[logotype] => object_logotype,[notes] =>  
object_notes,[website] => object_url,[freebusyUrl] =>  
object_freebusyurl,[pgpPublicKey] =>  
object_pgppublickey,[smimePublicKey] =>  
object_smimepublickey,[imaddress] => object_imaddress,[imaddress2] =>  
object_imaddress2,[imaddress3] => object_imaddress3),[tabs] => Array  
([Personal] => Array ([0] => firstname,[1] => lastname,[2] =>  
middlenames,[3] => namePrefix,[4] => nameSuffix,[5] => name,[6] =>  
alias,[7] => birthday,[8] => spouse,[9] => anniversary,[10] =>  
yomifirstname,[11] => yomilastname,[12] => photo),[Location] => Array  
([0] => homeStreet,[1] => homePOBox,[2] => homeCity,[3] =>  
homeProvince,[4] => homePostalCode,[5] => homeCountry,[6] =>  
homeAddress,[7] => workStreet,[8] => workPOBox,[9] => workCity,[10] =>  
workProvince,[11] => workPostalCode,[12] => workCountry,[13] =>  
workAddress,[14] => otherStreet,[15] => otherPOBox,[16] =>  
otherCity,[17] => otherProvince,[18] => otherPostalCode,[19] =>  
otherCountry,[20] => otherAddress,[21] => timezone),[Communications]  
=> Array ([0] => email,[1] => homeEmail,[2] => workEmail,[3] =>  
homePhone,[4] => homePhone2,[5] => workPhone,[6] => workPhone2,[7] =>  
carPhone,[8] => radioPhone,[9] => companyPhone,[10] =>  
assistPhone,[11] => homeFax,[12] => cellPhone,[13] => fax,[14] =>  
pager,[15] => imaddress,[16] => imaddress2,[17] =>  
imaddress3),[Organization] => Array ([0] => title,[1] => role,[2] =>  
company,[3] => department,[4] => logo,[5] => assistant,[6] =>  
manager),[Other] => Array ([0] => notes,[1] => website,[2] =>  
freebusyUrl,[3] => pgpPublicKey,[4] => smimePublicKey)),[search] =>  
Array ([0] => name,[1] => email),[strict] => Array ([0] =>  
object_id,[1] => owner_id,[2] => object_type,[3] =>  
object_uid),[export] => 1,[browse] => 1,[use_shares] =>  
1,[list_name_field] => lastname,[alternative_name] =>  
company),[favourites] => Array ([disabled] => ,[title] => Favourite  
Recipients,[type] => favourites,[params] => Array ([limit] =>  
10),[map] => Array ([__key] => email,[name] => email,[email] =>  
email),[search] => Array ([0] => email),[strict] => Array ([0] =>  
id),[export] => 1,[browse] => 1))) called at  
[/usr/local/horde/horde/turba/lib/Application.php:114]
#1  Turba_Application->_init() called at  
[/usr/local/horde/horde/framework/Core/lib/Horde/Registry/Application.php:105]
#2  Horde_Registry_Application->init()
#3  call_user_func_array(Array ([0] => Turba_Application Object  
([features] => Array ([smartmobileView] => 1,[modseq] => 1),[version]  
=> H5 (4.2.0-git),[auth] => Array (),[initParams] => Array (),[] =>  
turba,[] => Array ()),[1] => init), Array ()) called at  
[/usr/local/horde/horde/framework/Core/lib/Horde/Registry.php:1171]
#4  Horde_Registry->callAppMethod(turba, init) called at  
[/usr/local/horde/horde/framework/Core/lib/Horde/Registry.php:1557]
#5  Horde_Registry->pushApp(turba, Array ([check_perms] => 1)) called  
at [/usr/local/horde/horde/framework/Core/lib/Horde/Registry.php:1168]
#6  Horde_Registry->callAppMethod(turba, nosqlDrivers) called at  
[/usr/local/horde/horde/framework/Core/lib/Horde/Core/Nosql.php:42]
#7  Horde_Core_NoSql->getDrivers(turba, 1) called at  
[/usr/local/horde/horde/horde/admin/config/index.php:280]
-- 
mike
The Horde Project
http://www.horde.org
https://www.facebook.com/hordeproject
https://www.twitter.com/hordeproject



More information about the dev mailing list