Хранилища Subversion ant

Редакция

Редакция 101 | К новейшей редакции | Содержимое файла | Сравнить с предыдущей | Последнее изменение | Открыть журнал | 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
 
101 alex-w 24
require_once dirname(__FILE__)."/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'");
108 alex-w 79
 
80
            $go .= "?mode=1";
2 alex-w 81
 
82
            break;
83
    case '2':
84
            // Правка существующего дистрибутива
85
            $distname = mysql_real_escape_string($_POST["distName"]);
61 alex-w 86
            $distua   = mysql_real_escape_string($_POST["distUA"]);
2 alex-w 87
            $disttype = abs(intval($_POST["distType"]));
88
            $distID = abs(intval($_POST["distID"]));
80 alex-w 89
 
83 alex-w 90
            if ($_FILES["distLOGO"]["type"]!='') {
91
                $folder   = dirname(__FILE__)."/img/logo/".$distua."-orig.png";
92
                $folderN  = dirname(__FILE__)."/img/logo/".$distua.".png";
93
                $folderEM = dirname(__FILE__)."/img/logo/".$distua."-em.png";
80 alex-w 94
                if (move_uploaded_file($_FILES["distLOGO"]["tmp_name"],$folder)) {
95
                        chmod ($folder, 0644);
96
                        list($width, $height) = GetImageSize($folder);
97
                        $percent = 32/$height;
98
                        $newwidth = $width * $percent;
99
                        $newheight = $height * $percent;
100
 
101
                        $output = ImageCreateTrueColor($newwidth, $newheight);
83 alex-w 102
                        $black  = ImageColorAllocate($output, 0, 0, 0);
82 alex-w 103
                        $source = ImageCreateFromPNG($folder);
80 alex-w 104
 
95 alex-w 105
                        ImageCopyResampled($output, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
83 alex-w 106
                        ImageColorTransparent($output, $black);
82 alex-w 107
                        ImagePNG($output, $folderEM);
80 alex-w 108
 
109
                        $percent = 15/$height;
110
                        $newwidth = $width * $percent;
111
                        $newheight = $height * $percent;
112
 
113
                        $output = ImageCreateTrueColor($newwidth, $newheight);
83 alex-w 114
                        $black  = ImageColorAllocate($output, 0, 0, 0);
80 alex-w 115
 
116
                        ImageCopyResized($output, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
83 alex-w 117
                        ImageColorTransparent($output, $black);
82 alex-w 118
                        ImagePNG($output, $folderN);
80 alex-w 119
 
120
                        unlink($folder);
121
 
122
                        $res =& $db->query("UPDATE distribution SET distlogo='1' WHERE dist_id='$distID'");
123
 
124
                }
125
            }
2 alex-w 126
 
80 alex-w 127
            $res =& $db->query("UPDATE distribution SET distname='$distname', distua='$distua', disttype='$disttype', WHERE dist_id='$distID'");
2 alex-w 128
 
108 alex-w 129
            $go .= "?mode=1";
130
 
2 alex-w 131
            break;
132
    case '3':
133
            // Удаление существующего дистрибутива
134
            $distID = abs(intval($_POST["distID"]));       
80 alex-w 135
            $distUA = $_POST["distUA"];
136
 
93 alex-w 137
            $folder1 = dirname(__FILE__)."/img/logo/".$distUA."-em.png";
138
            $folder2 = dirname(__FILE__)."/img/logo/".$distUA.".png";
80 alex-w 139
 
93 alex-w 140
            if (file_exists($folder1)) { unlink($folder1); }
141
            if (file_exists($folder2)) { unlink($folder2); }
142
 
143
            $res =& $db->query("SELECT * FROM distribution d JOIN dtype t ON d.disttype=t.type_id WHERE d.dist_id='$distID'");
144
            $res->fetchInto($log, DB_FETCHMODE_ASSOC);
2 alex-w 145
 
146
            $res =& $db->query("DELETE FROM distribution WHERE dist_id='$distID'");
93 alex-w 147
            $res =& $db->query("DELETE FROM sect2dist WHERE dist_id='$distID'");           
148
            $res =& $db->query("DELETE FROM version WHERE dist_id='$distID'");
149
 
150
            // ChangeLog recording
151
            $title = "Удаление поддержки дистрибутива";
152
            $dinfo = "Из Ant удалена поддержка основанного на ".stripslashes($log["type"])."-пакетах дистрибутива ".stripslashes($log["distname"]).".";
153
            $res =& $db->query("INSERT INTO changelog SET log_record=NOW(), log_title='$title', log_desc='$dinfo'");
154
 
108 alex-w 155
            $go .= "?mode=1";
156
 
2 alex-w 157
            break;
158
    case '4':
159
            // Добавление новой версии дистрибутива
160
            $versname = mysql_real_escape_string($_POST["versNam"]);
161
            $versnumb = mysql_real_escape_string($_POST["versNum"]);
162
            $verscode = mysql_real_escape_string($_POST["versCN"]);
163
            $distname = abs(intval($_POST["distName"]));
164
 
165
            $res =& $db->query("INSERT INTO version SET dist_id='$distname', vname='$versname', version='$versnumb', vcodename='$verscode'");
93 alex-w 166
 
167
            // ChangeLog recording
168
            $res =& $db->query("SELECT * FROM distribution WHERE dist_id='$distname'");
169
            $res->fetchInto($log, DB_FETCHMODE_ASSOC);
170
            $title = "Добавлена новая версия ".$log["distname"];
171
            $dinfo = "В Ant добавлена поддержка новой версии дистрибутива ".$log["distname"]." &ndash; ".$versnumb;
172
            if ($versname!="") {
173
                $dinfo .= " с кодовым названием &#8220;".$versname."&#8221;.";
174
            } else {
175
                $dinfo .= ".";
176
            }
177
            $res =& $db->query("INSERT INTO changelog SET log_record=NOW(), log_title='$title', log_desc='$dinfo'");
2 alex-w 178
 
108 alex-w 179
            $go .= "?mode=2";
180
 
2 alex-w 181
            break;
182
    case '5':
183
            // Правка имеющейся версии дистрибутива
184
            $versname = mysql_real_escape_string($_POST["versNam"]);
185
            $versnumb = mysql_real_escape_string($_POST["versNum"]);
186
            $verscode = mysql_real_escape_string($_POST["versCN"]);
187
            $distname = abs(intval($_POST["distName"]));
188
            $versID   = abs(intval($_POST["versID"]));
189
 
190
            $res =& $db->query("UPDATE version SET dist_id='$distname', vname='$versname', version='$versnumb', vcodename='$verscode' WHERE version_id='$versID'");
191
 
108 alex-w 192
            $go .= "?mode=2";
193
 
2 alex-w 194
            break;
195
    case '6':
196
            // Удаление существующей версии дистрибутива
197
            $versID = abs(intval($_POST["versID"]));       
93 alex-w 198
 
199
            $res =& $db->query("SELECT * FROM version v JOIN distribution d ON v.dist_id=d.dist_id WHERE v.version_id='$versID'");
200
            $res->fetchInto($log, DB_FETCHMODE_ASSOC);
2 alex-w 201
 
202
            $res =& $db->query("DELETE FROM version WHERE version_id='$versID'");
203
            $res =& $db->query("DELETE FROM ver2rep WHERE ver_id='$versID'");      
93 alex-w 204
 
205
            // ChangeLog recording
206
            $title = "Удалена поддержка ".$log["distname"]." ".$log["version"];
207
            $dinfo = "Из Ant удалена поддержка версии ".$log["version"]."{CNAME} дистрибутива ".$log["distname"].".";
208
            if ($log["vname"]!="") {
209
                $dinfo = str_replace("{CNAME}","(&#8220;".$log["vname"]."&#8221;)",$dinfo);
210
            } else {
211
                $dinfo = str_replace("{CNAME}","",$dinfo);
212
            }
213
            $res =& $db->query("INSERT INTO changelog SET log_record=NOW(), log_title='$title', log_desc='$dinfo'");
108 alex-w 214
 
215
            $go .= "?mode=2";
2 alex-w 216
 
217
            break;
218
    case '7':
219
            // Добавление нового репозитория
220
            $versID  = abs(intval($_POST["vers"]));
221
            $repname = mysql_real_escape_string($_POST["repName"]);
222
            $repinfo = mysql_real_escape_string($_POST["repInfo"]);
8 alex-w 223
            $repsche = abs(intval($_POST["scheme"]));
11 alex-w 224
            $reptype = abs(intval($_POST["rtype"]));
91 alex-w 225
            $reproot = abs(intval($_POST["rootFolder"]));
2 alex-w 226
 
91 alex-w 227
            $res =& $db->query("INSERT INTO repository SET repname='$repname', repdescribe='$repinfo', scheme_id='$repsche', rtype_id='$reptype', root_id='$reproot'");
2 alex-w 228
            $res =& $db->query("SELECT rep_id FROM repository ORDER BY rep_id DESC LIMIT 1");
229
            $res->fetchInto($rep, DB_FETCHMODE_ASSOC);
230
            $rep_id = $rep["rep_id"];
231
 
232
            $res =& $db->query("INSERT INTO ver2rep SET ver_id='$versID', rep_id='$rep_id'");
233
 
234
            for ($i=0;$i<count($_POST["sect"]);$i++) {
235
                $res =& $db->query("INSERT INTO sect2rep SET sect_id='".$_POST["sect"][$i]."', rep_id='$rep_id'");
236
            }
108 alex-w 237
 
238
            $go .= "?mode=3";
239
 
2 alex-w 240
            break;
241
    case '8':
242
            // Правка репозитория
243
            $repID      = abs(intval($_POST["rep"]));
244
            $repname    = mysql_real_escape_string($_POST["repName"]);
245
            $repinfo = mysql_real_escape_string($_POST["repInfo"]);
8 alex-w 246
            $repsche = abs(intval($_POST["scheme"]));
11 alex-w 247
            $reptype = abs(intval($_POST["rtype"]));
91 alex-w 248
            $reproot = abs(intval($_POST["rootFolder"]));
2 alex-w 249
 
91 alex-w 250
            $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 251
            $res =& $db->query("DELETE FROM sect2rep WHERE rep_id='$repID'");
252
            for ($i=0;$i<count($_POST["sect"]);$i++) {
253
                $res =& $db->query("INSERT INTO sect2rep SET sect_id='".$_POST["sect"][$i]."', rep_id='$repID'");
254
            }
108 alex-w 255
 
256
            $go .= "?mode=3";
257
 
2 alex-w 258
            break;
259
    case '9':
260
            // Удаление репозитория
261
            $repID      = abs(intval($_POST["rep"]));      
262
 
263
            $res =& $db->query("DELETE FROM repository WHERE rep_id='$repID'");
264
            $res =& $db->query("DELETE FROM sect2rep WHERE rep_id='$repID'");
265
            $res =& $db->query("DELETE FROM ver2rep WHERE rep_id='$repID'");
108 alex-w 266
 
267
            $go .= "?mode=3";
2 alex-w 268
 
269
            break;
270
    case '10':
271
            // Создание секции
272
            $sectname   = mysql_real_escape_string($_POST["sectName"]);
273
            $sectinfo   = mysql_real_escape_string($_POST["sectInfo"]);    
274
 
275
            $req =& $db->query("INSERT INTO section SET sectname='$sectname', sectinfo='$sectinfo'");
276
            $req =& $db->query("SELECT sect_id FROM section ORDER BY sect_id DESC LIMIT 1");
277
            $req->fetchInto($sect, DB_FETCHMODE_ASSOC);
278
 
279
            for($i=0;$i<count($_POST["dist"]);$i++) {
280
                $req =& $db->query("INSERT INTO sect2dist SET dist_id='".$_POST["dist"][$i]."', sect_id='".$sect["sect_id"]."'");
281
            }
108 alex-w 282
 
283
            $go .= "?mode=4";
2 alex-w 284
 
285
            break;
286
    case '11':
287
            // Правка секции
288
            $sectID     = abs(intval($_POST["sectID"]));
289
            $sectname   = mysql_real_escape_string($_POST["sectName"]);
290
            $sectinfo   = mysql_real_escape_string($_POST["sectInfo"]);    
291
 
292
            $req =& $db->query("UPDATE section SET sectname='$sectname', sectinfo='$sectinfo' WHERE sect_id='$sectID'");
293
            $req =& $db->query("DELETE FROM sect2dist WHERE sect_id='$sectID'");
294
 
295
            for($i=0;$i<count($_POST["dist"]);$i++) {
296
                $req =& $db->query("INSERT INTO sect2dist SET dist_id='".$_POST["dist"][$i]."', sect_id='".$sectID."'");
297
            }
108 alex-w 298
 
299
            $go .= "?mode=4";
2 alex-w 300
 
301
            break;
302
    case '12':
303
            // Удаление секции
304
            $sectID     = abs(intval($_POST["sectID"]));    
305
 
306
            $req =& $db->query("DELETE FROM section WHERE sect_id='$sectID'");
307
            $req =& $db->query("DELETE FROM sect2dist WHERE sect_id='$sectID'");           
308
            $req =& $db->query("DELETE FROM sect2rep WHERE sect_id='$sectID'");    
309
 
108 alex-w 310
            $go .= "?mode=4";
311
 
2 alex-w 312
            break;
5 alex-w 313
    case '13':
314
            // Добавление новой схемы
315
            $scheme     = mysql_real_escape_string($_POST["scheme"]);
316
 
317
            $req =& $db->query("INSERT INTO scheme SET scheme='$scheme'");
318
 
108 alex-w 319
            $go .= "?mode=5";
320
 
5 alex-w 321
            break;
322
    case '14':
323
            // Правка схемы
324
            $schemeID   = abs(intval($_POST["schemeID"]));
325
            $scheme     = mysql_real_escape_string($_POST["scheme"]);
326
 
327
            $req =& $db->query("UPDATE scheme SET scheme='$scheme' WHERE scheme_id='$schemeID'");
328
 
108 alex-w 329
            $go .= "?mode=5";
330
 
5 alex-w 331
            break;
332
    case '15':
333
            // Удаление схемы
334
            $schemeID   = abs(intval($_POST["schemeID"]));         
335
 
336
            $req =& $db->query("DELETE FROM scheme WHERE scheme_id='$schemeID'");
337
 
108 alex-w 338
            $go .= "?mode=5";
339
 
5 alex-w 340
            break;
7 alex-w 341
    case '16':
342
            // Добавление новой настройки Ant
343
            $option     = mysql_real_escape_string($_POST["setoption"]);
344
            $value      = mysql_real_escape_string($_POST["setvalue"]);
345
 
346
            $req =& $db->query("INSERT INTO settings SET opt='$option', optvalue='$value'");
347
 
348
            break;
349
    case '17':
350
            // Правка настройки Ant
351
            $optID      = abs(intval($_POST["optID"]));
352
            $option     = mysql_real_escape_string($_POST["setoption"]);
353
            $value      = mysql_real_escape_string($_POST["setvalue"]);
354
 
355
            $req =& $db->query("UPDATE settings SET opt='$option', optvalue='$value' WHERE opt_id='$optID'");
356
 
357
            break;
358
    case '18':
359
            // Удаление настройки
360
            $optID      = abs(intval($_POST["optID"]));    
361
 
362
            $req =& $db->query("DELETE FROM settings WHERE opt_id='$optID'");
363
 
364
            break;
11 alex-w 365
    case '19':
366
            // Добавление нового типа репозитория
367
            $rtype      = mysql_real_escape_string($_POST["rtype"]);       
368
 
369
            $req =& $db->query("INSERT INTO rtype SET rtype='$rtype'");
370
 
108 alex-w 371
            $go .= "?mode=7";
372
 
11 alex-w 373
            break;
374
    case '20':
375
            // Правка существующего типа репозитория
376
            $rtypeID    = abs(intval($_POST["rtypeID"]));
377
            $rtype      = mysql_real_escape_string($_POST["rtype"]);
378
 
379
            $req =& $db->query("UPDATE rtype SET rtype='$rtype' WHERE rtype_id='$rtypeID'");
108 alex-w 380
 
381
            $go .= "?mode=7";
11 alex-w 382
 
383
            break;
16 alex-w 384
    case '21':
11 alex-w 385
            // Удаление типа репозитория
386
            $rtypeID    = abs(intval($_POST["rtypeID"]));          
387
 
388
            $req =& $db->query("DELETE FROM rtype WHERE rtype_id='$rtypeID'");
108 alex-w 389
 
390
            $go .= "?mode=7";
11 alex-w 391
 
392
            break;
16 alex-w 393
    case '22':
394
            // Смена пароля
395
            // $OID        = abs(intval($_POST["OID"]));
396
            $oldpass    = mysql_real_escape_string($_POST["oldPW"]);
397
            $newpass1   = mysql_real_escape_string($_POST["newPW1"]);
398
            $newpass2   = mysql_real_escape_string($_POST["newPW2"]);
399
 
400
            $errpwd = 0;
401
            $spass = md5($newpass1."ANT");
402
            $soldpass = md5($oldpass."ANT");
403
            if ($soldpass != $_COOKIE[$CookiePasswd]) {
404
                $go .= "?error=1";
405
                $errpwd = 1;
406
            }
407
            if ($newpass1 != $newpass2) {
408
                $go .= "?error=2";
409
                $errpwd = 2;
410
            }
411
 
412
            if ($errpwd==0) {
413
                // fix: Для многопользовательского варианта придется запрос переписать
414
                $req =& $db->query("UPDATE owner SET passwd='$spass' WHERE login='admin'");
415
            }
416
 
417
            break;
70 alex-w 418
    case '23':
419
            // Добавление интерфейса
420
            $ifname = mysql_real_escape_string($_POST["ifname"]);
421
            $ifinfo = mysql_real_escape_string($_POST["ifinfo"]);
422
            $ifname = str_replace(".php","",$ifname);
423
            $req =& $db->query("INSERT INTO interfaces SET interface='$ifname', interfaceinfo='$ifinfo'");
424
            break;
425
    case '24':
426
            // Правка интерфейса
427
            $ifname = mysql_real_escape_string($_POST["ifname"]);
428
            $ifinfo = mysql_real_escape_string($_POST["ifinfo"]);
429
            $if     = abs(intval($_POST["if"]));
430
            $ifname = str_replace(".php","",$ifname);
431
            $req =& $db->query("UPDATE interfaces SET interface='$ifname', interfaceinfo='$ifinfo' WHERE if_id='$if'");
432
            break;
433
    case '25':
434
            // Удаление интерфейса
435
            $if = abs(intval($_POST["if"]));
436
            $req =& $db->query("DELETE FROM interfaces WHERE if_id='$if'");
437
            break;
91 alex-w 438
    case '26':
439
            // Создание корневой папки репозиториев
440
            $root = mysql_real_escape_string($_POST["rootFolder"]);
441
            $req =& $db->query("INSERT INTO root SET root_folder='$root'");
108 alex-w 442
            $go .= "?mode=8";
91 alex-w 443
            break;
444
    case '27':
445
            // Редактирование корневой папки репозиториев
446
            $root_id = abs(intval($_POST["rootID"]));
447
            $root_fd = mysql_real_escape_string($_POST["rootFolder"]);
448
            $req =& $db->query("UPDATE root SET root_folder='$root_fd' WHERE root_id='$root_id'");
108 alex-w 449
            $go .= "?mode=8";
91 alex-w 450
            break;
451
    case '28':
452
            // Удаление корневой папки репозиториев
453
            $root_id = abs(intval($_POST["rootID"]));
454
            $req =& $db->query("DELETE FROM root WHERE root_id='$root_id'");
108 alex-w 455
            $go .= "?mode=8";
91 alex-w 456
            break;
2 alex-w 457
}
458
 
459
header("Location: $go\n\n");
460
 
60 alex-w 461
?>