@@ -81,17 +81,31 @@ public function handleAjax()
81
81
if ($ max <= 0 ) return [];
82
82
83
83
// find users by login, fill up with names if wanted
84
- $ logins = (array )$ auth ->retrieveUsers (0 , $ max , ['user ' => $ lookup ]);
84
+ // Because a value might be interpreted as integer in the
85
+ // array key, we temporarily pad each key with a space at the
86
+ // end to enforce string keys.
87
+ $ pad_keys = function ($ logins ) {
88
+ $ result = [];
89
+ foreach ($ logins as $ login => $ info ) {
90
+ $ result ["$ login " ] = $ info ;
91
+ }
92
+ return $ result ;
93
+ };
94
+ $ logins = $ pad_keys ($ auth ->retrieveUsers (0 , $ max , ['user ' => $ lookup ]));
85
95
if ((count ($ logins ) < $ max ) && $ this ->config ['autocomplete ' ]['fullname ' ]) {
86
- $ logins = array_merge ($ logins , (array )$ auth ->retrieveUsers (0 , $ max , ['name ' => $ lookup ]));
96
+ $ logins = array_merge (
97
+ $ logins ,
98
+ $ pad_keys ($ auth ->retrieveUsers (0 , $ max , ['name ' => $ lookup ]))
99
+ );
87
100
}
88
101
89
102
// reformat result for jQuery UI Autocomplete
90
103
$ users = [];
91
104
foreach ($ logins as $ login => $ info ) {
105
+ $ true_login = substr ($ login , 0 , -1 );
92
106
$ users [] = [
93
- 'label ' => $ info ['name ' ] . ' [ ' . $ login . '] ' ,
94
- 'value ' => $ login
107
+ 'label ' => $ info ['name ' ] . ' [ ' . $ true_login . '] ' ,
108
+ 'value ' => $ true_login
95
109
];
96
110
}
97
111
0 commit comments