Quote:
Originally Posted by Ophelia
We ran into an issue tonight. I have checked the permissions, and this gal should be able to upload, however, we get the following error
Her username is Rachel's Stuff (just like that).
She's in the correct usergroup, she has permissions, but it's deny her the right to upload. Any ideas (I am thinking it's because of her username).
|
Yes, this is a username problem.
I can't recall which version of LDM you are running - if it is 2.2.8, you can fix the problem (I hope) as follows:
edit includes/local_links_include.php
find function lookup_userids (around line 1843)
replace the following sequence of lines:
Code:
$ids = array();
foreach ($usernames as $k=>$v) {
$usernames[$k] = trim($vbulletin->db->escape_string(htmlspecialchars_uni($v)));
$ids[$k] = 0;
}
$userlist = implode("' ,'", $usernames);
if (!trim($userlist)) return $ids;
$query = "
SELECT userid, username
FROM " . TABLE_PREFIX . "user AS user
WHERE username IN ('" . $userlist . "')
";
$asb = $vbulletin->db->query_read($query);
while ($rec=$vbulletin->db->fetch_array($asb)) {
foreach ($usernames as $k=>$v) {
if ($v==$rec['username']) {
$ids[$k] = $rec['userid'];
continue;
}
}
}
$vbulletin->db->free_result($asb);
return $ids;
by
Code:
$ids = array();
$safe_usernames = array();
foreach ($usernames as $k=>$v) {
$safe_usernames[$k] = trim($vbulletin->db->escape_string(htmlspecialchars_uni($v)));
$ids[$k] = 0;
}
$safe_userlist = implode("' ,'", $safe_usernames);
if (!trim($safe_userlist)) return $ids;
$query = "
SELECT userid, username
FROM " . TABLE_PREFIX . "user AS user
WHERE username IN ('" . $safe_userlist . "')
";
$asb = $vbulletin->db->query_read($query);
while ($rec=$vbulletin->db->fetch_array($asb)) {
foreach ($usernames as $k=>$v) {
if ($v==$rec['username']) {
$ids[$k] = $rec['userid'];
continue;
}
}
}
$vbulletin->db->free_result($asb);
return $ids;
Basically, replace most of the references to usernames with safe_usernames.
This will be fixed in the next version of 2.2.9.