Официальный телеграм канал веб-сайта Object hub, бывший ранее ИНМТ Форум
Бот для связи с администрацией @ojhub092_bot
Post #669
150
Ошибка - невозможно выкладывать файлы совладельцам вики
Причина: Данные о совладельцах вики хранятся отдельно от совладельцев проектов, серверная функция
Как я исправил - Вместо замены одной функции на другую я дополнил функцию
#багревью #код
Причина: Данные о совладельцах вики хранятся отдельно от совладельцев проектов, серверная функция
content::checkItem() не предусматривала появление отдельной таблицы все 11 месяцев существования Object hub, остальные вики скрипты использовали другую функцию для проверки на совладельца Guides::checkPerms() которая была создана исключительно для проверка на совладельца викиКак я исправил - Вместо замены одной функции на другую я дополнил функцию
content::checkItem(), и она теперь умеет проверять совладельцев и на вики, вот как выглядит код теперь:php public static function checkItem(int $userId, int $ID, int $type) {
switch ($type) {
case 0: $where = 'gdpses'; $user = 'author'; break;
case 1: $where = 'gdpses'; $user = 'author'; break;
case 2: $where = 'wikis'; $user = 'userId'; break;
}
global $conn;
$a = $conn->prepare('SELECT * FROM `'.$where.'` WHERE `ID` = ? AND `'.$user.'` = ?');
$a->execute([$ID, $userId]);
if ($a->fetchColumn() == true)
return 2;
if ($type !== 2) { // раньше шёл запрос к базе данных сразу на soowners, теперь же проверяет вики это или нет
$b = $conn->prepare('SELECT * FROM `soowners` WHERE `gdpsId` = ? AND `userId` = ?');
$b->execute([$ID, $userId]);
if ($b->fetchColumn() == true)
return 1;
} else {
$b = $conn->prepare('SELECT * FROM `wikisoowners` WHERE `wikiId` = ? AND `userId` = ?');
$b->execute([$ID, $userId]);
if ($b->fetchColumn() == true)
return 1;
}
return 0;
}#багревью #код

