Хранилища Subversion ant

Редакция

Редакция 93 | Содержимое файла | Сравнить с предыдущей | Последнее изменение | Открыть журнал | RSS

Редакция Автор № строки Строка
2 alex-w 1
<?php
2
 
31 alex-w 3
/**
4
 * Project:     Ant: sources.list generator
5
 * File:        process.php
6
 *
60 alex-w 7
 * This application is free software; you can redistribute it and/or
31 alex-w 8
 * modify it under the terms of the GNU Lesser General Public
9
 * License as published by the Free Software Foundation; either
10
 * version 2.1 of the License, or (at your option) any later version.
11
 *
60 alex-w 12
 * This application is distributed in the hope that it will be useful,
31 alex-w 13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15
 * Lesser General Public License for more details.
16
 *
17
 * You should have received a copy of the GNU Lesser General Public
18
 * License along with this library; if not, write to the Free Software
19
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
20
 *
21
 */
22
 
23
 
70 alex-w 24
require_once "./sign-valid.php";
2 alex-w 25
 
26
$mode = abs(intval($_POST["mode"]));
27
 
28
$go = "./admin.php";
29
 
30
switch ($mode) {
31
    case '0':
32
	    break;
33
    case '1':
34
	    // Добавление нового дистрибутива
35
	    $distname = mysql_real_escape_string($_POST["distName"]);
61 alex-w 36
	    $distua   = mysql_real_escape_string($_POST["distUA"]);
2 alex-w 37
	    $disttype = abs(intval($_POST["distType"]));
80 alex-w 38
 
39
	    $distlogo = 0;
40
	    if ($_FILES["distLOGO"]["type"]!=0) {
83 alex-w 41
	        $folder   = dirname(__FILE__)."/img/logo/".stripslashes($distua)."-orig.png";
42
	    	$folderN  = dirname(__FILE__)."/img/logo/".stripslashes($distua).".png";
43
		$folderEM = dirname(__FILE__)."/img/logo/".stripslashes($distua)."-em.png";
80 alex-w 44
	    	if (move_uploaded_file($_FILES["distLOGO"]["tmp_name"],$folder)) {
45
			chmod($folder, 0644);
46
			list($width, $height) = GetImageSize($folder);
47
			$percent = 32/$height;
48
			$newwidth = $width * $percent;
49
			$newheight = $height * $percent;
50
 
51
			$output = ImageCreateTrueColor($newwidth, $newheight);
82 alex-w 52
			$source = ImageCreateFromPNG($folder);
80 alex-w 53
 
95 alex-w 54
			ImageCopyResampled($output, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
82 alex-w 55
			ImagePNG($output, $folderEM);
80 alex-w 56
 
57
			$percent = 15/$height;
58
			$newwidth = $width * $percent;
59
			$newheight = $height * $percent;
60
 
61
			$output = ImageCreateTrueColor($newwidth, $newheight);
62
 
63
			ImageCopyResized($output, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
82 alex-w 64
			ImagePNG($output, $folderN);
80 alex-w 65
 
66
			unlink($folder);
67
			$distlogo = 1;
68
		}
69
	    }
2 alex-w 70
 
80 alex-w 71
	    $res =& $db->query("INSERT INTO distribution SET distname='$distname', distua='$distua', disttype='$disttype', distlogo='$distlogo'");
93 alex-w 72
 
73
	    // ChangeLog recording
74
	    $res =& $db->query("SELECT * FROM dtype WHERE type_id='$disttype'");
75
	    $res->fetchInto($log, DB_FETCHMODE_ASSOC);
76
	    $title = "Добавлен новый дистрибутив";
77
	    $dinfo = "В Ant добавлена поддержка основанного на ".stripslashes($log["type"])."-пакетах дистрибутива ".$distname.".";
78
	    $res =& $db->query("INSERT INTO changelog SET log_record=NOW(), log_title='$title', log_desc='$dinfo'");
2 alex-w 79
 
80
	    break;
81
    case '2':
82
	    // Правка существующего дистрибутива
83
	    $distname = mysql_real_escape_string($_POST["distName"]);
61 alex-w 84
	    $distua   = mysql_real_escape_string($_POST["distUA"]);
2 alex-w 85
	    $disttype = abs(intval($_POST["distType"]));
86
	    $distID = abs(intval($_POST["distID"]));
80 alex-w 87
 
83 alex-w 88
	    if ($_FILES["distLOGO"]["type"]!='') {
89
	    	$folder   = dirname(__FILE__)."/img/logo/".$distua."-orig.png";
90
		$folderN  = dirname(__FILE__)."/img/logo/".$distua.".png";
91
		$folderEM = dirname(__FILE__)."/img/logo/".$distua."-em.png";
80 alex-w 92
	    	if (move_uploaded_file($_FILES["distLOGO"]["tmp_name"],$folder)) {
93
			chmod ($folder, 0644);
94
			list($width, $height) = GetImageSize($folder);
95
			$percent = 32/$height;
96
			$newwidth = $width * $percent;
97
			$newheight = $height * $percent;
98
 
99
			$output = ImageCreateTrueColor($newwidth, $newheight);
83 alex-w 100
			$black  = ImageColorAllocate($output, 0, 0, 0);
82 alex-w 101
			$source = ImageCreateFromPNG($folder);
80 alex-w 102
 
95 alex-w 103
			ImageCopyResampled($output, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
83 alex-w 104
			ImageColorTransparent($output, $black);
82 alex-w 105
			ImagePNG($output, $folderEM);
80 alex-w 106
 
107
			$percent = 15/$height;
108
			$newwidth = $width * $percent;
109
			$newheight = $height * $percent;
110
 
111
			$output = ImageCreateTrueColor($newwidth, $newheight);
83 alex-w 112
			$black  = ImageColorAllocate($output, 0, 0, 0);
80 alex-w 113
 
114
			ImageCopyResized($output, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
83 alex-w 115
			ImageColorTransparent($output, $black);
82 alex-w 116
			ImagePNG($output, $folderN);
80 alex-w 117
 
118
			unlink($folder);
119
 
120
			$res =& $db->query("UPDATE distribution SET distlogo='1' WHERE dist_id='$distID'");
121
 
122
		}
123
	    }
2 alex-w 124
 
80 alex-w 125
	    $res =& $db->query("UPDATE distribution SET distname='$distname', distua='$distua', disttype='$disttype', WHERE dist_id='$distID'");
2 alex-w 126
 
127
	    break;
128
    case '3':
129
	    // Удаление существующего дистрибутива
130
	    $distID = abs(intval($_POST["distID"]));
80 alex-w 131
	    $distUA = $_POST["distUA"];
132
 
93 alex-w 133
	    $folder1 = dirname(__FILE__)."/img/logo/".$distUA."-em.png";
134
	    $folder2 = dirname(__FILE__)."/img/logo/".$distUA.".png";
80 alex-w 135
 
93 alex-w 136
	    if (file_exists($folder1)) { unlink($folder1); }
137
	    if (file_exists($folder2)) { unlink($folder2); }
138
 
139
	    $res =& $db->query("SELECT * FROM distribution d JOIN dtype t ON d.disttype=t.type_id WHERE d.dist_id='$distID'");
140
	    $res->fetchInto($log, DB_FETCHMODE_ASSOC);
2 alex-w 141
 
142
	    $res =& $db->query("DELETE FROM distribution WHERE dist_id='$distID'");
93 alex-w 143
	    $res =& $db->query("DELETE FROM sect2dist WHERE dist_id='$distID'");
144
	    $res =& $db->query("DELETE FROM version WHERE dist_id='$distID'");
145
 
146
	    // ChangeLog recording
147
	    $title = "Удаление поддержки дистрибутива";
148
	    $dinfo = "Из Ant удалена поддержка основанного на ".stripslashes($log["type"])."-пакетах дистрибутива ".stripslashes($log["distname"]).".";
149
	    $res =& $db->query("INSERT INTO changelog SET log_record=NOW(), log_title='$title', log_desc='$dinfo'");
150
 
2 alex-w 151
	    break;
152
    case '4':
153
	    // Добавление новой версии дистрибутива
154
	    $versname = mysql_real_escape_string($_POST["versNam"]);
155
	    $versnumb = mysql_real_escape_string($_POST["versNum"]);
156
	    $verscode = mysql_real_escape_string($_POST["versCN"]);
157
	    $distname = abs(intval($_POST["distName"]));
158
 
159
	    $res =& $db->query("INSERT INTO version SET dist_id='$distname', vname='$versname', version='$versnumb', vcodename='$verscode'");
93 alex-w 160
 
161
	    // ChangeLog recording
162
	    $res =& $db->query("SELECT * FROM distribution WHERE dist_id='$distname'");
163
	    $res->fetchInto($log, DB_FETCHMODE_ASSOC);
164
	    $title = "Добавлена новая версия ".$log["distname"];
165
	    $dinfo = "В Ant добавлена поддержка новой версии дистрибутива ".$log["distname"]." &ndash; ".$versnumb;
166
	    if ($versname!="") {
167
	    	$dinfo .= " с кодовым названием &#8220;".$versname."&#8221;.";
168
	    } else {
169
	    	$dinfo .= ".";
170
	    }
171
	    $res =& $db->query("INSERT INTO changelog SET log_record=NOW(), log_title='$title', log_desc='$dinfo'");
2 alex-w 172
 
173
	    break;
174
    case '5':
175
	    // Правка имеющейся версии дистрибутива
176
	    $versname = mysql_real_escape_string($_POST["versNam"]);
177
	    $versnumb = mysql_real_escape_string($_POST["versNum"]);
178
	    $verscode = mysql_real_escape_string($_POST["versCN"]);
179
	    $distname = abs(intval($_POST["distName"]));
180
	    $versID   = abs(intval($_POST["versID"]));
181
 
182
	    $res =& $db->query("UPDATE version SET dist_id='$distname', vname='$versname', version='$versnumb', vcodename='$verscode' WHERE version_id='$versID'");
183
 
184
	    break;
185
    case '6':
186
	    // Удаление существующей версии дистрибутива
187
	    $versID = abs(intval($_POST["versID"]));
93 alex-w 188
 
189
	    $res =& $db->query("SELECT * FROM version v JOIN distribution d ON v.dist_id=d.dist_id WHERE v.version_id='$versID'");
190
	    $res->fetchInto($log, DB_FETCHMODE_ASSOC);
2 alex-w 191
 
192
	    $res =& $db->query("DELETE FROM version WHERE version_id='$versID'");
193
	    $res =& $db->query("DELETE FROM ver2rep WHERE ver_id='$versID'");
93 alex-w 194
 
195
	    // ChangeLog recording
196
	    $title = "Удалена поддержка ".$log["distname"]." ".$log["version"];
197
	    $dinfo = "Из Ant удалена поддержка версии ".$log["version"]."{CNAME} дистрибутива ".$log["distname"].".";
198
	    if ($log["vname"]!="") {
199
	    	$dinfo = str_replace("{CNAME}","(&#8220;".$log["vname"]."&#8221;)",$dinfo);
200
	    } else {
201
	    	$dinfo = str_replace("{CNAME}","",$dinfo);
202
	    }
203
	    $res =& $db->query("INSERT INTO changelog SET log_record=NOW(), log_title='$title', log_desc='$dinfo'");
2 alex-w 204
 
205
	    break;
206
    case '7':
207
            // Добавление нового репозитория
208
            $versID  = abs(intval($_POST["vers"]));
209
            $repname = mysql_real_escape_string($_POST["repName"]);
210
            $repinfo = mysql_real_escape_string($_POST["repInfo"]);
8 alex-w 211
            $repsche = abs(intval($_POST["scheme"]));
11 alex-w 212
	    $reptype = abs(intval($_POST["rtype"]));
91 alex-w 213
	    $reproot = abs(intval($_POST["rootFolder"]));
2 alex-w 214
 
91 alex-w 215
            $res =& $db->query("INSERT INTO repository SET repname='$repname', repdescribe='$repinfo', scheme_id='$repsche', rtype_id='$reptype', root_id='$reproot'");
2 alex-w 216
            $res =& $db->query("SELECT rep_id FROM repository ORDER BY rep_id DESC LIMIT 1");
217
            $res->fetchInto($rep, DB_FETCHMODE_ASSOC);
218
            $rep_id = $rep["rep_id"];
219
 
220
            $res =& $db->query("INSERT INTO ver2rep SET ver_id='$versID', rep_id='$rep_id'");
221
 
222
            for ($i=0;$i<count($_POST["sect"]);$i++) {
223
                $res =& $db->query("INSERT INTO sect2rep SET sect_id='".$_POST["sect"][$i]."', rep_id='$rep_id'");
224
            }
225
            break;
226
    case '8':
227
	    // Правка репозитория
228
	    $repID	= abs(intval($_POST["rep"]));
229
	    $repname	= mysql_real_escape_string($_POST["repName"]);
230
            $repinfo = mysql_real_escape_string($_POST["repInfo"]);
8 alex-w 231
            $repsche = abs(intval($_POST["scheme"]));
11 alex-w 232
	    $reptype = abs(intval($_POST["rtype"]));
91 alex-w 233
	    $reproot = abs(intval($_POST["rootFolder"]));
2 alex-w 234
 
91 alex-w 235
            $res =& $db->query("UPDATE repository SET repname='$repname', repdescribe='$repinfo', scheme_id='$repsche', rtype_id='$reptype', root_id='$reproot' WHERE rep_id='$repID'");
2 alex-w 236
            $res =& $db->query("DELETE FROM sect2rep WHERE rep_id='$repID'");
237
            for ($i=0;$i<count($_POST["sect"]);$i++) {
238
                $res =& $db->query("INSERT INTO sect2rep SET sect_id='".$_POST["sect"][$i]."', rep_id='$repID'");
239
            }
240
	    break;
241
    case '9':
242
	    // Удаление репозитория
243
	    $repID	= abs(intval($_POST["rep"]));
244
 
245
	    $res =& $db->query("DELETE FROM repository WHERE rep_id='$repID'");
246
	    $res =& $db->query("DELETE FROM sect2rep WHERE rep_id='$repID'");
247
	    $res =& $db->query("DELETE FROM ver2rep WHERE rep_id='$repID'");
248
 
249
	    break;
250
    case '10':
251
	    // Создание секции
252
	    $sectname	= mysql_real_escape_string($_POST["sectName"]);
253
	    $sectinfo	= mysql_real_escape_string($_POST["sectInfo"]);
254
 
255
	    $req =& $db->query("INSERT INTO section SET sectname='$sectname', sectinfo='$sectinfo'");
256
	    $req =& $db->query("SELECT sect_id FROM section ORDER BY sect_id DESC LIMIT 1");
257
	    $req->fetchInto($sect, DB_FETCHMODE_ASSOC);
258
 
259
	    for($i=0;$i<count($_POST["dist"]);$i++) {
260
		$req =& $db->query("INSERT INTO sect2dist SET dist_id='".$_POST["dist"][$i]."', sect_id='".$sect["sect_id"]."'");
261
	    }
262
 
263
	    break;
264
    case '11':
265
	    // Правка секции
266
	    $sectID	= abs(intval($_POST["sectID"]));
267
	    $sectname	= mysql_real_escape_string($_POST["sectName"]);
268
	    $sectinfo	= mysql_real_escape_string($_POST["sectInfo"]);
269
 
270
	    $req =& $db->query("UPDATE section SET sectname='$sectname', sectinfo='$sectinfo' WHERE sect_id='$sectID'");
271
	    $req =& $db->query("DELETE FROM sect2dist WHERE sect_id='$sectID'");
272
 
273
	    for($i=0;$i<count($_POST["dist"]);$i++) {
274
		$req =& $db->query("INSERT INTO sect2dist SET dist_id='".$_POST["dist"][$i]."', sect_id='".$sectID."'");
275
	    }
276
 
277
	    break;
278
    case '12':
279
	    // Удаление секции
280
	    $sectID	= abs(intval($_POST["sectID"]));
281
 
282
	    $req =& $db->query("DELETE FROM section WHERE sect_id='$sectID'");
283
	    $req =& $db->query("DELETE FROM sect2dist WHERE sect_id='$sectID'");
284
	    $req =& $db->query("DELETE FROM sect2rep WHERE sect_id='$sectID'");
285
 
286
	    break;
5 alex-w 287
    case '13':
288
	    // Добавление новой схемы
289
	    $scheme	= mysql_real_escape_string($_POST["scheme"]);
290
 
291
	    $req =& $db->query("INSERT INTO scheme SET scheme='$scheme'");
292
 
293
	    break;
294
    case '14':
295
	    // Правка схемы
296
	    $schemeID	= abs(intval($_POST["schemeID"]));
297
	    $scheme	= mysql_real_escape_string($_POST["scheme"]);
298
 
299
	    $req =& $db->query("UPDATE scheme SET scheme='$scheme' WHERE scheme_id='$schemeID'");
300
 
301
	    break;
302
    case '15':
303
	    // Удаление схемы
304
	    $schemeID	= abs(intval($_POST["schemeID"]));
305
 
306
	    $req =& $db->query("DELETE FROM scheme WHERE scheme_id='$schemeID'");
307
 
308
	    break;
7 alex-w 309
    case '16':
310
	    // Добавление новой настройки Ant
311
	    $option	= mysql_real_escape_string($_POST["setoption"]);
312
	    $value	= mysql_real_escape_string($_POST["setvalue"]);
313
 
314
	    $req =& $db->query("INSERT INTO settings SET opt='$option', optvalue='$value'");
315
 
316
	    break;
317
    case '17':
318
	    // Правка настройки Ant
319
	    $optID	= abs(intval($_POST["optID"]));
320
	    $option	= mysql_real_escape_string($_POST["setoption"]);
321
	    $value	= mysql_real_escape_string($_POST["setvalue"]);
322
 
323
	    $req =& $db->query("UPDATE settings SET opt='$option', optvalue='$value' WHERE opt_id='$optID'");
324
 
325
	    break;
326
    case '18':
327
	    // Удаление настройки
328
	    $optID	= abs(intval($_POST["optID"]));
329
 
330
	    $req =& $db->query("DELETE FROM settings WHERE opt_id='$optID'");
331
 
332
	    break;
11 alex-w 333
    case '19':
334
	    // Добавление нового типа репозитория
335
	    $rtype	= mysql_real_escape_string($_POST["rtype"]);
336
 
337
	    $req =& $db->query("INSERT INTO rtype SET rtype='$rtype'");
338
 
339
	    break;
340
    case '20':
341
	    // Правка существующего типа репозитория
342
	    $rtypeID	= abs(intval($_POST["rtypeID"]));
343
	    $rtype	= mysql_real_escape_string($_POST["rtype"]);
344
 
345
	    $req =& $db->query("UPDATE rtype SET rtype='$rtype' WHERE rtype_id='$rtypeID'");
346
 
347
	    break;
16 alex-w 348
    case '21':
11 alex-w 349
	    // Удаление типа репозитория
350
	    $rtypeID	= abs(intval($_POST["rtypeID"]));
351
 
352
	    $req =& $db->query("DELETE FROM rtype WHERE rtype_id='$rtypeID'");
353
 
354
	    break;
16 alex-w 355
    case '22':
356
            // Смена пароля
357
            // $OID        = abs(intval($_POST["OID"]));
358
            $oldpass    = mysql_real_escape_string($_POST["oldPW"]);
359
            $newpass1   = mysql_real_escape_string($_POST["newPW1"]);
360
            $newpass2   = mysql_real_escape_string($_POST["newPW2"]);
361
 
362
            $errpwd = 0;
363
            $spass = md5($newpass1."ANT");
364
            $soldpass = md5($oldpass."ANT");
365
            if ($soldpass != $_COOKIE[$CookiePasswd]) {
366
                $go .= "?error=1";
367
                $errpwd = 1;
368
            }
369
            if ($newpass1 != $newpass2) {
370
                $go .= "?error=2";
371
                $errpwd = 2;
372
            }
373
 
374
            if ($errpwd==0) {
375
                // fix: Для многопользовательского варианта придется запрос переписать
376
                $req =& $db->query("UPDATE owner SET passwd='$spass' WHERE login='admin'");
377
            }
378
 
379
            break;
70 alex-w 380
    case '23':
381
    	    // Добавление интерфейса
382
	    $ifname = mysql_real_escape_string($_POST["ifname"]);
383
	    $ifinfo = mysql_real_escape_string($_POST["ifinfo"]);
384
	    $ifname = str_replace(".php","",$ifname);
385
	    $req =& $db->query("INSERT INTO interfaces SET interface='$ifname', interfaceinfo='$ifinfo'");
386
    	    break;
387
    case '24':
388
            // Правка интерфейса
389
	    $ifname = mysql_real_escape_string($_POST["ifname"]);
390
	    $ifinfo = mysql_real_escape_string($_POST["ifinfo"]);
391
	    $if	    = abs(intval($_POST["if"]));
392
	    $ifname = str_replace(".php","",$ifname);
393
	    $req =& $db->query("UPDATE interfaces SET interface='$ifname', interfaceinfo='$ifinfo' WHERE if_id='$if'");
394
    	    break;
395
    case '25':
396
            // Удаление интерфейса
397
	    $if = abs(intval($_POST["if"]));
398
	    $req =& $db->query("DELETE FROM interfaces WHERE if_id='$if'");
399
    	    break;
91 alex-w 400
    case '26':
401
    	    // Создание корневой папки репозиториев
402
	    $root = mysql_real_escape_string($_POST["rootFolder"]);
403
	    $req =& $db->query("INSERT INTO root SET root_folder='$root'");
404
	    break;
405
    case '27':
406
    	    // Редактирование корневой папки репозиториев
407
	    $root_id = abs(intval($_POST["rootID"]));
408
	    $root_fd = mysql_real_escape_string($_POST["rootFolder"]);
409
	    $req =& $db->query("UPDATE root SET root_folder='$root_fd' WHERE root_id='$root_id'");
410
	    break;
411
    case '28':
412
    	    // Удаление корневой папки репозиториев
413
	    $root_id = abs(intval($_POST["rootID"]));
414
	    $req =& $db->query("DELETE FROM root WHERE root_id='$root_id'");
415
	    break;
2 alex-w 416
}
417
 
418
header("Location: $go\n\n");
419
 
60 alex-w 420
?>