Редакция 70 |
Редакция 82 |
К новейшей редакции |
Авторство |
Сравнить с предыдущей |
Последнее изменение |
Открыть журнал
| Скачать
| RSS
<?php
/**
* Project: Ant: sources.list generator
* File: process.php
*
* This application is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This application is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
require_once "./sign-valid.php";
$mode = abs(intval($_POST["mode"]));
$go = "./admin.php";
switch ($mode) {
case '0':
break;
case '1':
// Добавление нового дистрибутива
$distname = mysql_real_escape_string($_POST["distName"]);
$distua = mysql_real_escape_string($_POST["distUA"]);
$disttype = abs(intval($_POST["distType"]));
$distlogo = 0;
if ($_FILES["distLOGO"]["type"]!=0) {
$folder = "./img/logo/".stripslashes($distua)."-orig.gif";
$folderN = "./img/logo/".stripslashes($distua).".gif";
$folderEM = "./img/logo/".stripslashes($distua)."-em.gif";
if (move_uploaded_file($_FILES["distLOGO"]["tmp_name"],$folder)) {
chmod($folder, 0644);
list($width, $height) = GetImageSize($folder);
$percent = 32/$height;
$newwidth = $width * $percent;
$newheight = $height * $percent;
$output = ImageCreateTrueColor($newwidth, $newheight);
$source = ImageCreateFromGIF($folder);
ImageCopyResized($output, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
ImageGIF($output, $folderEM);
$percent = 15/$height;
$newwidth = $width * $percent;
$newheight = $height * $percent;
$output = ImageCreateTrueColor($newwidth, $newheight);
ImageCopyResized($output, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
ImageGIF($output, $folderN);
unlink($folder);
$distlogo = 1;
}
}
$res =& $db->query("INSERT INTO distribution SET distname='$distname', distua='$distua', disttype='$disttype', distlogo='$distlogo'");
break;
case '2':
// Правка существующего дистрибутива
$distname = mysql_real_escape_string($_POST["distName"]);
$distua = mysql_real_escape_string($_POST["distUA"]);
$disttype = abs(intval($_POST["distType"]));
$distID = abs(intval($_POST["distID"]));
if ($_FILES["distLOGO"]["type"]!=0) {
$folder = "./img/logo/".stripslashes($distua)."-orig.gif";
$folderN = "./img/logo/".stripslashes($distua).".gif";
$folderEM = "./img/logo/".stripslashes($distua)."-em.gif";
if (move_uploaded_file($_FILES["distLOGO"]["tmp_name"],$folder)) {
chmod ($folder, 0644);
list($width, $height) = GetImageSize($folder);
$percent = 32/$height;
$newwidth = $width * $percent;
$newheight = $height * $percent;
$output = ImageCreateTrueColor($newwidth, $newheight);
$source = ImageCreateFromGIF($folder);
ImageCopyResized($output, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
ImageGIF($output, $folderEM);
$percent = 15/$height;
$newwidth = $width * $percent;
$newheight = $height * $percent;
$output = ImageCreateTrueColor($newwidth, $newheight);
ImageCopyResized($output, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
ImageGIF($output, $folderN);
unlink($folder);
$res =& $db->query("UPDATE distribution SET distlogo='1' WHERE dist_id='$distID'");
}
}
$res =& $db->query("UPDATE distribution SET distname='$distname', distua='$distua', disttype='$disttype', WHERE dist_id='$distID'");
break;
case '3':
// Удаление существующего дистрибутива
$distID = abs(intval($_POST["distID"]));
$distUA = $_POST["distUA"];
$folder1 = "./img/logo/".$distUA."-em.gif";
$folder2 = "./img/logo/".$distUA.".gif";
if (file_exsists
($folder1)) { unlink($folder1); }
if (file_exsists
($folder2)) { unlink($folder2); }
$res =& $db->query("DELETE FROM distribution WHERE dist_id='$distID'");
$res =& $db->query("DELETE FROM sect2dist WHERE dist_id='$distID'");
break;
case '4':
// Добавление новой версии дистрибутива
$versname = mysql_real_escape_string($_POST["versNam"]);
$versnumb = mysql_real_escape_string($_POST["versNum"]);
$verscode = mysql_real_escape_string($_POST["versCN"]);
$distname = abs(intval($_POST["distName"]));
$res =& $db->query("INSERT INTO version SET dist_id='$distname', vname='$versname', version='$versnumb', vcodename='$verscode'");
break;
case '5':
// Правка имеющейся версии дистрибутива
$versname = mysql_real_escape_string($_POST["versNam"]);
$versnumb = mysql_real_escape_string($_POST["versNum"]);
$verscode = mysql_real_escape_string($_POST["versCN"]);
$distname = abs(intval($_POST["distName"]));
$versID = abs(intval($_POST["versID"]));
$res =& $db->query("UPDATE version SET dist_id='$distname', vname='$versname', version='$versnumb', vcodename='$verscode' WHERE version_id='$versID'");
break;
case '6':
// Удаление существующей версии дистрибутива
$versID = abs(intval($_POST["versID"]));
$res =& $db->query("DELETE FROM version WHERE version_id='$versID'");
$res =& $db->query("DELETE FROM ver2rep WHERE ver_id='$versID'");
break;
case '7':
// Добавление нового репозитория
$versID = abs(intval($_POST["vers"]));
$repname = mysql_real_escape_string($_POST["repName"]);
$repinfo = mysql_real_escape_string($_POST["repInfo"]);
$repsche = abs(intval($_POST["scheme"]));
$reptype = abs(intval($_POST["rtype"]));
$res =& $db->query("INSERT INTO repository SET repname='$repname', repdescribe='$repinfo', scheme_id='$repsche', rtype_id='$reptype'");
$res =& $db->query("SELECT rep_id FROM repository ORDER BY rep_id DESC LIMIT 1");
$res->fetchInto($rep, DB_FETCHMODE_ASSOC
);
$rep_id = $rep["rep_id"];
$res =& $db->query("INSERT INTO ver2rep SET ver_id='$versID', rep_id='$rep_id'");
for ($i=0;$i<count($_POST["sect"]);$i++) {
$res =& $db->query("INSERT INTO sect2rep SET sect_id='".$_POST["sect"][$i]."', rep_id='$rep_id'");
}
break;
case '8':
// Правка репозитория
$repID = abs(intval($_POST["rep"]));
$repname = mysql_real_escape_string($_POST["repName"]);
$repinfo = mysql_real_escape_string($_POST["repInfo"]);
$repsche = abs(intval($_POST["scheme"]));
$reptype = abs(intval($_POST["rtype"]));
$res =& $db->query("UPDATE repository SET repname='$repname', repdescribe='$repinfo', scheme_id='$repsche', rtype_id='$reptype' WHERE rep_id='$repID'");
$res =& $db->query("DELETE FROM sect2rep WHERE rep_id='$repID'");
for ($i=0;$i<count($_POST["sect"]);$i++) {
$res =& $db->query("INSERT INTO sect2rep SET sect_id='".$_POST["sect"][$i]."', rep_id='$repID'");
}
break;
case '9':
// Удаление репозитория
$repID = abs(intval($_POST["rep"]));
$res =& $db->query("DELETE FROM repository WHERE rep_id='$repID'");
$res =& $db->query("DELETE FROM sect2rep WHERE rep_id='$repID'");
$res =& $db->query("DELETE FROM ver2rep WHERE rep_id='$repID'");
break;
case '10':
// Создание секции
$sectname = mysql_real_escape_string($_POST["sectName"]);
$sectinfo = mysql_real_escape_string($_POST["sectInfo"]);
$req =& $db->query("INSERT INTO section SET sectname='$sectname', sectinfo='$sectinfo'");
$req =& $db->query("SELECT sect_id FROM section ORDER BY sect_id DESC LIMIT 1");
$req->fetchInto($sect, DB_FETCHMODE_ASSOC
);
for($i=0;$i<count($_POST["dist"]);$i++) {
$req =& $db->query("INSERT INTO sect2dist SET dist_id='".$_POST["dist"][$i]."', sect_id='".$sect["sect_id"]."'");
}
break;
case '11':
// Правка секции
$sectID = abs(intval($_POST["sectID"]));
$sectname = mysql_real_escape_string($_POST["sectName"]);
$sectinfo = mysql_real_escape_string($_POST["sectInfo"]);
$req =& $db->query("UPDATE section SET sectname='$sectname', sectinfo='$sectinfo' WHERE sect_id='$sectID'");
$req =& $db->query("DELETE FROM sect2dist WHERE sect_id='$sectID'");
for($i=0;$i<count($_POST["dist"]);$i++) {
$req =& $db->query("INSERT INTO sect2dist SET dist_id='".$_POST["dist"][$i]."', sect_id='".$sectID."'");
}
break;
case '12':
// Удаление секции
$sectID = abs(intval($_POST["sectID"]));
$req =& $db->query("DELETE FROM section WHERE sect_id='$sectID'");
$req =& $db->query("DELETE FROM sect2dist WHERE sect_id='$sectID'");
$req =& $db->query("DELETE FROM sect2rep WHERE sect_id='$sectID'");
break;
case '13':
// Добавление новой схемы
$scheme = mysql_real_escape_string($_POST["scheme"]);
$req =& $db->query("INSERT INTO scheme SET scheme='$scheme'");
break;
case '14':
// Правка схемы
$schemeID = abs(intval($_POST["schemeID"]));
$scheme = mysql_real_escape_string($_POST["scheme"]);
$req =& $db->query("UPDATE scheme SET scheme='$scheme' WHERE scheme_id='$schemeID'");
break;
case '15':
// Удаление схемы
$schemeID = abs(intval($_POST["schemeID"]));
$req =& $db->query("DELETE FROM scheme WHERE scheme_id='$schemeID'");
break;
case '16':
// Добавление новой настройки Ant
$option = mysql_real_escape_string($_POST["setoption"]);
$value = mysql_real_escape_string($_POST["setvalue"]);
$req =& $db->query("INSERT INTO settings SET opt='$option', optvalue='$value'");
break;
case '17':
// Правка настройки Ant
$optID = abs(intval($_POST["optID"]));
$option = mysql_real_escape_string($_POST["setoption"]);
$value = mysql_real_escape_string($_POST["setvalue"]);
$req =& $db->query("UPDATE settings SET opt='$option', optvalue='$value' WHERE opt_id='$optID'");
break;
case '18':
// Удаление настройки
$optID = abs(intval($_POST["optID"]));
$req =& $db->query("DELETE FROM settings WHERE opt_id='$optID'");
break;
case '19':
// Добавление нового типа репозитория
$rtype = mysql_real_escape_string($_POST["rtype"]);
$req =& $db->query("INSERT INTO rtype SET rtype='$rtype'");
break;
case '20':
// Правка существующего типа репозитория
$rtypeID = abs(intval($_POST["rtypeID"]));
$rtype = mysql_real_escape_string($_POST["rtype"]);
$req =& $db->query("UPDATE rtype SET rtype='$rtype' WHERE rtype_id='$rtypeID'");
break;
case '21':
// Удаление типа репозитория
$rtypeID = abs(intval($_POST["rtypeID"]));
$req =& $db->query("DELETE FROM rtype WHERE rtype_id='$rtypeID'");
break;
case '22':
// Смена пароля
// $OID = abs(intval($_POST["OID"]));
$oldpass = mysql_real_escape_string($_POST["oldPW"]);
$newpass1 = mysql_real_escape_string($_POST["newPW1"]);
$newpass2 = mysql_real_escape_string($_POST["newPW2"]);
$errpwd = 0;
$spass = md5($newpass1."ANT");
$soldpass = md5($oldpass."ANT");
if ($soldpass != $_COOKIE[$CookiePasswd]) {
$go .= "?error=1";
$errpwd = 1;
}
if ($newpass1 != $newpass2) {
$go .= "?error=2";
$errpwd = 2;
}
if ($errpwd==0) {
// fix: Для многопользовательского варианта придется запрос переписать
$req =& $db->query("UPDATE owner SET passwd='$spass' WHERE login='admin'");
}
break;
case '23':
// Добавление интерфейса
$ifname = mysql_real_escape_string($_POST["ifname"]);
$ifinfo = mysql_real_escape_string($_POST["ifinfo"]);
$ifname = str_replace(".php","",$ifname);
$req =& $db->query("INSERT INTO interfaces SET interface='$ifname', interfaceinfo='$ifinfo'");
break;
case '24':
// Правка интерфейса
$ifname = mysql_real_escape_string($_POST["ifname"]);
$ifinfo = mysql_real_escape_string($_POST["ifinfo"]);
$if = abs(intval($_POST["if"]));
$ifname = str_replace(".php","",$ifname);
$req =& $db->query("UPDATE interfaces SET interface='$ifname', interfaceinfo='$ifinfo' WHERE if_id='$if'");
break;
case '25':
// Удаление интерфейса
$if = abs(intval($_POST["if"]));
$req =& $db->query("DELETE FROM interfaces WHERE if_id='$if'");
break;
}
header("Location: $go\n\n");
?>