ofs | hex dump | ascii |
---|
0000 | 62 30 56 49 4d 20 37 2e 34 00 00 00 00 10 00 00 b8 70 b5 53 9e c8 40 00 e8 39 00 00 69 76 61 6e | b0VIM.7.4........p.S..@..9..ivan |
0020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0040 | 00 00 00 00 66 6c 65 65 74 70 61 77 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ....fleetpaw.................... |
0060 | 00 00 00 00 00 00 00 00 00 00 00 00 7e 69 76 61 6e 2f 66 72 65 65 73 69 64 65 2f 72 74 2f 6c 69 | ............~ivan/freeside/rt/li |
0080 | 62 2f 52 54 2f 48 61 6e 64 6c 65 2e 70 6d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | b/RT/Handle.pm.................. |
00a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
00c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
00e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
01a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
01c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
01e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
02a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
02c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
02e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
03a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
03c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
03e0 | 00 00 00 00 00 00 00 00 00 75 74 66 2d 38 0d 00 33 32 31 30 00 00 00 00 23 22 21 20 13 12 55 00 | .........utf-8..3210....#"!...U. |
0400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
04a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
04c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
04e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
05a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
05c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
05e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
06a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
06c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
06e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
07a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
07c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
07e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
08a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
08c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
08e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
09a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
09c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
09e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0a00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0a60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0a80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0c00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0e00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1000 | 74 70 0d 00 7f 00 00 00 02 00 00 00 00 00 00 00 74 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 | tp..............t............... |
1020 | 01 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 75 00 00 00 00 00 00 00 | ........................u....... |
1040 | 01 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 77 00 00 00 00 00 00 00 85 00 00 00 00 00 00 00 | ................w............... |
1060 | 01 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 5c 00 00 00 00 00 00 00 fb 00 00 00 00 00 00 00 | ................\............... |
1080 | 01 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 6e 00 00 00 00 00 00 00 57 01 00 00 00 00 00 00 | ................n.......W....... |
10a0 | 01 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 81 00 00 00 00 00 00 00 c5 01 00 00 00 00 00 00 | ................................ |
10c0 | 01 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 6c 00 00 00 00 00 00 00 46 02 00 00 00 00 00 00 | ................l.......F....... |
10e0 | 01 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 6d 00 00 00 00 00 00 00 b2 02 00 00 00 00 00 00 | ................m............... |
1100 | 01 00 00 00 00 00 00 00 0b 00 00 00 00 00 00 00 5a 00 00 00 00 00 00 00 1f 03 00 00 00 00 00 00 | ................Z............... |
1120 | 01 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 00 5a 00 00 00 00 00 00 00 79 03 00 00 00 00 00 00 | ................Z.......y....... |
1140 | 01 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00 65 00 00 00 00 00 00 00 d3 03 00 00 00 00 00 00 | ................e............... |
1160 | 01 00 00 00 00 00 00 00 0e 00 00 00 00 00 00 00 76 00 00 00 00 00 00 00 38 04 00 00 00 00 00 00 | ................v.......8....... |
1180 | 01 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 4f 00 00 00 00 00 00 00 ae 04 00 00 00 00 00 00 | ................O............... |
11a0 | 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
12a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
12c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
12e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
18a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
18c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
18e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
19a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
19c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
19e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1a00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1a60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1a80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1c00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1e00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2000 | 61 64 00 00 18 00 00 00 04 02 00 00 00 10 00 00 74 00 00 00 00 00 00 00 e3 0f 00 00 e1 0f 00 00 | ad..............t............... |
2020 | d4 0f 00 00 d2 0f 00 00 89 0f 00 00 44 0f 00 00 42 0f 00 00 00 0f 00 00 fe 0e 00 00 fc 0e 00 00 | ............D...B............... |
2040 | f1 0e 00 00 ef 0e 00 00 aa 0e 00 00 65 0e 00 00 21 0e 00 00 0d 0e 00 00 0b 0e 00 00 c8 0d 00 00 | ............e...!............... |
2060 | 8b 0d 00 00 47 0d 00 00 1c 0d 00 00 1a 0d 00 00 d6 0c 00 00 98 0c 00 00 58 0c 00 00 20 0c 00 00 | ....G...................X....... |
2080 | e7 0b 00 00 e5 0b 00 00 e3 0b 00 00 c1 0b 00 00 bf 0b 00 00 78 0b 00 00 35 0b 00 00 f0 0a 00 00 | ....................x...5....... |
20a0 | b0 0a 00 00 6e 0a 00 00 6c 0a 00 00 2c 0a 00 00 e8 09 00 00 a2 09 00 00 5d 09 00 00 14 09 00 00 | ....n...l...,...........]....... |
20c0 | d1 08 00 00 8d 08 00 00 5a 08 00 00 58 08 00 00 3d 08 00 00 3c 08 00 00 30 08 00 00 2f 08 00 00 | ........Z...X...=...<...0.../... |
20e0 | 0d 08 00 00 0c 08 00 00 fc 07 00 00 fb 07 00 00 ef 07 00 00 cf 07 00 00 bb 07 00 00 ba 07 00 00 | ................................ |
2100 | a7 07 00 00 a6 07 00 00 56 07 00 00 06 07 00 00 b6 06 00 00 6a 06 00 00 62 06 00 00 61 06 00 00 | ........V...........j...b...a... |
2120 | 5c 06 00 00 5b 06 00 00 47 06 00 00 46 06 00 00 3a 06 00 00 2c 06 00 00 2b 06 00 00 1b 06 00 00 | \...[...G...F...:...,...+....... |
2140 | 1a 06 00 00 0b 06 00 00 0a 06 00 00 ee 05 00 00 ed 05 00 00 b5 05 00 00 6c 05 00 00 6b 05 00 00 | ........................l...k... |
2160 | 66 05 00 00 65 05 00 00 4a 05 00 00 3f 05 00 00 ec 04 00 00 e5 04 00 00 e4 04 00 00 d6 04 00 00 | f...e...J...?................... |
2180 | 65 04 00 00 0a 04 00 00 fa 03 00 00 f4 03 00 00 f2 03 00 00 f1 03 00 00 e2 03 00 00 e1 03 00 00 | e............................... |
21a0 | 95 03 00 00 86 03 00 00 85 03 00 00 80 03 00 00 7f 03 00 00 71 03 00 00 5b 03 00 00 46 03 00 00 | ....................q...[...F... |
21c0 | 45 03 00 00 12 03 00 00 f0 02 00 00 b8 02 00 00 90 02 00 00 8a 02 00 00 89 02 00 00 6e 02 00 00 | E...........................n... |
21e0 | 3d 02 00 00 04 02 00 00 03 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | =............................... |
2200 | 00 00 00 00 20 20 20 20 20 20 20 20 50 61 73 73 77 6f 72 64 20 3d 3e 20 52 54 2d 3e 43 6f 6e 66 | ............Password.=>.RT->Conf |
2220 | 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 50 61 73 73 77 6f 72 64 27 29 2c 00 20 20 20 | ig->Get('DatabasePassword'),.... |
2240 | 20 20 20 20 20 55 73 65 72 20 3d 3e 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 | .....User.=>.RT->Config->Get('Da |
2260 | 74 61 62 61 73 65 55 73 65 72 27 29 2c 00 20 20 20 20 24 73 65 6c 66 2d 3e 53 55 50 45 52 3a 3a | tabaseUser'),.....$self->SUPER:: |
2280 | 43 6f 6e 6e 65 63 74 28 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 45 4e 56 7b 27 4e 4c | Connect(......}.........$ENV{'NL |
22a0 | 53 5f 4e 43 48 41 52 27 7d 20 3d 20 22 41 4c 33 32 55 54 46 38 22 3b 00 20 20 20 20 20 20 20 20 | S_NCHAR'}.=."AL32UTF8";......... |
22c0 | 24 45 4e 56 7b 27 4e 4c 53 5f 4c 41 4e 47 27 7d 20 3d 20 22 41 4d 45 52 49 43 41 4e 5f 41 4d 45 | $ENV{'NLS_LANG'}.=."AMERICAN_AME |
22e0 | 52 49 43 41 2e 41 4c 33 32 55 54 46 38 22 3b 00 20 20 20 20 69 66 20 28 20 24 64 62 5f 74 79 70 | RICA.AL32UTF8";.....if.(.$db_typ |
2300 | 65 20 65 71 20 27 4f 72 61 63 6c 65 27 20 29 20 7b 00 20 20 20 20 6d 79 20 24 64 62 5f 74 79 70 | e.eq.'Oracle'.).{.....my.$db_typ |
2320 | 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 54 79 70 | e.=.RT->Config->Get('DatabaseTyp |
2340 | 65 27 29 3b 00 00 20 20 20 20 6d 79 20 25 61 72 67 73 20 3d 20 28 40 5f 29 3b 00 20 20 20 20 6d | e');......my.%args.=.(@_);.....m |
2360 | 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 43 6f 6e 6e 65 63 74 20 7b 00 00 | y.$self.=.shift;.sub.Connect.{.. |
2380 | 3d 63 75 74 00 00 54 61 6b 65 73 20 6e 6f 74 68 69 6e 67 2e 00 43 6f 6e 6e 65 63 74 73 20 74 6f | =cut..Takes.nothing..Connects.to |
23a0 | 20 52 54 27 73 20 64 61 74 61 62 61 73 65 20 75 73 69 6e 67 20 63 72 65 64 65 6e 74 69 61 6c 73 | .RT's.database.using.credentials |
23c0 | 20 61 6e 64 20 6f 70 74 69 6f 6e 73 20 66 72 6f 6d 20 74 68 65 20 52 54 20 63 6f 6e 66 69 67 2e | .and.options.from.the.RT.config. |
23e0 | 00 00 3d 68 65 61 64 32 20 43 6f 6e 6e 65 63 74 00 00 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 | ..=head2.Connect..}.....}....... |
2400 | 20 20 20 20 20 20 24 40 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 22 50 65 72 68 61 70 73 20 79 | ......$@;............."Perhaps.y |
2420 | 6f 75 27 76 65 20 70 69 63 6b 65 64 20 61 6e 20 69 6e 76 61 6c 69 64 20 64 61 74 61 62 61 73 65 | ou've.picked.an.invalid.database |
2440 | 20 74 79 70 65 20 6f 72 20 73 70 65 6c 6c 65 64 20 69 74 20 69 6e 63 6f 72 72 65 63 74 6c 79 2e | .type.or.spelled.it.incorrectly. |
2460 | 5c 6e 22 2e 00 20 20 20 20 20 20 20 20 64 69 65 20 22 55 6e 61 62 6c 65 20 74 6f 20 6c 6f 61 64 | \n"..........die."Unable.to.load |
2480 | 20 44 42 49 78 3a 3a 53 65 61 72 63 68 42 75 69 6c 64 65 72 20 64 61 74 61 62 61 73 65 20 68 61 | .DBIx::SearchBuilder.database.ha |
24a0 | 6e 64 6c 65 20 66 6f 72 20 27 22 2e 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 | ndle.for.'"..RT->Config->Get('Da |
24c0 | 74 61 62 61 73 65 54 79 70 65 27 29 20 2e 22 27 2e 5c 6e 22 2e 00 20 20 20 20 69 66 20 28 24 40 | tabaseType').."'.\n"......if.($@ |
24e0 | 29 20 7b 00 00 20 20 20 20 7d 3b 00 20 20 20 20 20 20 20 20 75 73 65 20 62 61 73 65 20 22 44 42 | ).{......};.........use.base."DB |
2500 | 49 78 3a 3a 53 65 61 72 63 68 42 75 69 6c 64 65 72 3a 3a 48 61 6e 64 6c 65 3a 3a 22 2e 20 52 54 | Ix::SearchBuilder::Handle::"..RT |
2520 | 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 54 79 70 65 27 29 3b 00 20 | ->Config->Get('DatabaseType');.. |
2540 | 20 20 20 65 76 61 6c 20 7b 00 73 75 62 20 46 69 6e 61 6c 69 7a 65 44 61 74 61 62 61 73 65 54 79 | ...eval.{.sub.FinalizeDatabaseTy |
2560 | 70 65 20 7b 00 00 3d 63 75 74 00 00 4c 3c 44 42 49 78 3a 3a 53 65 61 72 63 68 42 75 69 6c 64 65 | pe.{..=cut..L<DBIx::SearchBuilde |
2580 | 72 3a 3a 48 61 6e 64 6c 65 3e 2c 20 75 73 69 6e 67 20 74 68 65 20 43 3c 44 61 74 61 62 61 73 65 | r::Handle>,.using.the.C<Database |
25a0 | 54 79 70 65 3e 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2e 00 53 65 74 73 20 52 54 3a 3a 48 61 | Type>.configuration..Sets.RT::Ha |
25c0 | 6e 64 6c 65 27 73 20 73 75 70 65 72 63 6c 61 73 73 20 74 6f 20 74 68 65 20 63 6f 72 72 65 63 74 | ndle's.superclass.to.the.correct |
25e0 | 20 73 75 62 63 6c 61 73 73 20 6f 66 00 00 3d 68 65 61 64 32 20 46 69 6e 61 6c 69 7a 65 44 61 74 | .subclass.of..=head2.FinalizeDat |
2600 | 61 62 61 73 65 54 79 70 65 00 00 3d 68 65 61 64 31 20 4d 45 54 48 4f 44 53 00 00 75 73 65 20 46 | abaseType..=head1.METHODS..use.F |
2620 | 69 6c 65 3a 3a 53 70 65 63 3b 00 00 75 73 65 20 77 61 72 6e 69 6e 67 73 3b 00 75 73 65 20 73 74 | ile::Spec;..use.warnings;.use.st |
2640 | 72 69 63 74 3b 00 00 70 61 63 6b 61 67 65 20 52 54 3a 3a 48 61 6e 64 6c 65 3b 00 00 3d 63 75 74 | rict;..package.RT::Handle;..=cut |
2660 | 00 00 6c 6f 61 64 65 64 2e 00 63 6f 6e 66 69 67 20 6f 70 74 69 6f 6e 2e 20 59 6f 75 20 42 3c 6d | ..loaded..config.option..You.B<m |
2680 | 75 73 74 3e 20 6c 6f 61 64 20 74 68 69 73 20 6d 6f 64 75 6c 65 20 6f 6e 6c 79 20 77 68 65 6e 20 | ust>.load.this.module.only.when. |
26a0 | 74 68 65 20 63 6f 6e 66 69 67 73 20 68 61 76 65 20 62 65 65 6e 00 66 72 6f 6d 20 4c 3c 44 42 49 | the.configs.have.been.from.L<DBI |
26c0 | 78 3a 3a 53 65 72 61 63 68 42 75 69 6c 64 65 72 3e 2e 20 54 79 70 65 20 6f 66 20 74 68 65 20 44 | x::SerachBuilder>..Type.of.the.D |
26e0 | 42 20 69 73 20 64 65 66 69 6e 65 64 20 62 79 20 43 3c 44 61 74 61 62 61 73 73 65 54 79 70 65 3e | B.is.defined.by.C<DatabasseType> |
2700 | 20 52 54 27 73 00 63 6c 61 73 73 65 73 2e 20 41 73 20 52 54 20 77 6f 72 6b 73 20 77 69 74 68 20 | .RT's.classes..As.RT.works.with. |
2720 | 64 69 66 66 65 72 65 6e 74 20 74 79 70 65 73 20 6f 66 20 44 42 73 20 77 65 20 73 75 62 63 6c 61 | different.types.of.DBs.we.subcla |
2740 | 73 73 20 72 65 70 73 65 63 74 69 76 65 20 68 61 6e 64 6c 65 72 00 43 3c 52 54 3a 3a 48 61 6e 64 | ss.repsective.handler.C<RT::Hand |
2760 | 6c 65 3e 20 69 73 20 52 54 20 73 70 65 63 69 66 69 63 20 77 72 61 70 70 65 72 20 6f 76 65 72 20 | le>.is.RT.specific.wrapper.over. |
2780 | 6f 6e 65 20 6f 66 20 4c 3c 44 42 49 78 3a 3a 53 65 61 72 63 68 42 75 69 6c 64 65 72 3a 3a 48 61 | one.of.L<DBIx::SearchBuilder::Ha |
27a0 | 6e 64 6c 65 3e 00 00 3d 68 65 61 64 31 20 44 45 53 43 52 49 50 54 49 4f 4e 00 00 20 20 20 20 75 | ndle>..=head1.DESCRIPTION......u |
27c0 | 73 65 20 52 54 3a 3a 48 61 6e 64 6c 65 3b 00 20 20 20 20 42 45 47 49 4e 20 7b 20 52 54 3a 3a 4c | se.RT::Handle;.....BEGIN.{.RT::L |
27e0 | 6f 61 64 43 6f 6e 66 69 67 28 29 20 7d 3b 00 20 20 20 20 75 73 65 20 52 54 3b 00 00 3d 68 65 61 | oadConfig().};.....use.RT;..=hea |
2800 | 64 31 20 53 59 4e 4f 50 53 49 53 00 00 52 54 3a 3a 48 61 6e 64 6c 65 20 2d 20 52 54 27 73 20 64 | d1.SYNOPSIS..RT::Handle.-.RT's.d |
2820 | 61 74 61 62 61 73 65 20 68 61 6e 64 6c 65 00 00 3d 68 65 61 64 31 20 4e 41 4d 45 00 00 23 20 45 | atabase.handle..=head1.NAME..#.E |
2840 | 4e 44 20 42 50 53 20 54 41 47 47 45 44 20 42 4c 4f 43 4b 20 7d 7d 7d 00 23 00 23 20 74 68 6f 73 | ND.BPS.TAGGED.BLOCK.}}}.#.#.thos |
2860 | 65 20 63 6f 6e 74 72 69 62 75 74 69 6f 6e 73 20 61 6e 64 20 61 6e 79 20 64 65 72 69 76 61 74 69 | e.contributions.and.any.derivati |
2880 | 76 65 73 20 74 68 65 72 65 6f 66 2e 00 23 20 77 6f 72 6b 73 20 62 61 73 65 64 20 6f 6e 20 74 68 | ves.thereof..#.works.based.on.th |
28a0 | 6f 73 65 20 63 6f 6e 74 72 69 62 75 74 69 6f 6e 73 2c 20 61 6e 64 20 73 75 62 6c 69 63 65 6e 73 | ose.contributions,.and.sublicens |
28c0 | 65 20 61 6e 64 20 64 69 73 74 72 69 62 75 74 65 00 23 20 72 6f 79 61 6c 74 79 2d 66 72 65 65 2c | e.and.distribute.#.royalty-free, |
28e0 | 20 70 65 72 70 65 74 75 61 6c 2c 20 6c 69 63 65 6e 73 65 20 74 6f 20 75 73 65 2c 20 63 6f 70 79 | .perpetual,.license.to.use,.copy |
2900 | 2c 20 63 72 65 61 74 65 20 64 65 72 69 76 61 74 69 76 65 00 23 20 42 65 73 74 20 50 72 61 63 74 | ,.create.derivative.#.Best.Pract |
2920 | 69 63 61 6c 20 53 6f 6c 75 74 69 6f 6e 73 2c 20 20 4c 4c 43 20 61 20 6e 6f 6e 65 78 63 6c 75 73 | ical.Solutions,..LLC.a.nonexclus |
2940 | 69 76 65 2c 20 77 6f 72 6c 64 77 69 64 65 2c 20 69 72 72 65 76 6f 63 61 62 6c 65 2c 00 23 20 79 | ive,.worldwide,.irrevocable,.#.y |
2960 | 6f 75 20 61 72 65 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 66 6f 72 20 | ou.are.the.copyright.holder.for. |
2980 | 74 68 6f 73 65 20 63 6f 6e 74 72 69 62 75 74 69 6f 6e 73 20 61 6e 64 20 79 6f 75 20 67 72 61 6e | those.contributions.and.you.gran |
29a0 | 74 00 23 20 52 65 71 75 65 73 74 20 54 72 61 63 6b 65 72 2c 20 74 6f 20 42 65 73 74 20 50 72 61 | t.#.Request.Tracker,.to.Best.Pra |
29c0 | 63 74 69 63 61 6c 20 53 6f 6c 75 74 69 6f 6e 73 2c 20 4c 4c 43 2c 20 79 6f 75 20 63 6f 6e 66 69 | ctical.Solutions,.LLC,.you.confi |
29e0 | 72 6d 20 74 68 61 74 00 23 20 64 65 72 69 76 61 74 69 76 65 73 20 74 6f 20 74 68 69 73 20 77 6f | rm.that.#.derivatives.to.this.wo |
2a00 | 72 6b 2c 20 6f 72 20 61 6e 79 20 6f 74 68 65 72 20 77 6f 72 6b 20 69 6e 74 65 6e 64 65 64 20 66 | rk,.or.any.other.work.intended.f |
2a20 | 6f 72 20 75 73 65 20 77 69 74 68 00 23 20 42 79 20 69 6e 74 65 6e 74 69 6f 6e 61 6c 6c 79 20 73 | or.use.with.#.By.intentionally.s |
2a40 | 75 62 6d 69 74 74 69 6e 67 20 61 6e 79 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 2c 20 63 6f 72 | ubmitting.any.modifications,.cor |
2a60 | 72 65 63 74 69 6f 6e 73 20 6f 72 00 23 00 23 20 63 6f 6d 6d 75 6e 69 74 79 20 62 79 20 73 75 62 | rections.or.#.#.community.by.sub |
2a80 | 6d 69 74 74 69 6e 67 20 74 68 65 6d 20 74 6f 20 42 65 73 74 20 50 72 61 63 74 69 63 61 6c 20 53 | mitting.them.to.Best.Practical.S |
2aa0 | 6f 6c 75 74 69 6f 6e 73 2c 20 4c 4c 43 2e 29 00 23 20 79 6f 75 20 63 68 6f 6f 73 65 20 74 6f 20 | olutions,.LLC.).#.you.choose.to. |
2ac0 | 63 6f 6e 74 72 69 62 75 74 65 20 79 6f 75 72 20 63 68 61 6e 67 65 73 20 61 6e 64 20 65 6e 68 61 | contribute.your.changes.and.enha |
2ae0 | 6e 63 65 6d 65 6e 74 73 20 74 6f 20 74 68 65 00 23 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 | ncements.to.the.#.the.GNU.Genera |
2b00 | 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 6e 64 20 69 73 20 6f 6e 6c 79 20 6f 66 20 | l.Public.License.and.is.only.of. |
2b20 | 69 6d 70 6f 72 74 61 6e 63 65 20 74 6f 20 79 6f 75 20 69 66 00 23 20 74 6f 20 79 6f 75 20 74 6f | importance.to.you.if.#.to.you.to |
2b40 | 20 6d 6f 64 69 66 79 20 61 6e 64 20 64 69 73 74 72 69 62 75 74 65 20 74 68 69 73 20 73 6f 66 74 | .modify.and.distribute.this.soft |
2b60 | 77 61 72 65 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 00 23 20 28 54 68 65 20 66 | ware.under.the.terms.of.#.(The.f |
2b80 | 6f 6c 6c 6f 77 69 6e 67 20 70 61 72 61 67 72 61 70 68 20 69 73 20 6e 6f 74 20 69 6e 74 65 6e 64 | ollowing.paragraph.is.not.intend |
2ba0 | 65 64 20 74 6f 20 6c 69 6d 69 74 20 74 68 65 20 72 69 67 68 74 73 20 67 72 61 6e 74 65 64 00 23 | ed.to.limit.the.rights.granted.# |
2bc0 | 00 23 20 43 4f 4e 54 52 49 42 55 54 49 4f 4e 20 53 55 42 4d 49 53 53 49 4f 4e 20 50 4f 4c 49 43 | .#.CONTRIBUTION.SUBMISSION.POLIC |
2be0 | 59 3a 00 23 00 23 00 23 20 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 | Y:.#.#.#.http://www.gnu.org/lice |
2c00 | 6e 73 65 73 2f 6f 6c 64 2d 6c 69 63 65 6e 73 65 73 2f 67 70 6c 2d 32 2e 30 2e 68 74 6d 6c 2e 00 | nses/old-licenses/gpl-2.0.html.. |
2c20 | 23 20 30 32 31 31 30 2d 31 33 30 31 20 6f 72 20 76 69 73 69 74 20 74 68 65 69 72 20 77 65 62 20 | #.02110-1301.or.visit.their.web. |
2c40 | 70 61 67 65 20 6f 6e 20 74 68 65 20 69 6e 74 65 72 6e 65 74 20 61 74 00 23 20 46 6f 75 6e 64 61 | page.on.the.internet.at.#.Founda |
2c60 | 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 | tion,.Inc.,.51.Franklin.Street,. |
2c80 | 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 20 4d 41 00 23 20 61 6c 6f 6e 67 20 | Fifth.Floor,.Boston,.MA.#.along. |
2ca0 | 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69 74 65 | with.this.program;.if.not,.write |
2cc0 | 20 74 6f 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 00 23 20 59 6f 75 20 73 68 6f 75 | .to.the.Free.Software.#.You.shou |
2ce0 | 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 | ld.have.received.a.copy.of.the.G |
2d00 | 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 00 23 00 23 20 47 65 | NU.General.Public.License.#.#.Ge |
2d20 | 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 | neral.Public.License.for.more.de |
2d40 | 74 61 69 6c 73 2e 00 23 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e | tails..#.MERCHANTABILITY.or.FITN |
2d60 | 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 | ESS.FOR.A.PARTICULAR.PURPOSE...S |
2d80 | 65 65 20 74 68 65 20 47 4e 55 00 23 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 | ee.the.GNU.#.WITHOUT.ANY.WARRANT |
2da0 | 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 | Y;.without.even.the.implied.warr |
2dc0 | 61 6e 74 79 20 6f 66 00 23 20 54 68 69 73 20 77 6f 72 6b 20 69 73 20 64 69 73 74 72 69 62 75 74 | anty.of.#.This.work.is.distribut |
2de0 | 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 | ed.in.the.hope.that.it.will.be.u |
2e00 | 73 65 66 75 6c 2c 20 62 75 74 00 23 00 23 20 66 72 6f 6d 20 77 77 77 2e 67 6e 75 2e 6f 72 67 2e | seful,.but.#.#.from.www.gnu.org. |
2e20 | 00 23 20 62 65 65 6e 20 70 72 6f 76 69 64 65 64 20 77 69 74 68 20 74 68 69 73 20 73 6f 66 74 77 | .#.been.provided.with.this.softw |
2e40 | 61 72 65 2c 20 62 75 74 20 69 6e 20 61 6e 79 20 65 76 65 6e 74 20 63 61 6e 20 62 65 20 73 6e 61 | are,.but.in.any.event.can.be.sna |
2e60 | 72 66 65 64 00 23 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 | rfed.#.the.GNU.General.Public.Li |
2e80 | 63 65 6e 73 65 2e 20 41 20 63 6f 70 79 20 6f 66 20 74 68 61 74 20 6c 69 63 65 6e 73 65 20 73 68 | cense..A.copy.of.that.license.sh |
2ea0 | 6f 75 6c 64 20 68 61 76 65 00 23 20 54 68 69 73 20 77 6f 72 6b 20 69 73 20 6d 61 64 65 20 61 76 | ould.have.#.This.work.is.made.av |
2ec0 | 61 69 6c 61 62 6c 65 20 74 6f 20 79 6f 75 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f | ailable.to.you.under.the.terms.o |
2ee0 | 66 20 56 65 72 73 69 6f 6e 20 32 20 6f 66 00 23 00 23 20 4c 49 43 45 4e 53 45 3a 00 23 00 23 00 | f.Version.2.of.#.#.LICENSE:.#.#. |
2f00 | 23 20 28 45 78 63 65 70 74 20 77 68 65 72 65 20 65 78 70 6c 69 63 69 74 6c 79 20 73 75 70 65 72 | #.(Except.where.explicitly.super |
2f20 | 73 65 64 65 64 20 62 79 20 6f 74 68 65 72 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 73 | seded.by.other.copyright.notices |
2f40 | 29 00 23 00 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ).#.#........................... |
2f60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 61 6c 65 73 40 62 65 73 74 70 72 61 63 74 69 | ...............<sales@bestpracti |
2f80 | 63 61 6c 2e 63 6f 6d 3e 00 23 20 54 68 69 73 20 73 6f 66 74 77 61 72 65 20 69 73 20 43 6f 70 79 | cal.com>.#.This.software.is.Copy |
2fa0 | 72 69 67 68 74 20 28 63 29 20 31 39 39 36 2d 32 30 31 34 20 42 65 73 74 20 50 72 61 63 74 69 63 | right.(c).1996-2014.Best.Practic |
2fc0 | 61 6c 20 53 6f 6c 75 74 69 6f 6e 73 2c 20 4c 4c 43 00 23 00 23 20 43 4f 50 59 52 49 47 48 54 3a | al.Solutions,.LLC.#.#.COPYRIGHT: |
2fe0 | 00 23 00 23 20 42 45 47 49 4e 20 42 50 53 20 54 41 47 47 45 44 20 42 4c 4f 43 4b 20 7b 7b 7b 00 | .#.#.BEGIN.BPS.TAGGED.BLOCK.{{{. |
3000 | 61 64 00 00 dc 07 00 00 34 09 00 00 00 10 00 00 4f 00 00 00 00 00 00 00 ff 0f 00 00 f2 0f 00 00 | ad......4.......O............... |
3020 | f1 0f 00 00 a2 0f 00 00 4b 0f 00 00 38 0f 00 00 37 0f 00 00 32 0f 00 00 31 0f 00 00 25 0f 00 00 | ........K...8...7...2...1...%... |
3040 | 0f 0f 00 00 f8 0e 00 00 f7 0e 00 00 d1 0e 00 00 cf 0e 00 00 ce 0e 00 00 c0 0e 00 00 bf 0e 00 00 | ................................ |
3060 | 72 0e 00 00 59 0e 00 00 58 0e 00 00 53 0e 00 00 52 0e 00 00 45 0e 00 00 2f 0e 00 00 19 0e 00 00 | r...Y...X...S...R...E.../....... |
3080 | 03 0e 00 00 02 0e 00 00 f3 0d 00 00 f2 0d 00 00 d2 0d 00 00 a0 0d 00 00 9f 0d 00 00 8e 0d 00 00 | ................................ |
30a0 | 8c 0d 00 00 8b 0d 00 00 3b 0d 00 00 11 0d 00 00 fa 0c 00 00 e4 0c 00 00 c9 0c 00 00 af 0c 00 00 | ........;....................... |
30c0 | 9c 0c 00 00 9b 0c 00 00 76 0c 00 00 ef 0b 00 00 ed 0b 00 00 ec 0b 00 00 eb 0b 00 00 d9 0b 00 00 | ........v....................... |
30e0 | c3 0b 00 00 a0 0b 00 00 9f 0b 00 00 99 0b 00 00 87 0b 00 00 7a 0b 00 00 4f 0b 00 00 1b 0b 00 00 | ....................z...O....... |
3100 | e4 0a 00 00 d8 0a 00 00 65 0a 00 00 5b 0a 00 00 55 0a 00 00 54 0a 00 00 47 0a 00 00 46 0a 00 00 | ........e...[...U...T...G...F... |
3120 | 08 0a 00 00 d5 09 00 00 94 09 00 00 8e 09 00 00 8d 09 00 00 7c 09 00 00 7a 09 00 00 79 09 00 00 | ....................|...z...y... |
3140 | 56 09 00 00 55 09 00 00 38 09 00 00 37 09 00 00 34 09 00 00 33 09 00 00 00 00 00 00 00 00 00 00 | V...U...8...7...4...3........... |
3160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
31a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
31c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
31e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
32a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
32c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
32e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
33a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
33c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
33e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
34a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
34c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
34e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
35a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
35c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
35e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
36a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
36c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
36e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
37a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
37c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
37e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
38a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
38c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
38e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 31 3b 00 00 52 54 3a 3a 42 61 73 65 | ....................1;..RT::Base |
3940 | 2d 3e 5f 49 6d 70 6f 72 74 4f 76 65 72 6c 61 79 73 28 29 3b 00 00 5f 5f 50 41 43 4b 41 47 45 5f | ->_ImportOverlays();..__PACKAGE_ |
3960 | 5f 2d 3e 46 69 6e 61 6c 69 7a 65 44 61 74 61 62 61 73 65 54 79 70 65 3b 00 00 7d 00 20 20 20 20 | _->FinalizeDatabaseType;..}..... |
3980 | 72 65 74 75 72 6e 20 40 72 65 73 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 70 75 73 68 | return.@res;......}.........push |
39a0 | 20 40 72 65 73 2c 20 24 74 61 62 6c 65 2d 3e 7b 54 41 42 4c 45 5f 4e 41 4d 45 7d 20 7c 7c 20 24 | .@res,.$table->{TABLE_NAME}.||.$ |
39c0 | 74 61 62 6c 65 2d 3e 7b 74 61 62 6c 65 5f 6e 61 6d 65 7d 3b 00 20 20 20 20 77 68 69 6c 65 20 28 | table->{table_name};.....while.( |
39e0 | 20 6d 79 20 24 74 61 62 6c 65 20 3d 20 24 73 74 68 2d 3e 66 65 74 63 68 72 6f 77 5f 68 61 73 68 | .my.$table.=.$sth->fetchrow_hash |
3a00 | 72 65 66 20 29 20 7b 00 20 20 20 20 6d 79 20 24 73 74 68 20 3d 20 24 64 62 68 2d 3e 74 61 62 6c | ref.).{.....my.$sth.=.$dbh->tabl |
3a20 | 65 5f 69 6e 66 6f 28 20 27 27 2c 20 75 6e 64 65 66 2c 20 75 6e 64 65 66 2c 20 22 27 54 41 42 4c | e_info(.'',.undef,.undef,."'TABL |
3a40 | 45 27 22 29 3b 00 00 20 20 20 20 6d 79 20 40 72 65 73 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 | E'");......my.@res;......}...... |
3a60 | 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 64 69 65 20 22 59 6f 75 27 72 65 20 75 73 69 | ...}.............die."You're.usi |
3a80 | 6e 67 20 50 6f 73 74 67 72 65 53 51 4c 20 39 2e 32 20 6f 72 20 6e 65 77 65 72 2e 20 59 6f 75 20 | ng.PostgreSQL.9.2.or.newer..You. |
3aa0 | 68 61 76 65 20 74 6f 20 75 70 67 72 61 64 65 20 44 42 44 3a 3a 50 67 20 6d 6f 64 75 6c 65 20 74 | have.to.upgrade.DBD::Pg.module.t |
3ac0 | 6f 20 32 2e 31 39 2e 33 20 6f 72 20 6e 65 77 65 72 3a 20 24 40 22 3b 00 20 20 20 20 20 20 20 20 | o.2.19.3.or.newer:.$@";......... |
3ae0 | 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 26 26 20 21 65 76 61 6c 20 7b 20 44 42 44 3a 3a | ).{.............&&.!eval.{.DBD:: |
3b00 | 50 67 2d 3e 56 45 52 53 49 4f 4e 28 27 32 2e 31 39 2e 33 27 29 3b 20 31 20 7d 00 20 20 20 20 20 | Pg->VERSION('2.19.3');.1.}...... |
3b20 | 20 20 20 20 20 20 20 26 26 20 24 64 62 68 2d 3e 7b 27 70 67 5f 73 65 72 76 65 72 5f 76 65 72 73 | .......&&.$dbh->{'pg_server_vers |
3b40 | 69 6f 6e 27 7d 20 3e 3d 20 39 30 32 30 30 00 20 20 20 20 20 20 20 20 20 20 20 20 24 64 62 68 2d | ion'}.>=.90200.............$dbh- |
3b60 | 3e 7b 44 72 69 76 65 72 7d 2d 3e 7b 4e 61 6d 65 7d 20 65 71 20 27 50 67 27 00 20 20 20 20 20 20 | >{Driver}->{Name}.eq.'Pg'....... |
3b80 | 20 20 69 66 20 28 00 20 20 20 20 20 20 20 20 6c 6f 63 61 6c 20 24 40 3b 00 20 20 20 20 7b 00 00 | ..if.(.........local.$@;.....{.. |
3ba0 | 20 20 20 20 6d 79 20 24 64 62 68 20 3d 20 73 68 69 66 74 20 7c 7c 20 24 73 65 6c 66 2d 3e 64 62 | ....my.$dbh.=.shift.||.$self->db |
3bc0 | 68 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 5f 54 61 | h;.....my.$self.=.shift;.sub._Ta |
3be0 | 62 6c 65 4e 61 6d 65 73 20 7b 00 00 00 7d 00 20 20 20 20 70 75 73 68 20 40 7b 24 73 65 6c 66 2d | bleNames.{...}.....push.@{$self- |
3c00 | 3e 7b 27 53 74 61 74 65 6d 65 6e 74 4c 6f 67 27 7d 7d 20 2c 20 28 5b 54 69 6d 65 3a 3a 48 69 52 | >{'StatementLog'}}.,.([Time::HiR |
3c20 | 65 73 3a 3a 74 69 6d 65 28 29 2c 20 24 73 74 61 74 65 6d 65 6e 74 2c 20 5b 40 62 69 6e 64 5d 2c | es::time(),.$statement,.[@bind], |
3c40 | 20 24 64 75 72 61 74 69 6f 6e 2c 20 48 54 4d 4c 3a 3a 4d 61 73 6f 6e 3a 3a 45 78 63 65 70 74 69 | .$duration,.HTML::Mason::Excepti |
3c60 | 6f 6e 2d 3e 6e 65 77 2d 3e 61 73 5f 73 74 72 69 6e 67 5d 29 3b 00 20 20 20 20 72 65 71 75 69 72 | on->new->as_string]);.....requir |
3c80 | 65 20 48 54 4d 4c 3a 3a 4d 61 73 6f 6e 3a 3a 45 78 63 65 70 74 69 6f 6e 73 3b 00 00 20 20 20 20 | e.HTML::Mason::Exceptions;...... |
3ca0 | 6d 79 20 40 62 69 6e 64 20 3d 20 40 5f 3b 00 20 20 20 20 6d 79 20 24 64 75 72 61 74 69 6f 6e 20 | my.@bind.=.@_;.....my.$duration. |
3cc0 | 3d 20 73 68 69 66 74 3b 00 20 20 20 20 6d 79 20 24 73 74 61 74 65 6d 65 6e 74 20 3d 20 73 68 69 | =.shift;.....my.$statement.=.shi |
3ce0 | 66 74 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 5f 4c | ft;.....my.$self.=.shift;.sub._L |
3d00 | 6f 67 53 51 4c 53 74 61 74 65 6d 65 6e 74 20 7b 00 23 20 61 6e 64 20 75 73 65 73 20 6d 61 73 6f | ogSQLStatement.{.#.and.uses.maso |
3d20 | 6e 20 63 6f 6d 70 6f 6e 65 6e 74 20 70 61 74 68 73 20 70 72 6f 70 65 72 6c 79 00 23 20 6c 6f 67 | n.component.paths.properly.#.log |
3d40 | 20 61 20 6d 61 73 6f 6e 20 73 74 61 63 6b 20 74 72 61 63 65 20 69 6e 73 74 65 61 64 20 6f 66 20 | .a.mason.stack.trace.instead.of. |
3d60 | 61 20 43 61 72 70 3a 3a 6c 6f 6e 67 6d 65 73 73 20 62 65 63 61 75 73 65 20 69 74 27 73 20 6c 65 | a.Carp::longmess.because.it's.le |
3d80 | 73 73 20 70 61 69 6e 66 75 6c 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e 20 24 73 71 6c 3b 00 00 | ss.painful..}.....return.$sql;.. |
3da0 | 20 20 20 20 24 73 71 6c 20 3d 7e 20 73 7b 5c 3f 7d 7b 24 73 65 6c 66 2d 3e 51 75 6f 74 65 28 24 | ....$sql.=~.s{\?}{$self->Quote($ |
3dc0 | 62 69 6e 64 2d 3e 5b 24 62 2b 2b 5d 29 7d 65 67 3b 00 20 20 20 20 23 20 69 73 20 74 68 69 73 20 | bind->[$b++])}eg;.....#.is.this. |
3de0 | 72 65 67 65 78 20 73 75 66 66 69 63 69 65 6e 74 3f 00 00 20 20 20 20 6d 79 20 24 62 20 3d 20 30 | regex.sufficient?......my.$b.=.0 |
3e00 | 3b 00 00 20 20 20 20 6d 79 20 24 62 69 6e 64 20 3d 20 73 68 69 66 74 3b 00 20 20 20 20 6d 79 20 | ;......my.$bind.=.shift;.....my. |
3e20 | 24 73 71 6c 20 20 3d 20 73 68 69 66 74 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 | $sql..=.shift;.....my.$self.=.sh |
3e40 | 69 66 74 3b 00 73 75 62 20 46 69 6c 6c 49 6e 20 7b 00 00 3d 63 75 74 00 00 71 75 65 72 79 27 73 | ift;.sub.FillIn.{..=cut..query's |
3e60 | 20 43 3c 3f 3e 20 70 61 72 61 6d 65 74 65 72 73 2e 00 54 61 6b 65 73 20 61 20 53 51 4c 20 71 75 | .C<?>.parameters..Takes.a.SQL.qu |
3e80 | 65 72 79 20 61 6e 64 20 61 6e 20 61 72 72 61 79 20 72 65 66 65 72 65 6e 63 65 20 6f 66 20 62 69 | ery.and.an.array.reference.of.bi |
3ea0 | 6e 64 20 70 61 72 61 6d 65 74 65 72 73 20 61 6e 64 20 66 69 6c 6c 73 20 69 6e 20 74 68 65 00 00 | nd.parameters.and.fills.in.the.. |
3ec0 | 3d 68 65 61 64 32 20 46 69 6c 6c 49 6e 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e 20 24 73 65 6c | =head2.FillIn..}.....return.$sel |
3ee0 | 66 2d 3e 64 62 68 2d 3e 71 75 6f 74 65 28 24 76 61 6c 75 65 29 3b 00 00 20 20 20 20 6d 79 20 24 | f->dbh->quote($value);......my.$ |
3f00 | 76 61 6c 75 65 20 3d 20 73 68 69 66 74 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 | value.=.shift;.....my.$self.=.sh |
3f20 | 69 66 74 3b 00 73 75 62 20 51 75 6f 74 65 20 7b 00 00 3d 63 75 74 00 00 77 69 74 68 20 74 68 65 | ift;.sub.Quote.{..=cut..with.the |
3f40 | 20 64 61 74 61 62 61 73 65 2e 00 55 73 65 20 62 69 6e 64 20 70 61 72 61 6d 65 74 65 72 73 20 28 | .database..Use.bind.parameters.( |
3f60 | 43 3c 3f 3e 29 20 69 6e 73 74 65 61 64 2e 20 54 68 69 73 20 69 73 20 75 73 65 64 20 6f 6e 6c 79 | C<?>).instead..This.is.used.only |
3f80 | 20 6f 75 74 73 69 64 65 20 74 68 65 20 73 63 6f 70 65 20 6f 66 20 69 6e 74 65 72 61 63 74 69 6e | .outside.the.scope.of.interactin |
3fa0 | 67 00 52 65 74 75 72 6e 73 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 71 75 6f 74 65 64 20 62 | g.Returns.the.parameter.quoted.b |
3fc0 | 79 20 44 42 49 2e 20 42 3c 59 6f 75 20 61 6c 6d 6f 73 74 20 63 65 72 74 61 69 6e 6c 79 20 64 6f | y.DBI..B<You.almost.certainly.do |
3fe0 | 20 6e 6f 74 20 6e 65 65 64 20 74 68 69 73 2e 3e 00 00 3d 68 65 61 64 32 20 51 75 6f 74 65 00 00 | .not.need.this.>..=head2.Quote.. |
4000 | 61 64 00 00 0b 02 00 00 03 04 00 00 00 10 00 00 77 00 00 00 00 00 00 00 fa 0f 00 00 f9 0f 00 00 | ad..............w............... |
4020 | f8 0f 00 00 f7 0f 00 00 af 0f 00 00 ad 0f 00 00 ac 0f 00 00 9c 0f 00 00 9b 0f 00 00 4c 0f 00 00 | ............................L... |
4040 | 3b 0f 00 00 3a 0f 00 00 35 0f 00 00 34 0f 00 00 33 0f 00 00 24 0f 00 00 0e 0f 00 00 b7 0e 00 00 | ;...:...5...4...3...$........... |
4060 | 84 0e 00 00 3b 0e 00 00 08 0e 00 00 e2 0d 00 00 af 0d 00 00 7c 0d 00 00 41 0d 00 00 f0 0c 00 00 | ....;...............|...A....... |
4080 | ef 0c 00 00 de 0c 00 00 be 0c 00 00 9e 0c 00 00 7e 0c 00 00 5e 0c 00 00 21 0c 00 00 1a 0c 00 00 | ................~...^...!....... |
40a0 | ec 0b 00 00 bb 0b 00 00 b5 0b 00 00 90 0b 00 00 8e 0b 00 00 8d 0b 00 00 82 0b 00 00 81 0b 00 00 | ................................ |
40c0 | 39 0b 00 00 16 0b 00 00 15 0b 00 00 d2 0a 00 00 91 0a 00 00 90 0a 00 00 8b 0a 00 00 8a 0a 00 00 | 9............................... |
40e0 | 80 0a 00 00 6a 0a 00 00 3f 0a 00 00 3e 0a 00 00 21 0a 00 00 0a 0a 00 00 f1 09 00 00 ef 09 00 00 | ....j...?...>...!............... |
4100 | ee 09 00 00 dd 09 00 00 dc 09 00 00 a6 09 00 00 8a 09 00 00 89 09 00 00 4b 09 00 00 1a 09 00 00 | ........................K....... |
4120 | 19 09 00 00 14 09 00 00 13 09 00 00 03 09 00 00 ed 08 00 00 ec 08 00 00 b9 08 00 00 86 08 00 00 | ................................ |
4140 | 85 08 00 00 6b 08 00 00 4a 08 00 00 02 08 00 00 db 07 00 00 d5 07 00 00 b4 07 00 00 71 07 00 00 | ....k...J...................q... |
4160 | 3a 07 00 00 34 07 00 00 23 07 00 00 21 07 00 00 20 07 00 00 ed 06 00 00 ec 06 00 00 eb 06 00 00 | :...4...#...!................... |
4180 | ea 06 00 00 e5 06 00 00 e4 06 00 00 cf 06 00 00 b9 06 00 00 91 06 00 00 90 06 00 00 60 06 00 00 | ............................`... |
41a0 | 4e 06 00 00 15 06 00 00 e6 05 00 00 dc 05 00 00 d6 05 00 00 d5 05 00 00 b8 05 00 00 8e 05 00 00 | N............................... |
41c0 | 6b 05 00 00 4b 05 00 00 e8 04 00 00 e2 04 00 00 e1 04 00 00 ba 04 00 00 9a 04 00 00 7a 04 00 00 | k...K.......................z... |
41e0 | 1a 04 00 00 14 04 00 00 13 04 00 00 05 04 00 00 03 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
42a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
42c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
42e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
43a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
43c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
43e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4400 | 00 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 | ...}.....return.1;......}....... |
4420 | 20 20 72 65 74 75 72 6e 20 28 30 2c 20 27 6e 6f 20 6e 6f 62 6f 64 79 20 75 73 65 72 27 2c 20 22 | ..return.(0,.'no.nobody.user',." |
4440 | 43 6f 75 6c 64 6e 27 74 20 66 69 6e 64 20 4e 6f 62 6f 64 79 20 75 73 65 72 20 69 6e 20 74 68 65 | Couldn't.find.Nobody.user.in.the |
4460 | 20 44 42 20 27 22 2e 20 24 73 65 6c 66 2d 3e 44 53 4e 20 2e 22 27 22 29 3b 00 20 20 20 20 75 6e | .DB.'"..$self->DSN.."'");.....un |
4480 | 6c 65 73 73 20 28 20 24 74 65 73 74 5f 75 73 65 72 2d 3e 69 64 20 29 20 7b 00 20 20 20 20 24 74 | less.(.$test_user->id.).{.....$t |
44a0 | 65 73 74 5f 75 73 65 72 2d 3e 4c 6f 61 64 28 27 4e 6f 62 6f 64 79 27 29 3b 00 20 20 20 20 24 74 | est_user->Load('Nobody');.....$t |
44c0 | 65 73 74 5f 75 73 65 72 20 3d 20 52 54 3a 3a 43 75 72 72 65 6e 74 55 73 65 72 2d 3e 6e 65 77 3b | est_user.=.RT::CurrentUser->new; |
44e0 | 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 27 6e 6f 20 73 | ......}.........return.(0,.'no.s |
4500 | 79 73 74 65 6d 20 75 73 65 72 27 2c 20 22 43 6f 75 6c 64 6e 27 74 20 66 69 6e 64 20 52 54 5f 53 | ystem.user',."Couldn't.find.RT_S |
4520 | 79 73 74 65 6d 20 75 73 65 72 20 69 6e 20 74 68 65 20 44 42 20 27 22 2e 20 24 73 65 6c 66 2d 3e | ystem.user.in.the.DB.'"..$self-> |
4540 | 44 53 4e 20 2e 22 27 22 29 3b 00 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 74 65 73 74 5f 75 73 | DSN.."'");.....unless.(.$test_us |
4560 | 65 72 2d 3e 69 64 20 29 20 7b 00 20 20 20 20 24 74 65 73 74 5f 75 73 65 72 2d 3e 4c 6f 61 64 28 | er->id.).{.....$test_user->Load( |
4580 | 27 52 54 5f 53 79 73 74 65 6d 27 29 3b 00 20 20 20 20 6d 79 20 24 74 65 73 74 5f 75 73 65 72 20 | 'RT_System');.....my.$test_user. |
45a0 | 3d 20 52 54 3a 3a 43 75 72 72 65 6e 74 55 73 65 72 2d 3e 6e 65 77 3b 00 20 20 20 20 72 65 71 75 | =.RT::CurrentUser->new;.....requ |
45c0 | 69 72 65 20 52 54 3a 3a 43 75 72 72 65 6e 74 55 73 65 72 3b 00 00 20 20 20 20 7d 00 20 20 20 20 | ire.RT::CurrentUser;......}..... |
45e0 | 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 27 6e 6f | ....}.............return.(0,.'no |
4600 | 20 63 6f 6e 6e 65 63 74 69 6f 6e 27 2c 20 22 24 40 22 29 3b 00 20 20 20 20 20 20 20 20 75 6e 6c | .connection',."$@");.........unl |
4620 | 65 73 73 20 28 20 65 76 61 6c 20 7b 20 52 54 3a 3a 43 6f 6e 6e 65 63 74 54 6f 44 61 74 61 62 61 | ess.(.eval.{.RT::ConnectToDataba |
4640 | 73 65 28 29 3b 20 31 20 7d 20 29 20 7b 00 20 20 20 20 20 20 20 20 6c 6f 63 61 6c 20 24 40 3b 00 | se();.1.}.).{.........local.$@;. |
4660 | 20 20 20 20 75 6e 6c 65 73 73 20 28 24 52 54 3a 3a 48 61 6e 64 6c 65 20 61 6e 64 20 24 52 54 3a | ....unless.($RT::Handle.and.$RT: |
4680 | 3a 48 61 6e 64 6c 65 2d 3e 64 62 68 29 20 7b 00 00 20 20 20 20 24 73 65 6c 66 20 3d 20 6e 65 77 | :Handle->dbh).{......$self.=.new |
46a0 | 20 24 73 65 6c 66 20 75 6e 6c 65 73 73 20 72 65 66 20 24 73 65 6c 66 3b 00 20 20 20 20 6d 79 20 | .$self.unless.ref.$self;.....my. |
46c0 | 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 43 68 65 63 6b 49 6e 74 65 67 72 69 74 | $self.=.shift;.sub.CheckIntegrit |
46e0 | 79 20 7b 00 00 3d 63 75 74 00 00 00 00 3d 68 65 61 64 32 20 44 61 74 61 62 61 73 65 20 63 6f 6d | y.{..=cut....=head2.Database.com |
4700 | 70 61 74 69 62 69 6c 69 74 79 20 61 6e 64 20 69 6e 74 65 67 72 69 74 79 20 63 68 65 63 6b 73 00 | patibility.and.integrity.checks. |
4720 | 00 7d 00 20 20 20 20 72 65 74 75 72 6e 20 24 64 73 6e 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 | .}.....return.$dsn;.....}....... |
4740 | 20 20 24 64 73 6e 20 3d 7e 20 73 2f 64 62 6e 61 6d 65 3d 5c 51 24 64 62 5f 6e 61 6d 65 2f 64 62 | ..$dsn.=~.s/dbname=\Q$db_name/db |
4760 | 6e 61 6d 65 3d 74 65 6d 70 6c 61 74 65 31 2f 3b 00 20 20 20 20 20 20 20 20 23 20 77 69 74 68 20 | name=template1/;.........#.with. |
4780 | 70 6f 73 74 67 72 65 73 2c 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 63 6f 6e 6e 65 63 74 20 74 6f | postgres,.you.want.to.connect.to |
47a0 | 20 74 65 6d 70 6c 61 74 65 31 20 64 61 74 61 62 61 73 65 00 20 20 20 20 65 6c 73 69 66 20 28 20 | .template1.database.....elsif.(. |
47c0 | 24 64 62 5f 74 79 70 65 20 65 71 20 27 50 67 27 20 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 | $db_type.eq.'Pg'.).{.....}...... |
47e0 | 20 20 20 24 64 73 6e 20 3d 7e 20 73 2f 64 62 6e 61 6d 65 3d 5c 51 24 64 62 5f 6e 61 6d 65 2f 2f | ...$dsn.=~.s/dbname=\Q$db_name// |
4800 | 3b 00 20 20 20 20 20 20 20 20 23 20 77 69 74 68 20 6d 79 73 71 6c 2c 20 79 6f 75 20 77 61 6e 74 | ;.........#.with.mysql,.you.want |
4820 | 20 74 6f 20 63 6f 6e 6e 65 63 74 20 73 61 6e 73 20 64 61 74 61 62 61 73 65 20 74 6f 20 66 75 6e | .to.connect.sans.database.to.fun |
4840 | 67 65 20 74 68 69 6e 67 73 00 20 20 20 20 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 20 27 | ge.things.....if.(.$db_type.eq.' |
4860 | 6d 79 73 71 6c 27 20 29 20 7b 00 20 20 20 20 6d 79 20 24 64 73 6e 20 3d 20 24 73 65 6c 66 2d 3e | mysql'.).{.....my.$dsn.=.$self-> |
4880 | 44 53 4e 3b 00 00 20 20 20 20 6d 79 20 24 64 62 5f 74 79 70 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 | DSN;......my.$db_type.=.RT->Conf |
48a0 | 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 54 79 70 65 27 29 3b 00 20 20 20 20 6d 79 20 | ig->Get('DatabaseType');.....my. |
48c0 | 24 64 62 5f 6e 61 6d 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 | $db_name.=.RT->Config->Get('Data |
48e0 | 62 61 73 65 4e 61 6d 65 27 29 3b 00 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 | baseName');......my.$self.=.shif |
4900 | 74 3b 00 73 75 62 20 53 79 73 74 65 6d 44 53 4e 20 7b 00 00 3d 63 75 74 00 00 74 6f 20 72 65 71 | t;.sub.SystemDSN.{..=cut..to.req |
4920 | 75 69 72 65 6d 65 6e 74 73 20 6f 66 20 61 20 64 61 74 61 62 61 73 65 20 73 79 73 74 65 6d 20 52 | uirements.of.a.database.system.R |
4940 | 54 27 73 20 75 73 69 6e 67 2e 00 47 65 74 73 20 52 54 27 73 20 44 53 4e 20 66 69 72 73 74 20 28 | T's.using..Gets.RT's.DSN.first.( |
4960 | 73 65 65 20 4c 3c 44 53 4e 3e 29 20 61 6e 64 20 74 68 65 6e 20 63 68 61 6e 67 65 20 69 74 20 61 | see.L<DSN>).and.then.change.it.a |
4980 | 63 63 6f 72 64 69 6e 67 00 00 61 6e 64 20 75 73 65 72 20 63 72 65 61 74 65 73 20 61 6e 64 20 64 | ccording..and.user.creates.and.d |
49a0 | 72 6f 70 73 2e 00 52 65 74 75 72 6e 73 20 61 20 44 53 4e 20 73 75 69 74 61 62 6c 65 20 66 6f 72 | rops..Returns.a.DSN.suitable.for |
49c0 | 20 64 61 74 61 62 61 73 65 20 63 72 65 61 74 65 73 20 61 6e 64 20 64 72 6f 70 73 00 00 3d 68 65 | .database.creates.and.drops..=he |
49e0 | 61 64 32 20 53 79 73 74 65 6d 44 53 4e 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e 20 24 68 61 6e | ad2.SystemDSN..}.....return.$han |
4a00 | 64 6c 65 2d 3e 44 53 4e 3b 00 20 20 20 20 24 68 61 6e 64 6c 65 2d 3e 42 75 69 6c 64 44 53 4e 3b | dle->DSN;.....$handle->BuildDSN; |
4a20 | 00 20 20 20 20 6d 79 20 24 68 61 6e 64 6c 65 20 3d 20 24 73 65 6c 66 2d 3e 6e 65 77 3b 00 00 20 | .....my.$handle.=.$self->new;... |
4a40 | 20 20 20 72 65 74 75 72 6e 20 24 73 65 6c 66 2d 3e 53 55 50 45 52 3a 3a 44 53 4e 20 69 66 20 72 | ...return.$self->SUPER::DSN.if.r |
4a60 | 65 66 20 24 73 65 6c 66 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 | ef.$self;.....my.$self.=.shift;. |
4a80 | 73 75 62 20 44 53 4e 20 7b 00 00 3d 63 75 74 00 00 74 65 6d 70 6f 72 61 72 79 20 68 61 6e 64 6c | sub.DSN.{..=cut..temporary.handl |
4aa0 | 65 20 6f 62 6a 65 63 74 2c 20 4c 3c 2f 42 75 69 6c 64 44 53 4e 20 62 75 69 6c 64 73 20 44 53 4e | e.object,.L</BuildDSN.builds.DSN |
4ac0 | 3e 20 61 6e 64 20 72 65 74 75 72 6e 73 20 69 74 2e 00 54 68 69 73 20 69 73 20 6d 65 74 68 6f 64 | >.and.returns.it..This.is.method |
4ae0 | 20 63 61 6e 20 62 65 20 63 61 6c 6c 65 64 20 61 73 20 63 6c 61 73 73 20 6d 65 74 68 6f 64 2c 20 | .can.be.called.as.class.method,. |
4b00 | 69 6e 20 74 68 69 73 20 63 61 73 65 20 63 72 65 61 74 65 73 00 00 62 75 69 6c 64 20 44 53 4e 20 | in.this.case.creates..build.DSN. |
4b20 | 66 69 72 73 74 2c 20 73 65 65 20 4c 3c 2f 42 75 69 6c 64 44 53 4e 3e 2e 00 52 65 74 75 72 6e 73 | first,.see.L</BuildDSN>..Returns |
4b40 | 20 74 68 65 20 44 53 4e 20 66 6f 72 20 74 68 69 73 20 68 61 6e 64 6c 65 2e 20 49 6e 20 6f 72 64 | .the.DSN.for.this.handle..In.ord |
4b60 | 65 72 20 74 6f 20 67 65 74 20 63 6f 72 72 65 63 74 20 76 61 6c 75 65 20 79 6f 75 20 6d 75 73 74 | er.to.get.correct.value.you.must |
4b80 | 00 00 3d 68 65 61 64 32 20 44 53 4e 00 00 7d 00 20 20 20 20 24 73 65 6c 66 2d 3e 53 55 50 45 52 | ..=head2.DSN..}.....$self->SUPER |
4ba0 | 3a 3a 42 75 69 6c 64 44 53 4e 28 20 25 61 72 67 73 20 29 3b 00 20 20 20 20 7d 00 20 20 20 20 20 | ::BuildDSN(.%args.);.....}...... |
4bc0 | 20 20 20 24 61 72 67 73 7b 27 53 49 44 27 7d 20 3d 20 64 65 6c 65 74 65 20 24 61 72 67 73 7b 27 | ...$args{'SID'}.=.delete.$args{' |
4be0 | 44 61 74 61 62 61 73 65 27 7d 3b 00 20 20 20 20 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 | Database'};.....if.(.$db_type.eq |
4c00 | 20 27 4f 72 61 63 6c 65 27 20 26 26 20 24 64 62 5f 68 6f 73 74 20 29 20 7b 00 20 20 20 20 29 3b | .'Oracle'.&&.$db_host.).{.....); |
4c20 | 00 20 20 20 20 20 20 20 20 52 65 71 75 69 72 65 53 53 4c 20 3d 3e 20 52 54 2d 3e 43 6f 6e 66 69 | .........RequireSSL.=>.RT->Confi |
4c40 | 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 52 65 71 75 69 72 65 53 53 4c 27 29 2c 00 20 20 | g->Get('DatabaseRequireSSL'),... |
4c60 | 20 20 20 20 20 20 44 72 69 76 65 72 20 20 20 20 20 3d 3e 20 24 64 62 5f 74 79 70 65 2c 00 20 20 | ......Driver.....=>.$db_type,... |
4c80 | 20 20 20 20 20 20 50 6f 72 74 20 20 20 20 20 20 20 3d 3e 20 24 64 62 5f 70 6f 72 74 2c 00 20 20 | ......Port.......=>.$db_port,... |
4ca0 | 20 20 20 20 20 20 44 61 74 61 62 61 73 65 20 20 20 3d 3e 20 24 64 62 5f 6e 61 6d 65 2c 00 20 20 | ......Database...=>.$db_name,... |
4cc0 | 20 20 20 20 20 20 48 6f 73 74 20 20 20 20 20 20 20 3d 3e 20 24 64 62 5f 68 6f 73 74 2c 00 20 20 | ......Host.......=>.$db_host,... |
4ce0 | 20 20 6d 79 20 25 61 72 67 73 20 3d 20 28 00 00 20 20 20 20 20 20 20 20 69 66 20 24 64 62 5f 74 | ..my.%args.=.(..........if.$db_t |
4d00 | 79 70 65 20 65 71 20 27 53 51 4c 69 74 65 27 20 26 26 20 21 46 69 6c 65 3a 3a 53 70 65 63 2d 3e | ype.eq.'SQLite'.&&.!File::Spec-> |
4d20 | 66 69 6c 65 5f 6e 61 6d 65 5f 69 73 5f 61 62 73 6f 6c 75 74 65 28 24 64 62 5f 6e 61 6d 65 29 3b | file_name_is_absolute($db_name); |
4d40 | 00 20 20 20 20 24 64 62 5f 6e 61 6d 65 20 3d 20 46 69 6c 65 3a 3a 53 70 65 63 2d 3e 63 61 74 66 | .....$db_name.=.File::Spec->catf |
4d60 | 69 6c 65 28 24 52 54 3a 3a 56 61 72 50 61 74 68 2c 20 24 64 62 5f 6e 61 6d 65 29 00 20 20 20 20 | ile($RT::VarPath,.$db_name)..... |
4d80 | 6d 79 20 24 64 62 5f 74 79 70 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 | my.$db_type.=.RT->Config->Get('D |
4da0 | 61 74 61 62 61 73 65 54 79 70 65 27 29 3b 00 20 20 20 20 6d 79 20 24 64 62 5f 6e 61 6d 65 20 3d | atabaseType');.....my.$db_name.= |
4dc0 | 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 4e 61 6d 65 27 29 | .RT->Config->Get('DatabaseName') |
4de0 | 3b 00 20 20 20 20 24 64 62 5f 68 6f 73 74 20 3d 20 75 6e 64 65 66 20 75 6e 6c 65 73 73 20 24 64 | ;.....$db_host.=.undef.unless.$d |
4e00 | 62 5f 68 6f 73 74 3b 00 20 20 20 20 6d 79 20 24 64 62 5f 68 6f 73 74 20 3d 20 52 54 2d 3e 43 6f | b_host;.....my.$db_host.=.RT->Co |
4e20 | 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 48 6f 73 74 27 29 3b 00 20 20 20 20 24 | nfig->Get('DatabaseHost');.....$ |
4e40 | 64 62 5f 70 6f 72 74 20 3d 20 75 6e 64 65 66 20 75 6e 6c 65 73 73 20 28 64 65 66 69 6e 65 64 20 | db_port.=.undef.unless.(defined. |
4e60 | 24 64 62 5f 70 6f 72 74 20 26 26 20 24 64 62 5f 70 6f 72 74 20 3d 7e 20 2f 5e 28 5c 64 2b 29 24 | $db_port.&&.$db_port.=~./^(\d+)$ |
4e80 | 2f 29 3b 00 20 20 20 20 6d 79 20 24 64 62 5f 70 6f 72 74 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 | /);.....my.$db_port.=.RT->Config |
4ea0 | 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 50 6f 72 74 27 29 3b 00 20 20 20 20 23 20 55 6e 6c | ->Get('DatabasePort');.....#.Unl |
4ec0 | 65 73 73 20 74 68 65 20 64 61 74 61 62 61 73 65 20 70 6f 72 74 20 69 73 20 61 20 70 6f 73 69 74 | ess.the.database.port.is.a.posit |
4ee0 | 69 76 65 20 69 6e 74 65 67 65 72 2c 20 77 65 20 72 65 61 6c 6c 79 20 64 6f 6e 27 74 20 77 61 6e | ive.integer,.we.really.don't.wan |
4f00 | 74 20 74 6f 20 70 61 73 73 20 69 74 2e 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 | t.to.pass.it......my.$self.=.shi |
4f20 | 66 74 3b 00 73 75 62 20 42 75 69 6c 64 44 53 4e 20 7b 00 00 00 3d 63 75 74 00 00 66 72 6f 6d 20 | ft;.sub.BuildDSN.{...=cut..from. |
4f40 | 74 68 65 20 63 6f 6e 66 69 67 2e 00 42 75 69 6c 64 20 74 68 65 20 44 53 4e 20 66 6f 72 20 74 68 | the.config..Build.the.DSN.for.th |
4f60 | 65 20 52 54 20 64 61 74 61 62 61 73 65 2e 20 44 6f 65 73 6e 27 74 20 74 61 6b 65 20 61 6e 79 20 | e.RT.database..Doesn't.take.any. |
4f80 | 70 61 72 61 6d 65 74 65 72 73 2c 20 64 72 61 77 73 20 61 6c 6c 20 74 68 61 74 00 00 3d 68 65 61 | parameters,.draws.all.that..=hea |
4fa0 | 64 32 20 42 75 69 6c 64 44 53 4e 00 00 7d 00 20 20 20 20 24 73 65 6c 66 2d 3e 64 62 68 2d 3e 7b | d2.BuildDSN..}.....$self->dbh->{ |
4fc0 | 27 4c 6f 6e 67 52 65 61 64 4c 65 6e 27 7d 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 | 'LongReadLen'}.=.RT->Config->Get |
4fe0 | 28 27 4d 61 78 41 74 74 61 63 68 6d 65 6e 74 53 69 7a 65 27 29 3b 00 00 00 00 20 20 20 20 7d 00 | ('MaxAttachmentSize');........}. |
5000 | 61 64 00 00 70 0d 00 00 cc 0d 00 00 00 10 00 00 10 00 00 00 00 00 00 00 d8 0f 00 00 c9 0f 00 00 | ad..p........................... |
5020 | c2 0f 00 00 c1 0f 00 00 a0 0f 00 00 72 0f 00 00 42 0f 00 00 03 0f 00 00 fd 0e 00 00 fc 0e 00 00 | ............r...B............... |
5040 | fb 0e 00 00 dd 0e 00 00 af 0e 00 00 7f 0e 00 00 16 0e 00 00 cc 0d 00 00 2e 0e 00 00 2d 0e 00 00 | ............................-... |
5060 | 2c 0e 00 00 e4 0d 00 00 e2 0d 00 00 e1 0d 00 00 d1 0d 00 00 d0 0d 00 00 81 0d 00 00 70 0d 00 00 | ,...........................p... |
5080 | 6f 0d 00 00 6a 0d 00 00 69 0d 00 00 68 0d 00 00 59 0d 00 00 43 0d 00 00 ec 0c 00 00 b9 0c 00 00 | o...j...i...h...Y...C........... |
50a0 | 70 0c 00 00 3d 0c 00 00 17 0c 00 00 e4 0b 00 00 b1 0b 00 00 76 0b 00 00 25 0b 00 00 24 0b 00 00 | p...=...............v...%...$... |
50c0 | 13 0b 00 00 f3 0a 00 00 d3 0a 00 00 b3 0a 00 00 93 0a 00 00 56 0a 00 00 4f 0a 00 00 21 0a 00 00 | ....................V...O...!... |
50e0 | f0 09 00 00 ea 09 00 00 c5 09 00 00 c3 09 00 00 c2 09 00 00 b7 09 00 00 b6 09 00 00 6e 09 00 00 | ............................n... |
5100 | 4b 09 00 00 4a 09 00 00 07 09 00 00 c6 08 00 00 c5 08 00 00 c0 08 00 00 bf 08 00 00 b5 08 00 00 | K...J........................... |
5120 | 9f 08 00 00 74 08 00 00 73 08 00 00 56 08 00 00 3f 08 00 00 26 08 00 00 24 08 00 00 23 08 00 00 | ....t...s...V...?...&...$...#... |
5140 | 12 08 00 00 11 08 00 00 db 07 00 00 bf 07 00 00 be 07 00 00 80 07 00 00 4f 07 00 00 4e 07 00 00 | ........................O...N... |
5160 | 49 07 00 00 48 07 00 00 38 07 00 00 22 07 00 00 21 07 00 00 ee 06 00 00 bb 06 00 00 ba 06 00 00 | I...H...8..."...!............... |
5180 | a0 06 00 00 7f 06 00 00 37 06 00 00 10 06 00 00 0a 06 00 00 e9 05 00 00 a6 05 00 00 6f 05 00 00 | ........7...................o... |
51a0 | 69 05 00 00 58 05 00 00 56 05 00 00 55 05 00 00 22 05 00 00 21 05 00 00 20 05 00 00 1f 05 00 00 | i...X...V...U..."...!........... |
51c0 | 1a 05 00 00 19 05 00 00 04 05 00 00 ee 04 00 00 c6 04 00 00 c5 04 00 00 95 04 00 00 83 04 00 00 | ................................ |
51e0 | 4a 04 00 00 1b 04 00 00 11 04 00 00 0b 04 00 00 0a 04 00 00 ed 03 00 00 c3 03 00 00 a0 03 00 00 | J............................... |
5200 | 80 03 00 00 1d 03 00 00 17 03 00 00 16 03 00 00 ef 02 00 00 cf 02 00 00 af 02 00 00 4f 02 00 00 | ............................O... |
5220 | 49 02 00 00 48 02 00 00 3a 02 00 00 38 02 00 00 00 00 00 00 00 00 00 00 7d 00 20 20 20 20 72 65 | I...H...:...8...........}.....re |
5240 | 74 75 72 6e 20 31 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 30 | turn.1;......}.........return.(0 |
5260 | 2c 20 27 6e 6f 20 6e 6f 62 6f 64 79 20 75 73 65 72 27 2c 20 22 43 6f 75 6c 64 6e 27 74 20 66 69 | ,.'no.nobody.user',."Couldn't.fi |
5280 | 6e 64 20 4e 6f 62 6f 64 79 20 75 73 65 72 20 69 6e 20 74 68 65 20 44 42 20 27 22 2e 20 24 73 65 | nd.Nobody.user.in.the.DB.'"..$se |
52a0 | 6c 66 2d 3e 44 53 4e 20 2e 22 27 22 29 3b 00 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 74 65 73 | lf->DSN.."'");.....unless.(.$tes |
52c0 | 74 5f 75 73 65 72 2d 3e 69 64 20 29 20 7b 00 20 20 20 20 24 74 65 73 74 5f 75 73 65 72 2d 3e 4c | t_user->id.).{.....$test_user->L |
52e0 | 6f 61 64 28 27 4e 6f 62 6f 64 79 27 29 3b 00 20 20 20 20 24 74 65 73 74 5f 75 73 65 72 20 3d 20 | oad('Nobody');.....$test_user.=. |
5300 | 52 54 3a 3a 43 75 72 72 65 6e 74 55 73 65 72 2d 3e 6e 65 77 3b 00 00 20 20 20 20 7d 00 20 20 20 | RT::CurrentUser->new;......}.... |
5320 | 20 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 27 6e 6f 20 73 79 73 74 65 6d 20 75 73 65 72 27 | .....return.(0,.'no.system.user' |
5340 | 2c 20 22 43 6f 75 6c 64 6e 27 74 20 66 69 6e 64 20 52 54 5f 53 79 73 74 65 6d 20 75 73 65 72 20 | ,."Couldn't.find.RT_System.user. |
5360 | 69 6e 20 74 68 65 20 44 42 20 27 22 2e 20 24 73 65 6c 66 2d 3e 44 53 4e 20 2e 22 27 22 29 3b 00 | in.the.DB.'"..$self->DSN.."'");. |
5380 | 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 74 65 73 74 5f 75 73 65 72 2d 3e 69 64 20 29 20 7b 00 | ....unless.(.$test_user->id.).{. |
53a0 | 20 20 20 20 24 74 65 73 74 5f 75 73 65 72 2d 3e 4c 6f 61 64 28 27 52 54 5f 53 79 73 74 65 6d 27 | ....$test_user->Load('RT_System' |
53c0 | 29 3b 00 20 20 20 20 6d 79 20 24 74 65 73 74 5f 75 73 65 72 20 3d 20 52 54 3a 3a 43 75 72 72 65 | );.....my.$test_user.=.RT::Curre |
53e0 | 6e 74 55 73 65 72 2d 3e 6e 65 77 3b 00 20 20 20 20 72 65 71 75 69 72 65 20 52 54 3a 3a 43 75 72 | ntUser->new;.....require.RT::Cur |
5400 | 72 65 6e 74 55 73 65 72 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 | rentUser;......}.........}...... |
5420 | 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 27 6e 6f 20 63 6f 6e 6e 65 63 74 69 6f 6e | .......return.(0,.'no.connection |
5440 | 27 2c 20 22 24 40 22 29 3b 00 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 65 76 61 6c 20 | ',."$@");.........unless.(.eval. |
5460 | 7b 20 52 54 3a 3a 43 6f 6e 6e 65 63 74 54 6f 44 61 74 61 62 61 73 65 28 29 3b 20 31 20 7d 20 29 | {.RT::ConnectToDatabase();.1.}.) |
5480 | 20 7b 00 20 20 20 20 20 20 20 20 6c 6f 63 61 6c 20 24 40 3b 00 20 20 20 20 75 6e 6c 65 73 73 20 | .{.........local.$@;.....unless. |
54a0 | 28 24 52 54 3a 3a 48 61 6e 64 6c 65 20 61 6e 64 20 24 52 54 3a 3a 48 61 6e 64 6c 65 2d 3e 64 62 | ($RT::Handle.and.$RT::Handle->db |
54c0 | 68 29 20 7b 00 00 20 20 20 20 24 73 65 6c 66 20 3d 20 6e 65 77 20 24 73 65 6c 66 20 75 6e 6c 65 | h).{......$self.=.new.$self.unle |
54e0 | 73 73 20 72 65 66 20 24 73 65 6c 66 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 | ss.ref.$self;.....my.$self.=.shi |
5500 | 66 74 3b 00 73 75 62 20 43 68 65 63 6b 49 6e 74 65 67 72 69 74 79 20 7b 00 00 3d 63 75 74 00 00 | ft;.sub.CheckIntegrity.{..=cut.. |
5520 | 00 00 3d 68 65 61 64 32 20 44 61 74 61 62 61 73 65 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 | ..=head2.Database.compatibility. |
5540 | 61 6e 64 20 69 6e 74 65 67 72 69 74 79 20 63 68 65 63 6b 73 00 00 7d 00 20 20 20 20 72 65 74 75 | and.integrity.checks..}.....retu |
5560 | 72 6e 20 24 64 73 6e 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 64 73 6e 20 3d 7e 20 73 | rn.$dsn;.....}.........$dsn.=~.s |
5580 | 2f 64 62 6e 61 6d 65 3d 5c 51 24 64 62 5f 6e 61 6d 65 2f 64 62 6e 61 6d 65 3d 74 65 6d 70 6c 61 | /dbname=\Q$db_name/dbname=templa |
55a0 | 74 65 31 2f 3b 00 20 20 20 20 20 20 20 20 23 20 77 69 74 68 20 70 6f 73 74 67 72 65 73 2c 20 79 | te1/;.........#.with.postgres,.y |
55c0 | 6f 75 20 77 61 6e 74 20 74 6f 20 63 6f 6e 6e 65 63 74 20 74 6f 20 74 65 6d 70 6c 61 74 65 31 20 | ou.want.to.connect.to.template1. |
55e0 | 64 61 74 61 62 61 73 65 00 20 20 20 20 65 6c 73 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 | database.....elsif.(.$db_type.eq |
5600 | 20 27 50 67 27 20 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 64 73 6e 20 3d 7e 20 | .'Pg'.).{.....}.........$dsn.=~. |
5620 | 73 2f 64 62 6e 61 6d 65 3d 5c 51 24 64 62 5f 6e 61 6d 65 2f 2f 3b 00 20 20 20 20 20 20 20 20 23 | s/dbname=\Q$db_name//;.........# |
5640 | 20 77 69 74 68 20 6d 79 73 71 6c 2c 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 63 6f 6e 6e 65 63 74 | .with.mysql,.you.want.to.connect |
5660 | 20 73 61 6e 73 20 64 61 74 61 62 61 73 65 20 74 6f 20 66 75 6e 67 65 20 74 68 69 6e 67 73 00 20 | .sans.database.to.funge.things.. |
5680 | 20 20 20 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 20 27 6d 79 73 71 6c 27 20 29 20 7b 00 | ...if.(.$db_type.eq.'mysql'.).{. |
56a0 | 20 20 20 20 6d 79 20 24 64 73 6e 20 3d 20 24 73 65 6c 66 2d 3e 44 53 4e 3b 00 00 20 20 20 20 6d | ....my.$dsn.=.$self->DSN;......m |
56c0 | 79 20 24 64 62 5f 74 79 70 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 | y.$db_type.=.RT->Config->Get('Da |
56e0 | 74 61 62 61 73 65 54 79 70 65 27 29 3b 00 20 20 20 20 6d 79 20 24 64 62 5f 6e 61 6d 65 20 3d 20 | tabaseType');.....my.$db_name.=. |
5700 | 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 4e 61 6d 65 27 29 3b | RT->Config->Get('DatabaseName'); |
5720 | 00 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 53 79 73 74 | ......my.$self.=.shift;.sub.Syst |
5740 | 65 6d 44 53 4e 20 7b 00 00 3d 63 75 74 00 00 74 6f 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 6f | emDSN.{..=cut..to.requirements.o |
5760 | 66 20 61 20 64 61 74 61 62 61 73 65 20 73 79 73 74 65 6d 20 52 54 27 73 20 75 73 69 6e 67 2e 00 | f.a.database.system.RT's.using.. |
5780 | 47 65 74 73 20 52 54 27 73 20 44 53 4e 20 66 69 72 73 74 20 28 73 65 65 20 4c 3c 44 53 4e 3e 29 | Gets.RT's.DSN.first.(see.L<DSN>) |
57a0 | 20 61 6e 64 20 74 68 65 6e 20 63 68 61 6e 67 65 20 69 74 20 61 63 63 6f 72 64 69 6e 67 00 00 61 | .and.then.change.it.according..a |
57c0 | 6e 64 20 75 73 65 72 20 63 72 65 61 74 65 73 20 61 6e 64 20 64 72 6f 70 73 2e 00 52 65 74 75 72 | nd.user.creates.and.drops..Retur |
57e0 | 6e 73 20 61 20 44 53 4e 20 73 75 69 74 61 62 6c 65 20 66 6f 72 20 64 61 74 61 62 61 73 65 20 63 | ns.a.DSN.suitable.for.database.c |
5800 | 72 65 61 74 65 73 20 61 6e 64 20 64 72 6f 70 73 00 00 3d 68 65 61 64 32 20 53 79 73 74 65 6d 44 | reates.and.drops..=head2.SystemD |
5820 | 53 4e 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e 20 24 68 61 6e 64 6c 65 2d 3e 44 53 4e 3b 00 20 | SN..}.....return.$handle->DSN;.. |
5840 | 20 20 20 24 68 61 6e 64 6c 65 2d 3e 42 75 69 6c 64 44 53 4e 3b 00 20 20 20 20 6d 79 20 24 68 61 | ...$handle->BuildDSN;.....my.$ha |
5860 | 6e 64 6c 65 20 3d 20 24 73 65 6c 66 2d 3e 6e 65 77 3b 00 00 20 20 20 20 72 65 74 75 72 6e 20 24 | ndle.=.$self->new;......return.$ |
5880 | 73 65 6c 66 2d 3e 53 55 50 45 52 3a 3a 44 53 4e 20 69 66 20 72 65 66 20 24 73 65 6c 66 3b 00 20 | self->SUPER::DSN.if.ref.$self;.. |
58a0 | 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 44 53 4e 20 7b 00 00 | ...my.$self.=.shift;.sub.DSN.{.. |
58c0 | 3d 63 75 74 00 00 74 65 6d 70 6f 72 61 72 79 20 68 61 6e 64 6c 65 20 6f 62 6a 65 63 74 2c 20 4c | =cut..temporary.handle.object,.L |
58e0 | 3c 2f 42 75 69 6c 64 44 53 4e 20 62 75 69 6c 64 73 20 44 53 4e 3e 20 61 6e 64 20 72 65 74 75 72 | </BuildDSN.builds.DSN>.and.retur |
5900 | 6e 73 20 69 74 2e 00 54 68 69 73 20 69 73 20 6d 65 74 68 6f 64 20 63 61 6e 20 62 65 20 63 61 6c | ns.it..This.is.method.can.be.cal |
5920 | 6c 65 64 20 61 73 20 63 6c 61 73 73 20 6d 65 74 68 6f 64 2c 20 69 6e 20 74 68 69 73 20 63 61 73 | led.as.class.method,.in.this.cas |
5940 | 65 20 63 72 65 61 74 65 73 00 00 62 75 69 6c 64 20 44 53 4e 20 66 69 72 73 74 2c 20 73 65 65 20 | e.creates..build.DSN.first,.see. |
5960 | 4c 3c 2f 42 75 69 6c 64 44 53 4e 3e 2e 00 52 65 74 75 72 6e 73 20 74 68 65 20 44 53 4e 20 66 6f | L</BuildDSN>..Returns.the.DSN.fo |
5980 | 72 20 74 68 69 73 20 68 61 6e 64 6c 65 2e 20 49 6e 20 6f 72 64 65 72 20 74 6f 20 67 65 74 20 63 | r.this.handle..In.order.to.get.c |
59a0 | 6f 72 72 65 63 74 20 76 61 6c 75 65 20 79 6f 75 20 6d 75 73 74 00 00 3d 68 65 61 64 32 20 44 53 | orrect.value.you.must..=head2.DS |
59c0 | 4e 00 00 7d 00 20 20 20 20 24 73 65 6c 66 2d 3e 53 55 50 45 52 3a 3a 42 75 69 6c 64 44 53 4e 28 | N..}.....$self->SUPER::BuildDSN( |
59e0 | 20 25 61 72 67 73 20 29 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 61 72 67 73 7b 27 53 | .%args.);.....}.........$args{'S |
5a00 | 49 44 27 7d 20 3d 20 64 65 6c 65 74 65 20 24 61 72 67 73 7b 27 44 61 74 61 62 61 73 65 27 7d 3b | ID'}.=.delete.$args{'Database'}; |
5a20 | 00 20 20 20 20 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 20 27 4f 72 61 63 6c 65 27 20 26 | .....if.(.$db_type.eq.'Oracle'.& |
5a40 | 26 20 24 64 62 5f 68 6f 73 74 20 29 20 7b 00 20 20 20 20 29 3b 00 20 20 20 20 20 20 20 20 52 65 | &.$db_host.).{.....);.........Re |
5a60 | 71 75 69 72 65 53 53 4c 20 3d 3e 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 | quireSSL.=>.RT->Config->Get('Dat |
5a80 | 61 62 61 73 65 52 65 71 75 69 72 65 53 53 4c 27 29 2c 00 20 20 20 20 20 20 20 20 44 72 69 76 65 | abaseRequireSSL'),.........Drive |
5aa0 | 72 20 20 20 20 20 3d 3e 20 24 64 62 5f 74 79 70 65 2c 00 20 20 20 20 20 20 20 20 50 6f 72 74 20 | r.....=>.$db_type,.........Port. |
5ac0 | 20 20 20 20 20 20 3d 3e 20 24 64 62 5f 70 6f 72 74 2c 00 20 20 20 20 20 20 20 20 44 61 74 61 62 | ......=>.$db_port,.........Datab |
5ae0 | 61 73 65 20 20 20 3d 3e 20 24 64 62 5f 6e 61 6d 65 2c 00 20 20 20 20 20 20 20 20 48 6f 73 74 20 | ase...=>.$db_name,.........Host. |
5b00 | 20 20 20 20 20 20 3d 3e 20 24 64 62 5f 68 6f 73 74 2c 00 20 20 20 20 6d 79 20 25 61 72 67 73 20 | ......=>.$db_host,.....my.%args. |
5b20 | 3d 20 28 00 00 20 20 20 20 20 20 20 20 69 66 20 24 64 62 5f 74 79 70 65 20 65 71 20 27 53 51 4c | =.(..........if.$db_type.eq.'SQL |
5b40 | 69 74 65 27 20 26 26 20 21 46 69 6c 65 3a 3a 53 70 65 63 2d 3e 66 69 6c 65 5f 6e 61 6d 65 5f 69 | ite'.&&.!File::Spec->file_name_i |
5b60 | 73 5f 61 62 73 6f 6c 75 74 65 28 24 64 62 5f 6e 61 6d 65 29 3b 00 20 20 20 20 24 64 62 5f 6e 61 | s_absolute($db_name);.....$db_na |
5b80 | 6d 65 20 3d 20 46 69 6c 65 3a 3a 53 70 65 63 2d 3e 63 61 74 66 69 6c 65 28 24 52 54 3a 3a 56 61 | me.=.File::Spec->catfile($RT::Va |
5ba0 | 72 50 61 74 68 2c 20 24 64 62 5f 6e 61 6d 65 29 00 20 20 20 20 6d 79 20 24 64 62 5f 74 79 70 65 | rPath,.$db_name).....my.$db_type |
5bc0 | 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 54 79 70 65 | .=.RT->Config->Get('DatabaseType |
5be0 | 27 29 3b 00 20 20 20 20 6d 79 20 24 64 62 5f 6e 61 6d 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 | ');.....my.$db_name.=.RT->Config |
5c00 | 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 4e 61 6d 65 27 29 3b 00 20 20 20 20 24 64 62 5f 68 | ->Get('DatabaseName');.....$db_h |
5c20 | 6f 73 74 20 3d 20 75 6e 64 65 66 20 75 6e 6c 65 73 73 20 24 64 62 5f 68 6f 73 74 3b 00 20 20 20 | ost.=.undef.unless.$db_host;.... |
5c40 | 20 6d 79 20 24 64 62 5f 68 6f 73 74 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 | .my.$db_host.=.RT->Config->Get(' |
5c60 | 44 61 74 61 62 61 73 65 48 6f 73 74 27 29 3b 00 20 20 20 20 24 64 62 5f 70 6f 72 74 20 3d 20 75 | DatabaseHost');.....$db_port.=.u |
5c80 | 6e 64 65 66 20 75 6e 6c 65 73 73 20 28 64 65 66 69 6e 65 64 20 24 64 62 5f 70 6f 72 74 20 26 26 | ndef.unless.(defined.$db_port.&& |
5ca0 | 20 24 64 62 5f 70 6f 72 74 20 3d 7e 20 2f 5e 28 5c 64 2b 29 24 2f 29 3b 00 20 20 20 20 6d 79 20 | .$db_port.=~./^(\d+)$/);.....my. |
5cc0 | 24 64 62 5f 70 6f 72 74 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 | $db_port.=.RT->Config->Get('Data |
5ce0 | 62 61 73 65 50 6f 72 74 27 29 3b 00 20 20 20 20 23 20 55 6e 6c 65 73 73 20 74 68 65 20 64 61 74 | basePort');.....#.Unless.the.dat |
5d00 | 61 62 61 73 65 20 70 6f 72 74 20 69 73 20 61 20 70 6f 73 69 74 69 76 65 20 69 6e 74 65 67 65 72 | abase.port.is.a.positive.integer |
5d20 | 2c 20 77 65 20 72 65 61 6c 6c 79 20 64 6f 6e 27 74 20 77 61 6e 74 20 74 6f 20 70 61 73 73 20 69 | ,.we.really.don't.want.to.pass.i |
5d40 | 74 2e 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 42 75 69 | t......my.$self.=.shift;.sub.Bui |
5d60 | 6c 64 44 53 4e 20 7b 00 00 00 3d 63 75 74 00 00 66 72 6f 6d 20 74 68 65 20 63 6f 6e 66 69 67 2e | ldDSN.{...=cut..from.the.config. |
5d80 | 00 42 75 69 6c 64 20 74 68 65 20 44 53 4e 20 66 6f 72 20 74 68 65 20 52 54 20 64 61 74 61 62 61 | .Build.the.DSN.for.the.RT.databa |
5da0 | 73 65 2e 20 44 6f 65 73 6e 27 74 20 74 61 6b 65 20 61 6e 79 20 70 61 72 61 6d 65 74 65 72 73 2c | se..Doesn't.take.any.parameters, |
5dc0 | 20 64 72 61 77 73 20 61 6c 6c 20 74 20 20 20 20 20 20 20 20 24 73 65 6c 66 2d 3e 64 62 68 2d 3e | .draws.all.t........$self->dbh-> |
5de0 | 64 6f 28 22 53 45 54 20 62 79 74 65 61 5f 6f 75 74 70 75 74 20 3d 20 27 65 73 63 61 70 65 27 22 | do("SET.bytea_output.=.'escape'" |
5e00 | 29 20 69 66 20 24 76 65 72 73 69 6f 6e 20 3e 3d 20 39 2e 30 3b 00 20 20 20 20 20 20 20 20 24 73 | ).if.$version.>=.9.0;.........$s |
5e20 | 65 6c 66 2d 3e 64 62 68 2d 3e 7b 70 67 5f 73 65 72 76 65 72 5f 70 72 65 70 61 72 65 7d 20 3d 20 | elf->dbh->{pg_server_prepare}.=. |
5e40 | 30 20 69 66 20 24 76 65 72 73 69 6f 6e 20 3e 20 39 2e 31 3b 20 23 61 6e 64 20 77 65 27 72 65 20 | 0.if.$version.>.9.1;.#and.we're. |
5e60 | 75 73 69 6e 67 20 61 20 64 65 62 2d 37 20 76 65 72 73 69 6f 6e 20 44 42 44 3a 3a 50 67 3f 00 20 | using.a.deb-7.version.DBD::Pg?.. |
5e80 | 20 20 20 20 20 20 20 28 24 76 65 72 73 69 6f 6e 29 20 3d 20 24 76 65 72 73 69 6f 6e 20 3d 7e 20 | .......($version).=.$version.=~. |
5ea0 | 2f 5e 28 5c 64 2b 5c 2e 5c 64 2b 29 2f 3b 00 20 20 20 20 20 20 20 20 6d 79 20 24 76 65 72 73 69 | /^(\d+\.\d+)/;.........my.$versi |
5ec0 | 6f 6e 20 3d 20 24 73 65 6c 66 2d 3e 44 61 74 61 62 61 73 65 56 65 72 73 69 6f 6e 3b 00 20 20 20 | on.=.$self->DatabaseVersion;.... |
5ee0 | 20 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 20 27 50 67 27 20 29 20 7b 00 00 00 20 20 20 | .if.(.$db_type.eq.'Pg'.).{...... |
5f00 | 20 7d 00 20 20 20 20 20 20 20 20 24 73 65 6c 66 2d 3e 64 62 68 2d 3e 64 6f 28 22 53 45 54 20 4e | .}.........$self->dbh->do("SET.N |
5f20 | 41 4d 45 53 20 27 75 74 66 38 27 22 29 20 69 66 20 24 76 65 72 73 69 6f 6e 20 3e 3d 20 34 2e 31 | AMES.'utf8'").if.$version.>=.4.1 |
5f40 | 3b 00 20 20 20 20 20 20 20 20 28 24 76 65 72 73 69 6f 6e 29 20 3d 20 24 76 65 72 73 69 6f 6e 20 | ;.........($version).=.$version. |
5f60 | 3d 7e 20 2f 5e 28 5c 64 2b 5c 2e 5c 64 2b 29 2f 3b 00 20 20 20 20 20 20 20 20 6d 79 20 24 76 65 | =~./^(\d+\.\d+)/;.........my.$ve |
5f80 | 72 73 69 6f 6e 20 3d 20 24 73 65 6c 66 2d 3e 44 61 74 61 62 61 73 65 56 65 72 73 69 6f 6e 3b 00 | rsion.=.$self->DatabaseVersion;. |
5fa0 | 20 20 20 20 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 20 27 6d 79 73 71 6c 27 20 29 20 7b | ....if.(.$db_type.eq.'mysql'.).{ |
5fc0 | 00 00 20 20 20 20 29 3b 00 20 20 20 20 20 20 20 20 25 61 72 67 73 2c 00 20 20 20 20 20 20 20 20 | ......);.........%args,......... |
5fe0 | 44 69 73 63 6f 6e 6e 65 63 74 48 61 6e 64 6c 65 4f 6e 44 65 73 74 72 6f 79 20 3d 3e 20 31 2c 00 | DisconnectHandleOnDestroy.=>.1,. |
6000 | 61 64 00 00 11 00 00 00 9d 01 00 00 00 10 00 00 5c 00 00 00 00 00 00 00 ff 0f 00 00 e6 0f 00 00 | ad..............\............... |
6020 | d0 0f 00 00 bb 0f 00 00 9a 0f 00 00 99 0f 00 00 66 0f 00 00 45 0f 00 00 19 0f 00 00 c6 0e 00 00 | ................f...E........... |
6040 | 87 0e 00 00 6a 0e 00 00 69 0e 00 00 39 0e 00 00 d8 0d 00 00 b9 0d 00 00 b8 0d 00 00 8f 0d 00 00 | ....j...i...9................... |
6060 | 5b 0d 00 00 f4 0c 00 00 d3 0c 00 00 79 0c 00 00 21 0c 00 00 cd 0b 00 00 a1 0b 00 00 4d 0b 00 00 | [...........y...!...........M... |
6080 | d2 0a 00 00 c8 0a 00 00 c7 0a 00 00 a5 0a 00 00 4a 0a 00 00 00 0a 00 00 9b 09 00 00 8d 09 00 00 | ................J............... |
60a0 | 8c 09 00 00 30 09 00 00 ee 08 00 00 8c 08 00 00 42 08 00 00 34 08 00 00 2a 08 00 00 29 08 00 00 | ....0...........B...4...*...)... |
60c0 | c8 07 00 00 7c 07 00 00 36 07 00 00 77 06 00 00 6d 06 00 00 67 06 00 00 58 06 00 00 56 06 00 00 | ....|...6...w...m...g...X...V... |
60e0 | 55 06 00 00 41 06 00 00 2b 06 00 00 2a 06 00 00 0a 06 00 00 e6 05 00 00 c2 05 00 00 73 05 00 00 | U...A...+...*...............s... |
6100 | 4e 05 00 00 df 04 00 00 d4 04 00 00 d3 04 00 00 a8 04 00 00 9a 04 00 00 98 04 00 00 97 04 00 00 | N............................... |
6120 | 7b 04 00 00 7a 04 00 00 5f 04 00 00 5e 04 00 00 1d 04 00 00 1c 04 00 00 da 03 00 00 96 03 00 00 | {...z..._...^................... |
6140 | 7c 03 00 00 7b 03 00 00 4a 03 00 00 49 03 00 00 44 03 00 00 43 03 00 00 2e 03 00 00 18 03 00 00 | |...{...J...I...D...C........... |
6160 | da 02 00 00 a7 02 00 00 74 02 00 00 73 02 00 00 63 02 00 00 41 02 00 00 ff 01 00 00 f9 01 00 00 | ........t...s...c...A........... |
6180 | d4 01 00 00 9d 01 00 00 9c 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 | ................................ |
61a0 | 20 20 20 20 20 6d 79 20 24 64 62 5f 75 73 65 72 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 | .....my.$db_user.=.RT->Config->G |
61c0 | 65 74 28 27 44 61 74 61 62 61 73 65 55 73 65 72 27 29 3b 00 20 20 20 20 65 6c 73 69 66 20 28 20 | et('DatabaseUser');.....elsif.(. |
61e0 | 24 64 62 5f 74 79 70 65 20 65 71 20 27 4f 72 61 63 6c 65 27 20 29 20 7b 00 20 20 20 20 7d 00 20 | $db_type.eq.'Oracle'.).{.....}.. |
6200 | 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 31 2c 20 27 53 6b 69 70 70 65 64 20 61 73 20 53 51 | .......return.(1,.'Skipped.as.SQ |
6220 | 4c 69 74 65 20 64 6f 65 73 6e 5c 27 74 20 6e 65 65 64 20 61 6e 79 20 61 63 74 69 6f 6e 27 29 3b | Lite.doesn\'t.need.any.action'); |
6240 | 00 20 20 20 20 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 20 27 53 51 4c 69 74 65 27 20 29 | .....if.(.$db_type.eq.'SQLite'.) |
6260 | 20 7b 00 20 20 20 20 6d 79 20 24 73 74 61 74 75 73 3b 00 00 20 20 20 20 6d 79 20 24 64 62 5f 6e | .{.....my.$status;......my.$db_n |
6280 | 61 6d 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 4e | ame.=.RT->Config->Get('DatabaseN |
62a0 | 61 6d 65 27 29 3b 00 20 20 20 20 6d 79 20 24 64 62 5f 74 79 70 65 20 3d 20 52 54 2d 3e 43 6f 6e | ame');.....my.$db_type.=.RT->Con |
62c0 | 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 54 79 70 65 27 29 3b 00 20 20 20 20 6d 79 | fig->Get('DatabaseType');.....my |
62e0 | 20 24 64 62 68 20 20 3d 20 73 68 69 66 74 20 6f 72 20 72 65 74 75 72 6e 20 28 30 2c 20 22 4e 6f | .$dbh..=.shift.or.return.(0,."No |
6300 | 20 44 42 49 20 68 61 6e 64 6c 65 20 70 72 6f 76 69 64 65 64 22 29 3b 00 20 20 20 20 6d 79 20 24 | .DBI.handle.provided");.....my.$ |
6320 | 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 43 72 65 61 74 65 44 61 74 61 62 61 73 65 | self.=.shift;.sub.CreateDatabase |
6340 | 20 7b 00 00 3d 63 75 74 00 00 46 65 74 63 68 65 73 20 74 79 70 65 20 61 6e 64 20 6e 61 6d 65 20 | .{..=cut..Fetches.type.and.name. |
6360 | 6f 66 20 74 68 65 20 44 42 20 66 72 6f 6d 20 74 68 65 20 63 6f 6e 66 69 67 2e 00 00 6d 65 74 68 | of.the.DB.from.the.config...meth |
6380 | 6f 64 20 64 75 72 69 6e 67 20 63 6f 6e 6e 65 63 74 69 6f 6e 2e 00 61 6c 6c 6f 77 20 79 6f 75 20 | od.during.connection..allow.you. |
63a0 | 74 6f 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 64 61 74 61 62 61 73 65 2c 20 73 6f 20 79 6f 75 | to.create.a.new.database,.so.you |
63c0 | 20 68 61 76 65 20 74 6f 20 75 73 65 20 4c 3c 53 79 73 74 65 6d 44 53 4e 3e 00 54 61 6b 65 73 20 | .have.to.use.L<SystemDSN>.Takes. |
63e0 | 44 42 49 20 68 61 6e 64 6c 65 2e 20 4d 61 6e 79 20 64 61 74 61 62 61 73 65 20 73 79 73 74 65 6d | DBI.handle..Many.database.system |
6400 | 73 20 72 65 71 75 69 72 65 20 73 70 65 63 69 61 6c 20 68 61 6e 64 6c 65 20 74 6f 00 00 43 72 65 | s.require.special.handle.to..Cre |
6420 | 61 74 65 73 20 61 20 6e 65 77 20 64 61 74 61 62 61 73 65 2e 20 54 68 69 73 20 6d 65 74 68 6f 64 | ates.a.new.database..This.method |
6440 | 20 63 61 6e 20 62 65 20 75 73 65 64 20 61 73 20 63 6c 61 73 73 20 6d 65 74 68 6f 64 2e 00 00 3d | .can.be.used.as.class.method...= |
6460 | 68 65 61 64 33 20 43 72 65 61 74 65 44 61 74 61 62 61 73 65 20 24 44 42 48 00 00 3d 68 65 61 64 | head3.CreateDatabase.$DBH..=head |
6480 | 32 20 44 61 74 61 62 61 73 65 20 6d 61 69 6e 74 61 6e 61 6e 63 65 00 00 7d 00 20 20 20 20 72 65 | 2.Database.maintanance..}.....re |
64a0 | 74 75 72 6e 20 31 3b 00 20 20 20 20 72 65 74 75 72 6e 20 30 20 75 6e 6c 65 73 73 20 6c 63 28 24 | turn.1;.....return.0.unless.lc($ |
64c0 | 68 61 73 7c 7c 27 27 29 20 65 71 20 22 79 65 73 22 3b 00 00 20 20 20 20 29 29 5b 30 5d 3b 00 20 | has||'').eq."yes";......))[0];.. |
64e0 | 20 20 20 20 20 20 20 22 73 65 6c 65 63 74 20 27 79 65 73 27 20 66 72 6f 6d 20 49 4e 46 4f 52 4d | ......."select.'yes'.from.INFORM |
6500 | 41 54 49 4f 4e 5f 53 43 48 45 4d 41 2e 50 4c 55 47 49 4e 53 20 77 68 65 72 65 20 50 4c 55 47 49 | ATION_SCHEMA.PLUGINS.where.PLUGI |
6520 | 4e 5f 4e 41 4d 45 20 3d 20 27 73 70 68 69 6e 78 27 20 41 4e 44 20 50 4c 55 47 49 4e 5f 53 54 41 | N_NAME.=.'sphinx'.AND.PLUGIN_STA |
6540 | 54 55 53 3d 27 61 63 74 69 76 65 27 22 00 20 20 20 20 24 68 61 73 20 7c 7c 3d 20 28 24 64 62 68 | TUS='active'".....$has.||=.($dbh |
6560 | 2d 3e 73 65 6c 65 63 74 72 6f 77 5f 61 72 72 61 79 28 00 20 20 20 20 6d 79 20 24 68 61 73 20 3d | ->selectrow_array(.....my.$has.= |
6580 | 20 28 24 64 62 68 2d 3e 73 65 6c 65 63 74 72 6f 77 5f 61 72 72 61 79 28 22 73 68 6f 77 20 76 61 | .($dbh->selectrow_array("show.va |
65a0 | 72 69 61 62 6c 65 73 20 6c 69 6b 65 20 27 68 61 76 65 5f 73 70 68 69 6e 78 27 22 29 29 5b 31 5d | riables.like.'have_sphinx'"))[1] |
65c0 | 3b 00 20 20 20 20 6c 6f 63 61 6c 20 24 64 62 68 2d 3e 7b 27 50 72 69 6e 74 45 72 72 6f 72 27 7d | ;.....local.$dbh->{'PrintError'} |
65e0 | 20 3d 20 30 3b 00 20 20 20 20 6c 6f 63 61 6c 20 24 64 62 68 2d 3e 7b 27 52 61 69 73 65 45 72 72 | .=.0;.....local.$dbh->{'RaiseErr |
6600 | 6f 72 27 7d 20 3d 20 30 3b 00 20 20 20 20 6d 79 20 24 64 62 68 20 3d 20 24 52 54 3a 3a 48 61 6e | or'}.=.0;.....my.$dbh.=.$RT::Han |
6620 | 64 6c 65 2d 3e 64 62 68 3b 00 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b | dle->dbh;......my.$self.=.shift; |
6640 | 00 73 75 62 20 43 68 65 63 6b 53 70 68 69 6e 78 53 45 20 7b 00 00 7d 00 20 20 20 20 72 65 74 75 | .sub.CheckSphinxSE.{..}.....retu |
6660 | 72 6e 20 28 31 29 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 | rn.(1).....}.........}.......... |
6680 | 20 20 20 77 61 72 6e 20 22 6d 61 78 5f 61 6c 6c 6f 77 65 64 5f 70 61 63 6b 65 74 20 69 73 20 73 | ...warn."max_allowed_packet.is.s |
66a0 | 65 74 20 74 6f 20 24 6d 61 78 5f 70 61 63 6b 65 74 2c 20 77 68 69 63 68 20 6c 69 6d 69 74 73 20 | et.to.$max_packet,.which.limits. |
66c0 | 74 68 65 20 6d 61 78 69 6d 75 6d 20 61 74 74 61 63 68 6d 65 6e 74 20 6f 72 20 65 6d 61 69 6c 20 | the.maximum.attachment.or.email. |
66e0 | 73 69 7a 65 20 74 68 61 74 20 52 54 20 63 61 6e 20 70 72 6f 63 65 73 73 2e 20 20 43 6f 6e 73 69 | size.that.RT.can.process...Consi |
6700 | 64 65 72 20 61 64 6a 75 73 74 69 6e 67 20 4d 79 53 51 4c 27 73 20 6d 61 78 5f 61 6c 6c 6f 77 65 | der.adjusting.MySQL's.max_allowe |
6720 | 64 5f 70 61 63 6b 65 74 20 73 65 74 74 69 6e 67 2e 5c 6e 22 3b 00 20 20 20 20 20 20 20 20 20 20 | d_packet.setting.\n";........... |
6740 | 20 20 6d 79 20 24 6d 61 78 5f 70 61 63 6b 65 74 20 3d 20 73 70 72 69 6e 74 66 28 22 25 2e 31 66 | ..my.$max_packet.=.sprintf("%.1f |
6760 | 4d 22 2c 20 24 6d 61 78 5f 70 61 63 6b 65 74 2f 31 30 32 34 2f 31 30 32 34 29 3b 00 20 20 20 20 | M",.$max_packet/1024/1024);..... |
6780 | 20 20 20 20 69 66 20 28 24 73 74 61 74 65 20 3d 7e 20 2f 5e 28 63 72 65 61 74 65 7c 70 6f 73 74 | ....if.($state.=~./^(create|post |
67a0 | 29 24 2f 20 61 6e 64 20 24 6d 61 78 5f 70 61 63 6b 65 74 20 3c 3d 20 28 31 30 32 34 20 2a 20 31 | )$/.and.$max_packet.<=.(1024.*.1 |
67c0 | 30 32 34 29 29 20 7b 00 20 20 20 20 20 20 20 20 6d 79 20 24 6d 61 78 5f 70 61 63 6b 65 74 20 3d | 024)).{.........my.$max_packet.= |
67e0 | 20 28 24 64 62 68 2d 3e 73 65 6c 65 63 74 72 6f 77 5f 61 72 72 61 79 28 22 73 68 6f 77 20 76 61 | .($dbh->selectrow_array("show.va |
6800 | 72 69 61 62 6c 65 73 20 6c 69 6b 65 20 27 6d 61 78 5f 61 6c 6c 6f 77 65 64 5f 70 61 63 6b 65 74 | riables.like.'max_allowed_packet |
6820 | 27 22 29 29 5b 31 5d 3b 00 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 | '"))[1];..........}............. |
6840 | 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 22 46 6f 6c 6c 6f 77 20 69 | }......................"Follow.i |
6860 | 6e 73 74 72 75 63 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 55 50 47 52 41 44 49 4e 47 2e 6d 79 73 | nstructions.in.the.UPGRADING.mys |
6880 | 71 6c 20 66 69 6c 65 2e 22 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 | ql.file.");.................retu |
68a0 | 72 6e 20 28 30 2c 20 22 52 54 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 33 2e 38 20 68 61 73 | rn.(0,."RT.since.version.3.8.has |
68c0 | 20 6e 65 77 20 73 63 68 65 6d 61 20 66 6f 72 20 4d 79 53 51 4c 20 76 65 72 73 69 6f 6e 73 20 61 | .new.schema.for.MySQL.versions.a |
68e0 | 66 74 65 72 20 34 2e 31 2e 30 5c 6e 22 00 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 | fter.4.1.0\n".............unless |
6900 | 20 28 20 24 63 72 65 61 74 65 5f 74 61 62 6c 65 20 3d 7e 20 2f 5c 62 43 6f 6e 74 65 6e 74 5c 62 | .(.$create_table.=~./\bContent\b |
6920 | 5b 5e 2c 5d 2a 42 4c 4f 42 2f 69 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 24 63 72 65 | [^,]*BLOB/i.).{.............$cre |
6940 | 61 74 65 5f 74 61 62 6c 65 20 3d 20 24 64 62 68 2d 3e 73 65 6c 65 63 74 72 6f 77 5f 61 72 72 61 | ate_table.=.$dbh->selectrow_arra |
6960 | 79 72 65 66 28 22 53 48 4f 57 20 43 52 45 41 54 45 20 54 41 42 4c 45 20 41 74 74 61 63 68 6d 65 | yref("SHOW.CREATE.TABLE.Attachme |
6980 | 6e 74 73 22 29 2d 3e 5b 31 5d 3b 00 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 | nts")->[1];..............}...... |
69a0 | 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 22 52 54 20 72 65 71 75 69 72 | ...........return.(0,."RT.requir |
69c0 | 65 73 20 74 68 61 74 20 61 6c 6c 20 69 74 73 20 74 61 62 6c 65 73 20 62 65 20 6f 66 20 49 6e 6e | es.that.all.its.tables.be.of.Inn |
69e0 | 6f 44 42 20 74 79 70 65 2e 20 55 70 67 72 61 64 65 20 52 54 20 74 61 62 6c 65 73 2e 22 29 3b 00 | oDB.type..Upgrade.RT.tables.");. |
6a00 | 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 63 72 65 61 74 65 5f 74 61 62 | ............unless.(.$create_tab |
6a20 | 6c 65 20 3d 7e 20 2f 28 3f 3a 45 4e 47 49 4e 45 7c 54 59 50 45 29 5c 73 2a 3d 5c 73 2a 49 6e 6e | le.=~./(?:ENGINE|TYPE)\s*=\s*Inn |
6a40 | 6f 44 42 2f 69 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 63 72 65 61 74 65 | oDB/i.).{.............my.$create |
6a60 | 5f 74 61 62 6c 65 20 3d 20 24 64 62 68 2d 3e 73 65 6c 65 63 74 72 6f 77 5f 61 72 72 61 79 72 65 | _table.=.$dbh->selectrow_arrayre |
6a80 | 66 28 22 53 48 4f 57 20 43 52 45 41 54 45 20 54 41 42 4c 45 20 54 69 63 6b 65 74 73 22 29 2d 3e | f("SHOW.CREATE.TABLE.Tickets")-> |
6aa0 | 5b 31 5d 3b 00 20 20 20 20 20 20 20 20 69 66 20 28 20 24 73 74 61 74 65 20 65 71 20 27 70 6f 73 | [1];.........if.(.$state.eq.'pos |
6ac0 | 74 27 20 29 20 7b 00 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t'.).{..........}............... |
6ae0 | 20 20 22 52 65 6d 6f 76 65 20 74 68 65 20 27 73 6b 69 70 2d 69 6e 6e 6f 64 62 27 20 6f 72 20 27 | .."Remove.the.'skip-innodb'.or.' |
6b00 | 69 6e 6e 6f 64 62 20 3d 20 4f 46 46 27 20 6c 69 6e 65 20 66 72 6f 6d 20 79 6f 75 72 20 6d 79 2e | innodb.=.OFF'.line.from.your.my. |
6b20 | 63 6e 66 20 66 69 6c 65 2c 20 72 65 73 74 61 72 74 20 4d 79 53 51 4c 2c 20 61 6e 64 20 74 72 79 | cnf.file,.restart.MySQL,.and.try |
6b40 | 20 61 67 61 69 6e 2e 5c 6e 22 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 | .again.\n");.............return. |
6b60 | 28 30 2c 20 22 52 54 20 72 65 71 75 69 72 65 73 20 74 68 61 74 20 4d 79 53 51 4c 20 49 6e 6e 6f | (0,."RT.requires.that.MySQL.Inno |
6b80 | 44 42 20 74 61 62 6c 65 20 73 75 70 70 6f 72 74 20 62 65 20 65 6e 61 62 6c 65 64 2e 5c 6e 22 2e | DB.table.support.be.enabled.\n". |
6ba0 | 00 20 20 20 20 20 20 20 20 7d 20 65 6c 73 69 66 20 28 20 24 69 6e 6e 6f 64 62 20 65 71 20 22 64 | .........}.elsif.(.$innodb.eq."d |
6bc0 | 69 73 61 62 6c 65 64 22 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 6e | isabled".).{................."an |
6be0 | 64 20 63 68 65 63 6b 20 74 68 61 74 20 74 68 65 72 65 20 61 72 65 20 6e 6f 20 27 73 6b 69 70 2d | d.check.that.there.are.no.'skip- |
6c00 | 69 6e 6e 6f 64 62 27 20 6c 69 6e 65 73 20 69 6e 20 79 6f 75 72 20 6d 79 2e 63 6e 66 2e 22 29 3b | innodb'.lines.in.your.my.cnf."); |
6c20 | 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 53 65 65 20 3c 68 74 74 70 3a 2f 2f 64 65 | ................."See.<http://de |
6c40 | 76 2e 6d 79 73 71 6c 2e 63 6f 6d 2f 64 6f 63 2f 6d 79 73 71 6c 2f 65 6e 2f 69 6e 6e 6f 64 62 2d | v.mysql.com/doc/mysql/en/innodb- |
6c60 | 73 74 6f 72 61 67 65 2d 65 6e 67 69 6e 65 2e 68 74 6d 6c 3e 5c 6e 22 2e 00 20 20 20 20 20 20 20 | storage-engine.html>\n"......... |
6c80 | 20 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 22 52 54 20 72 65 71 75 69 72 65 73 20 74 68 61 | .....return.(0,."RT.requires.tha |
6ca0 | 74 20 4d 79 53 51 4c 20 62 65 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 49 6e 6e 6f 44 42 20 | t.MySQL.be.compiled.with.InnoDB. |
6cc0 | 74 61 62 6c 65 20 73 75 70 70 6f 72 74 2e 5c 6e 22 2e 00 20 20 20 20 20 20 20 20 69 66 20 28 20 | table.support.\n"..........if.(. |
6ce0 | 24 69 6e 6e 6f 64 62 20 65 71 20 22 6e 6f 22 20 29 20 7b 00 20 20 20 20 20 20 20 20 6d 79 20 24 | $innodb.eq."no".).{.........my.$ |
6d00 | 69 6e 6e 6f 64 62 20 3d 20 6c 63 28 24 64 62 68 2d 3e 73 65 6c 65 63 74 61 6c 6c 5f 68 61 73 68 | innodb.=.lc($dbh->selectall_hash |
6d20 | 72 65 66 28 22 53 48 4f 57 20 45 4e 47 49 4e 45 53 22 2c 20 22 65 6e 67 69 6e 65 22 29 2d 3e 7b | ref("SHOW.ENGINES",."engine")->{ |
6d40 | 49 6e 6e 6f 44 42 7d 7b 73 75 70 70 6f 72 74 7d 20 7c 7c 20 22 6e 6f 22 29 3b 00 20 20 20 20 20 | InnoDB}{support}.||."no");...... |
6d60 | 20 20 20 6c 6f 63 61 6c 20 24 64 62 68 2d 3e 7b 46 65 74 63 68 48 61 73 68 4b 65 79 4e 61 6d 65 | ...local.$dbh->{FetchHashKeyName |
6d80 | 7d 20 3d 20 27 4e 41 4d 45 5f 6c 63 27 3b 00 20 20 20 20 20 20 20 20 23 20 4d 79 53 51 4c 20 6d | }.=.'NAME_lc';.........#.MySQL.m |
6da0 | 75 73 74 20 68 61 76 65 20 49 6e 6e 6f 44 42 20 73 75 70 70 6f 72 74 00 00 20 20 20 20 20 20 20 | ust.have.InnoDB.support......... |
6dc0 | 20 20 20 20 20 69 66 20 24 76 65 72 73 69 6f 6e 20 3c 20 34 2e 31 3b 00 20 20 20 20 20 20 20 20 | .....if.$version.<.4.1;......... |
6de0 | 72 65 74 75 72 6e 20 28 30 2c 20 22 52 54 20 69 73 20 75 6e 73 75 70 70 6f 72 74 65 64 20 6f 6e | return.(0,."RT.is.unsupported.on |
6e00 | 20 4d 79 53 51 4c 20 76 65 72 73 69 6f 6e 73 20 62 65 66 6f 72 65 20 34 2e 31 2e 20 20 59 6f 75 | .MySQL.versions.before.4.1...You |
6e20 | 72 20 76 65 72 73 69 6f 6e 20 69 73 20 24 76 65 72 73 69 6f 6e 2e 22 29 00 20 20 20 20 20 20 20 | r.version.is.$version.")........ |
6e40 | 20 28 24 76 65 72 73 69 6f 6e 29 20 3d 20 24 76 65 72 73 69 6f 6e 20 3d 7e 20 2f 5e 28 5c 64 2b | .($version).=.$version.=~./^(\d+ |
6e60 | 5c 2e 5c 64 2b 29 2f 3b 00 00 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 24 76 65 | \.\d+)/;..............unless.$ve |
6e80 | 72 73 69 6f 6e 3b 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 22 63 6f 75 6c 64 | rsion;.........return.(0,."could |
6ea0 | 6e 27 74 20 67 65 74 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 6d 79 73 71 6c 20 73 65 72 | n't.get.version.of.the.mysql.ser |
6ec0 | 76 65 72 22 29 00 20 20 20 20 20 20 20 20 6d 79 20 24 76 65 72 73 69 6f 6e 20 3d 20 28 24 64 62 | ver").........my.$version.=.($db |
6ee0 | 68 2d 3e 73 65 6c 65 63 74 72 6f 77 5f 61 72 72 61 79 28 22 73 68 6f 77 20 76 61 72 69 61 62 6c | h->selectrow_array("show.variabl |
6f00 | 65 73 20 6c 69 6b 65 20 27 76 65 72 73 69 6f 6e 27 22 29 29 5b 31 5d 3b 00 20 20 20 20 20 20 20 | es.like.'version'"))[1];........ |
6f20 | 20 23 20 43 68 65 63 6b 20 77 68 69 63 68 20 76 65 72 73 69 6f 6e 20 77 65 27 72 65 20 72 75 6e | .#.Check.which.version.we're.run |
6f40 | 6e 69 6e 67 00 20 20 20 20 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 20 22 6d 79 73 71 6c | ning.....if.(.$db_type.eq."mysql |
6f60 | 22 20 29 20 7b 00 20 20 20 20 6d 79 20 24 64 62 5f 74 79 70 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 | ".).{.....my.$db_type.=.RT->Conf |
6f80 | 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 54 79 70 65 27 29 3b 00 00 20 20 20 20 6d 79 | ig->Get('DatabaseType');......my |
6fa0 | 20 24 73 74 61 74 65 20 3d 20 73 68 69 66 74 20 7c 7c 20 27 70 6f 73 74 27 3b 00 20 20 20 20 6d | .$state.=.shift.||.'post';.....m |
6fc0 | 79 20 24 64 62 68 20 3d 20 73 68 69 66 74 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 | y.$dbh.=.shift;.....my.$self.=.s |
6fe0 | 68 69 66 74 3b 00 73 75 62 20 43 68 65 63 6b 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 7b 00 00 | hift;.sub.CheckCompatibility.{.. |
7000 | 61 64 00 00 13 00 00 00 e7 01 00 00 00 10 00 00 6e 00 00 00 00 00 00 00 c5 0f 00 00 a9 0f 00 00 | ad..............n............... |
7020 | 6f 0f 00 00 46 0f 00 00 1c 0f 00 00 f3 0e 00 00 e8 0e 00 00 cb 0e 00 00 77 0e 00 00 4b 0e 00 00 | o...F...................w...K... |
7040 | 41 0e 00 00 fc 0d 00 00 df 0d 00 00 90 0d 00 00 64 0d 00 00 5a 0d 00 00 02 0d 00 00 fc 0c 00 00 | A...............d...Z........... |
7060 | db 0c 00 00 78 0c 00 00 72 0c 00 00 4e 0c 00 00 fb 0b 00 00 f5 0b 00 00 ea 0b 00 00 b2 0b 00 00 | ....x...r...N................... |
7080 | ac 0b 00 00 88 0b 00 00 86 0b 00 00 85 0b 00 00 6c 0b 00 00 6b 0b 00 00 2d 0b 00 00 2c 0b 00 00 | ................l...k...-...,... |
70a0 | ea 0a 00 00 a8 0a 00 00 75 0a 00 00 74 0a 00 00 39 0a 00 00 38 0a 00 00 33 0a 00 00 32 0a 00 00 | ........u...t...9...8...3...2... |
70c0 | 1f 0a 00 00 09 0a 00 00 cb 09 00 00 ca 09 00 00 97 09 00 00 64 09 00 00 63 09 00 00 41 09 00 00 | ....................d...c...A... |
70e0 | 0a 09 00 00 cb 08 00 00 ae 08 00 00 79 08 00 00 4d 08 00 00 43 08 00 00 f6 07 00 00 f0 07 00 00 | ............y...M...C........... |
7100 | cb 07 00 00 ae 07 00 00 66 07 00 00 23 07 00 00 0f 07 00 00 02 07 00 00 d5 06 00 00 ac 06 00 00 | ........f...#................... |
7120 | a6 06 00 00 96 06 00 00 94 06 00 00 93 06 00 00 82 06 00 00 81 06 00 00 7c 06 00 00 7b 06 00 00 | ........................|...{... |
7140 | 6b 06 00 00 50 06 00 00 35 06 00 00 0a 06 00 00 09 06 00 00 d6 05 00 00 ae 05 00 00 ad 05 00 00 | k...P...5....................... |
7160 | 80 05 00 00 4a 05 00 00 49 05 00 00 06 05 00 00 05 05 00 00 f7 04 00 00 dc 04 00 00 9a 04 00 00 | ....J...I....................... |
7180 | 66 04 00 00 65 04 00 00 2d 04 00 00 07 04 00 00 d1 03 00 00 b4 03 00 00 a7 03 00 00 8b 03 00 00 | f...e...-....................... |
71a0 | 85 03 00 00 84 03 00 00 74 03 00 00 3b 03 00 00 22 03 00 00 ff 02 00 00 d3 02 00 00 73 02 00 00 | ........t...;..."...........s... |
71c0 | 50 02 00 00 f7 01 00 00 ed 01 00 00 e7 01 00 00 e6 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | P............................... |
71e0 | 00 00 00 00 00 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 | ...........}.........}.......... |
7200 | 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 72 75 6e 20 53 51 4c 20 | ...return.(0,."Couldn't.run.SQL. |
7220 | 71 75 65 72 79 3a 5c 6e 20 24 73 74 61 74 65 6d 65 6e 74 5c 6e 5c 6e 45 52 52 4f 52 3a 20 22 2e | query:\n.$statement\n\nERROR:.". |
7240 | 20 24 73 74 68 2d 3e 65 72 72 73 74 72 29 3b 00 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 | .$sth->errstr);.........unless.( |
7260 | 20 24 73 74 68 2d 3e 65 78 65 63 75 74 65 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 6f | .$sth->execute.).{.............o |
7280 | 72 20 72 65 74 75 72 6e 20 28 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 70 72 65 70 61 72 65 20 53 | r.return.(0,."Couldn't.prepare.S |
72a0 | 51 4c 20 71 75 65 72 79 3a 5c 6e 20 24 73 74 61 74 65 6d 65 6e 74 5c 6e 5c 6e 45 52 52 4f 52 3a | QL.query:\n.$statement\n\nERROR: |
72c0 | 20 22 2e 20 24 64 62 68 2d 3e 65 72 72 73 74 72 29 3b 00 20 20 20 20 20 20 20 20 6d 79 20 24 73 | ."..$dbh->errstr);.........my.$s |
72e0 | 74 68 20 3d 20 24 64 62 68 2d 3e 70 72 65 70 61 72 65 28 24 73 74 61 74 65 6d 65 6e 74 29 00 20 | th.=.$dbh->prepare($statement).. |
7300 | 20 20 20 66 6f 72 65 61 63 68 20 6d 79 20 24 73 74 61 74 65 6d 65 6e 74 20 28 40 61 63 6c 29 20 | ...foreach.my.$statement.(@acl). |
7320 | 7b 00 20 20 20 20 6d 79 20 40 61 63 6c 20 3d 20 61 63 6c 28 24 64 62 68 29 3b 00 20 20 20 20 64 | {.....my.@acl.=.acl($dbh);.....d |
7340 | 6f 20 24 70 61 74 68 20 7c 7c 20 72 65 74 75 72 6e 20 28 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 | o.$path.||.return.(0,."Couldn't. |
7360 | 6c 6f 61 64 20 41 43 4c 73 3a 20 22 20 2e 20 24 40 29 3b 00 20 20 20 20 6c 6f 63 61 6c 20 2a 61 | load.ACLs:."...$@);.....local.*a |
7380 | 63 6c 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 70 61 74 68 20 3d 20 24 62 61 73 65 | cl;......}.........$path.=.$base |
73a0 | 5f 70 61 74 68 3b 00 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 | _path;.....}.else.{............. |
73c0 | 75 6e 6c 65 73 73 20 2d 65 20 24 70 61 74 68 3b 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 | unless.-e.$path;.........return. |
73e0 | 28 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 66 69 6e 64 20 41 43 4c 73 20 66 6f 72 20 24 64 62 5f | (0,."Couldn't.find.ACLs.for.$db_ |
7400 | 74 79 70 65 22 29 00 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 24 70 61 74 68 20 | type").............unless.$path. |
7420 | 26 26 20 2d 65 20 24 70 61 74 68 3b 00 20 20 20 20 20 20 20 20 24 70 61 74 68 20 3d 20 46 69 6c | &&.-e.$path;.........$path.=.Fil |
7440 | 65 3a 3a 53 70 65 63 2d 3e 63 61 74 66 69 6c 65 28 20 24 62 61 73 65 5f 70 61 74 68 2c 20 22 61 | e::Spec->catfile(.$base_path,."a |
7460 | 63 6c 22 29 00 00 20 20 20 20 20 20 20 20 24 70 61 74 68 20 3d 20 24 73 65 6c 66 2d 3e 47 65 74 | cl")..........$path.=.$self->Get |
7480 | 56 65 72 73 69 6f 6e 46 69 6c 65 28 24 64 62 68 2c 20 24 70 61 74 68 29 3b 00 20 20 20 20 20 20 | VersionFile($dbh,.$path);....... |
74a0 | 20 20 24 70 61 74 68 20 3d 20 46 69 6c 65 3a 3a 53 70 65 63 2d 3e 63 61 74 66 69 6c 65 28 20 24 | ..$path.=.File::Spec->catfile(.$ |
74c0 | 62 61 73 65 5f 70 61 74 68 2c 20 22 61 63 6c 2e 24 64 62 5f 74 79 70 65 22 29 3b 00 20 20 20 20 | base_path,."acl.$db_type");..... |
74e0 | 69 66 20 28 20 2d 64 20 24 62 61 73 65 5f 70 61 74 68 20 29 20 7b 00 20 20 20 20 6d 79 20 24 70 | if.(.-d.$base_path.).{.....my.$p |
7500 | 61 74 68 3b 00 00 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 22 27 24 62 61 73 65 5f 70 61 74 | ath;......return.(0,."'$base_pat |
7520 | 68 27 20 64 6f 65 73 6e 27 74 20 65 78 69 73 74 22 29 20 75 6e 6c 65 73 73 20 2d 65 20 24 62 61 | h'.doesn't.exist").unless.-e.$ba |
7540 | 73 65 5f 70 61 74 68 3b 00 00 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 22 4e 6f 20 44 42 49 | se_path;......return.(0,."No.DBI |
7560 | 20 68 61 6e 64 6c 65 20 70 72 6f 76 69 64 65 64 22 29 20 75 6e 6c 65 73 73 20 24 64 62 68 3b 00 | .handle.provided").unless.$dbh;. |
7580 | 20 20 20 20 24 64 62 68 20 3d 20 24 73 65 6c 66 2d 3e 64 62 68 20 69 66 20 21 24 64 62 68 20 26 | ....$dbh.=.$self->dbh.if.!$dbh.& |
75a0 | 26 20 72 65 66 20 24 73 65 6c 66 3b 00 00 20 20 20 20 72 65 74 75 72 6e 20 28 31 29 20 69 66 20 | &.ref.$self;......return.(1).if. |
75c0 | 24 64 62 5f 74 79 70 65 20 65 71 20 27 53 51 4c 69 74 65 27 3b 00 20 20 20 20 6d 79 20 24 64 62 | $db_type.eq.'SQLite';.....my.$db |
75e0 | 5f 74 79 70 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 | _type.=.RT->Config->Get('Databas |
7600 | 65 54 79 70 65 27 29 3b 00 00 20 20 20 20 6d 79 20 24 62 61 73 65 5f 70 61 74 68 20 3d 20 73 68 | eType');......my.$base_path.=.sh |
7620 | 69 66 74 20 7c 7c 20 24 52 54 3a 3a 45 74 63 50 61 74 68 3b 00 20 20 20 20 6d 79 20 24 64 62 68 | ift.||.$RT::EtcPath;.....my.$dbh |
7640 | 20 20 20 20 20 20 20 3d 20 73 68 69 66 74 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 20 20 20 | .......=.shift;.....my.$self.... |
7660 | 20 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 49 6e 73 65 72 74 41 43 4c 20 7b 00 00 3d 63 75 74 | ..=.shift;.sub.InsertACL.{..=cut |
7680 | 00 00 3d 68 65 61 64 32 20 49 6e 73 65 72 74 41 43 4c 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e | ..=head2.InsertACL..}.....return |
76a0 | 20 28 31 29 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 6f 72 20 72 65 74 75 72 | .(1);.....}.............or.retur |
76c0 | 6e 20 28 30 2c 20 24 44 42 49 3a 3a 65 72 72 73 74 72 29 3b 00 20 20 20 20 20 20 20 20 24 64 62 | n.(0,.$DBI::errstr);.........$db |
76e0 | 68 2d 3e 64 6f 28 22 44 52 4f 50 20 44 41 54 41 42 41 53 45 20 22 2e 20 24 64 62 5f 6e 61 6d 65 | h->do("DROP.DATABASE."..$db_name |
7700 | 29 00 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 31 | ).....}.else.{.........return.(1 |
7720 | 29 3b 00 20 20 20 20 20 20 20 20 75 6e 6c 69 6e 6b 20 24 70 61 74 68 20 6f 72 20 72 65 74 75 72 | );.........unlink.$path.or.retur |
7740 | 6e 20 28 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 72 65 6d 6f 76 65 20 27 24 70 61 74 68 27 3a 20 | n.(0,."Couldn't.remove.'$path':. |
7760 | 24 21 22 29 3b 00 20 20 20 20 20 20 20 20 24 70 61 74 68 20 3d 20 22 24 52 54 3a 3a 56 61 72 50 | $!");.........$path.=."$RT::VarP |
7780 | 61 74 68 2f 24 70 61 74 68 22 20 75 6e 6c 65 73 73 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 | ath/$path".unless.substr($path,. |
77a0 | 30 2c 20 31 29 20 65 71 20 27 2f 27 3b 00 20 20 20 20 20 20 20 20 6d 79 20 24 70 61 74 68 20 3d | 0,.1).eq.'/';.........my.$path.= |
77c0 | 20 24 64 62 5f 6e 61 6d 65 3b 00 20 20 20 20 65 6c 73 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 | .$db_name;.....elsif.(.$db_type. |
77e0 | 65 71 20 27 53 51 4c 69 74 65 27 20 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 72 65 | eq.'SQLite'.).{.....}.........re |
7800 | 74 75 72 6e 20 28 31 2c 20 22 53 75 63 63 65 73 73 66 75 6c 6c 79 20 64 72 6f 70 70 65 64 20 75 | turn.(1,."Successfully.dropped.u |
7820 | 73 65 72 20 27 24 64 62 5f 75 73 65 72 27 20 77 69 74 68 20 68 69 73 20 73 63 68 65 6d 61 2e 22 | ser.'$db_user'.with.his.schema." |
7840 | 29 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 22 5c | );.........}.................."\ |
7860 | 6e 45 72 72 6f 72 3a 20 22 2e 20 24 64 62 68 2d 3e 65 72 72 73 74 72 3b 00 20 20 20 20 20 20 20 | nError:."..$dbh->errstr;........ |
7880 | 20 20 20 20 20 72 65 74 75 72 6e 20 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 64 72 6f 70 20 75 73 | .....return.0,."Couldn't.drop.us |
78a0 | 65 72 20 24 64 62 5f 75 73 65 72 2e 22 00 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 | er.$db_user.".........unless.(.$ |
78c0 | 73 74 61 74 75 73 20 29 20 7b 00 20 20 20 20 20 20 20 20 6d 79 20 24 73 74 61 74 75 73 20 3d 20 | status.).{.........my.$status.=. |
78e0 | 24 64 62 68 2d 3e 64 6f 28 20 22 44 52 4f 50 20 55 53 45 52 20 24 64 62 5f 75 73 65 72 20 43 41 | $dbh->do(."DROP.USER.$db_user.CA |
7900 | 53 43 41 44 45 22 20 29 3b 00 20 20 20 20 20 20 20 20 6d 79 20 24 64 62 5f 75 73 65 72 20 3d 20 | SCADE".);.........my.$db_user.=. |
7920 | 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 55 73 65 72 27 29 3b | RT->Config->Get('DatabaseUser'); |
7940 | 00 20 20 20 20 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 20 27 4f 72 61 63 6c 65 27 20 29 | .....if.(.$db_type.eq.'Oracle'.) |
7960 | 20 7b 00 00 20 20 20 20 6d 79 20 24 64 62 5f 6e 61 6d 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 | .{......my.$db_name.=.RT->Config |
7980 | 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 4e 61 6d 65 27 29 3b 00 20 20 20 20 6d 79 20 24 64 | ->Get('DatabaseName');.....my.$d |
79a0 | 62 5f 74 79 70 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 | b_type.=.RT->Config->Get('Databa |
79c0 | 73 65 54 79 70 65 27 29 3b 00 00 20 20 20 20 6d 79 20 24 64 62 68 20 20 3d 20 73 68 69 66 74 20 | seType');......my.$dbh..=.shift. |
79e0 | 6f 72 20 72 65 74 75 72 6e 20 28 30 2c 20 22 4e 6f 20 44 42 49 20 68 61 6e 64 6c 65 20 70 72 6f | or.return.(0,."No.DBI.handle.pro |
7a00 | 76 69 64 65 64 22 29 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 73 | vided");.....my.$self.=.shift;.s |
7a20 | 75 62 20 44 72 6f 70 44 61 74 61 62 61 73 65 20 7b 00 00 3d 63 75 74 00 00 46 65 74 63 68 65 73 | ub.DropDatabase.{..=cut..Fetches |
7a40 | 20 74 68 65 20 74 79 70 65 20 61 6e 64 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 64 61 74 61 62 61 | .the.type.and.name.of.the.databa |
7a60 | 73 65 20 66 72 6f 6d 20 74 68 65 20 63 6f 6e 66 69 67 2e 00 00 74 6f 20 75 73 65 20 4c 3c 53 79 | se.from.the.config...to.use.L<Sy |
7a80 | 73 74 65 6d 44 53 4e 3e 20 77 68 65 6e 20 61 63 71 75 69 72 69 6e 67 20 74 68 65 20 44 42 49 20 | stemDSN>.when.acquiring.the.DBI. |
7aa0 | 68 61 6e 64 6c 65 2e 00 61 20 73 70 65 63 69 61 6c 20 68 61 6e 64 6c 65 20 74 6f 20 61 6c 6c 6f | handle..a.special.handle.to.allo |
7ac0 | 77 20 79 6f 75 20 74 6f 20 64 72 6f 70 20 61 20 64 61 74 61 62 61 73 65 2c 20 73 6f 20 79 6f 75 | w.you.to.drop.a.database,.so.you |
7ae0 | 20 6d 61 79 20 68 61 76 65 00 54 61 6b 65 73 20 44 42 49 20 68 61 6e 64 6c 65 20 61 73 20 66 69 | .may.have.Takes.DBI.handle.as.fi |
7b00 | 72 73 74 20 61 72 67 75 6d 65 6e 74 2e 20 4d 61 6e 79 20 64 61 74 61 62 61 73 65 20 73 79 73 74 | rst.argument..Many.database.syst |
7b20 | 65 6d 73 20 72 65 71 75 69 72 65 00 00 44 72 6f 70 73 20 52 54 27 73 20 64 61 74 61 62 61 73 65 | ems.require..Drops.RT's.database |
7b40 | 2e 20 54 68 69 73 20 6d 65 74 68 6f 64 20 63 61 6e 20 62 65 20 75 73 65 64 20 61 73 20 63 6c 61 | ..This.method.can.be.used.as.cla |
7b60 | 73 73 20 6d 65 74 68 6f 64 2e 00 00 3d 68 65 61 64 33 20 44 72 6f 70 44 61 74 61 62 61 73 65 20 | ss.method...=head3.DropDatabase. |
7b80 | 24 44 42 48 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e 20 28 24 73 74 61 74 75 73 2c 20 24 44 42 | $DBH..}.....return.($status,.$DB |
7ba0 | 49 3a 3a 65 72 72 73 74 72 29 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 73 74 61 74 75 | I::errstr);.....}.........$statu |
7bc0 | 73 20 3d 20 24 64 62 68 2d 3e 64 6f 28 22 43 52 45 41 54 45 20 44 41 54 41 42 41 53 45 20 24 64 | s.=.$dbh->do("CREATE.DATABASE.$d |
7be0 | 62 5f 6e 61 6d 65 22 29 3b 00 20 20 20 20 65 6c 73 65 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 | b_name");.....else.{.....}...... |
7c00 | 20 20 20 24 73 74 61 74 75 73 20 3d 20 24 64 62 68 2d 3e 64 6f 28 22 43 52 45 41 54 45 20 44 41 | ...$status.=.$dbh->do("CREATE.DA |
7c20 | 54 41 42 41 53 45 20 24 64 62 5f 6e 61 6d 65 20 44 45 46 41 55 4c 54 20 43 48 41 52 41 43 54 45 | TABASE.$db_name.DEFAULT.CHARACTE |
7c40 | 52 20 53 45 54 20 75 74 66 38 22 29 3b 00 20 20 20 20 65 6c 73 69 66 20 28 20 24 64 62 5f 74 79 | R.SET.utf8");.....elsif.(.$db_ty |
7c60 | 70 65 20 65 71 20 27 6d 79 73 71 6c 27 20 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 | pe.eq.'mysql'.).{.....}......... |
7c80 | 24 73 74 61 74 75 73 20 3d 20 24 64 62 68 2d 3e 64 6f 28 22 43 52 45 41 54 45 20 44 41 54 41 42 | $status.=.$dbh->do("CREATE.DATAB |
7ca0 | 41 53 45 20 24 64 62 5f 6e 61 6d 65 20 57 49 54 48 20 45 4e 43 4f 44 49 4e 47 3d 27 55 4e 49 43 | ASE.$db_name.WITH.ENCODING='UNIC |
7cc0 | 4f 44 45 27 20 54 45 4d 50 4c 41 54 45 20 74 65 6d 70 6c 61 74 65 30 22 29 3b 00 20 20 20 20 65 | ODE'.TEMPLATE.template0");.....e |
7ce0 | 6c 73 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 20 27 50 67 27 20 29 20 7b 00 20 20 20 20 | lsif.(.$db_type.eq.'Pg'.).{..... |
7d00 | 7d 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 31 2c 20 22 43 72 65 61 74 65 64 20 75 73 | }.........return.(1,."Created.us |
7d20 | 65 72 20 24 64 62 5f 75 73 65 72 2e 20 41 6c 6c 20 52 54 27 73 20 6f 62 6a 65 63 74 73 20 73 68 | er.$db_user..All.RT's.objects.sh |
7d40 | 6f 75 6c 64 20 62 65 20 69 6e 20 68 69 73 20 73 63 68 65 6d 61 2e 22 29 3b 00 20 20 20 20 20 20 | ould.be.in.his.schema.");....... |
7d60 | 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 22 5c 6e 45 72 72 6f 72 3a 20 22 | ..}.................."\nError:." |
7d80 | 2e 20 24 64 62 68 2d 3e 65 72 72 73 74 72 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 | ..$dbh->errstr;.............retu |
7da0 | 72 6e 20 24 73 74 61 74 75 73 2c 20 22 43 6f 75 6c 64 6e 27 74 20 67 72 61 6e 74 20 63 6f 6e 6e | rn.$status,."Couldn't.grant.conn |
7dc0 | 65 63 74 20 61 6e 64 20 72 65 73 6f 75 72 63 65 20 74 6f 20 24 64 62 5f 75 73 65 72 2e 22 00 20 | ect.and.resource.to.$db_user.".. |
7de0 | 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 73 74 61 74 75 73 20 29 20 7b 00 20 20 20 20 | .......unless.(.$status.).{..... |
7e00 | 20 20 20 20 24 73 74 61 74 75 73 20 3d 20 24 64 62 68 2d 3e 64 6f 28 20 22 47 52 41 4e 54 20 63 | ....$status.=.$dbh->do(."GRANT.c |
7e20 | 6f 6e 6e 65 63 74 2c 20 72 65 73 6f 75 72 63 65 20 54 4f 20 24 64 62 5f 75 73 65 72 22 20 29 3b | onnect,.resource.TO.$db_user".); |
7e40 | 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 22 5c 6e 45 | .........}.................."\nE |
7e60 | 72 72 6f 72 3a 20 22 2e 20 24 64 62 68 2d 3e 65 72 72 73 74 72 3b 00 20 20 20 20 20 20 20 20 20 | rror:."..$dbh->errstr;.......... |
7e80 | 20 20 20 72 65 74 75 72 6e 20 24 73 74 61 74 75 73 2c 20 22 43 6f 75 6c 64 6e 27 74 20 63 72 65 | ...return.$status,."Couldn't.cre |
7ea0 | 61 74 65 20 75 73 65 72 20 24 64 62 5f 75 73 65 72 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 | ate.user.$db_user.identified.by. |
7ec0 | 24 64 62 5f 70 61 73 73 2e 22 00 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 73 74 61 | $db_pass.".........unless.(.$sta |
7ee0 | 74 75 73 20 29 20 7b 00 20 20 20 20 20 20 20 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 2e | tus.).{.........);.............. |
7f00 | 22 20 71 75 6f 74 61 20 75 6e 6c 69 6d 69 74 65 64 20 6f 6e 20 55 53 45 52 53 22 00 20 20 20 20 | ".quota.unlimited.on.USERS"..... |
7f20 | 20 20 20 20 20 20 20 20 2e 22 20 74 65 6d 70 6f 72 61 72 79 20 74 61 62 6c 65 73 70 61 63 65 20 | .........".temporary.tablespace. |
7f40 | 54 45 4d 50 22 00 20 20 20 20 20 20 20 20 20 20 20 20 2e 22 20 64 65 66 61 75 6c 74 20 74 61 62 | TEMP"..............".default.tab |
7f60 | 6c 65 73 70 61 63 65 20 55 53 45 52 53 22 00 20 20 20 20 20 20 20 20 20 20 20 20 22 43 52 45 41 | lespace.USERS"............."CREA |
7f80 | 54 45 20 55 53 45 52 20 24 64 62 5f 75 73 65 72 20 49 44 45 4e 54 49 46 49 45 44 20 42 59 20 24 | TE.USER.$db_user.IDENTIFIED.BY.$ |
7fa0 | 64 62 5f 70 61 73 73 22 00 20 20 20 20 20 20 20 20 24 73 74 61 74 75 73 20 3d 20 24 64 62 68 2d | db_pass".........$status.=.$dbh- |
7fc0 | 3e 64 6f 28 00 20 20 20 20 20 20 20 20 6d 79 20 24 64 62 5f 70 61 73 73 20 3d 20 52 54 2d 3e 43 | >do(.........my.$db_pass.=.RT->C |
7fe0 | 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 50 61 73 73 77 6f 72 64 27 29 3b 00 | onfig->Get('DatabasePassword');. |
8000 | 61 64 00 00 17 00 00 00 37 02 00 00 00 10 00 00 81 00 00 00 00 00 00 00 f0 0f 00 00 ee 0f 00 00 | ad......7....................... |
8020 | ed 0f 00 00 d9 0f 00 00 d8 0f 00 00 d3 0f 00 00 d2 0f 00 00 bf 0f 00 00 a9 0f 00 00 93 0f 00 00 | ................................ |
8040 | 66 0f 00 00 65 0f 00 00 38 0f 00 00 02 0f 00 00 01 0f 00 00 ce 0e 00 00 cd 0e 00 00 bf 0e 00 00 | f...e...8....................... |
8060 | a4 0e 00 00 70 0e 00 00 63 0e 00 00 47 0e 00 00 41 0e 00 00 40 0e 00 00 0e 0e 00 00 f7 0d 00 00 | ....p...c...G...A...@........... |
8080 | ba 0d 00 00 b4 0d 00 00 8e 0d 00 00 48 0d 00 00 42 0d 00 00 41 0d 00 00 2f 0d 00 00 2e 0d 00 00 | ............H...B...A.../....... |
80a0 | fd 0c 00 00 fc 0c 00 00 e5 0c 00 00 76 0c 00 00 5a 0c 00 00 59 0c 00 00 41 0c 00 00 e8 0b 00 00 | ............v...Z...Y...A....... |
80c0 | cc 0b 00 00 b0 0b 00 00 93 0b 00 00 6f 0b 00 00 47 0b 00 00 21 0b 00 00 04 0b 00 00 fa 0a 00 00 | ............o...G...!........... |
80e0 | f4 0a 00 00 c6 0a 00 00 c5 0a 00 00 a3 0a 00 00 6c 0a 00 00 1e 0a 00 00 01 0a 00 00 ba 09 00 00 | ................l............... |
8100 | 8e 09 00 00 84 09 00 00 7e 09 00 00 7d 09 00 00 5a 09 00 00 44 09 00 00 f2 08 00 00 cc 08 00 00 | ........~...}...Z...D........... |
8120 | a4 08 00 00 83 08 00 00 79 08 00 00 78 08 00 00 4c 08 00 00 ed 07 00 00 bd 07 00 00 65 07 00 00 | ........y...x...L...........e... |
8140 | 5b 07 00 00 55 07 00 00 06 07 00 00 f6 06 00 00 f4 06 00 00 f3 06 00 00 dd 06 00 00 dc 06 00 00 | [...U........................... |
8160 | 8d 06 00 00 3f 06 00 00 3e 06 00 00 39 06 00 00 38 06 00 00 23 06 00 00 0d 06 00 00 f8 05 00 00 | ....?...>...9...8...#........... |
8180 | dd 05 00 00 dc 05 00 00 bd 05 00 00 9c 05 00 00 8d 05 00 00 66 05 00 00 49 05 00 00 26 05 00 00 | ....................f...I...&... |
81a0 | 1b 05 00 00 1a 05 00 00 02 05 00 00 cd 04 00 00 b0 04 00 00 af 04 00 00 64 04 00 00 53 04 00 00 | ........................d...S... |
81c0 | 1a 04 00 00 e5 03 00 00 ca 03 00 00 b8 03 00 00 ae 03 00 00 a8 03 00 00 a7 03 00 00 6c 03 00 00 | ............................l... |
81e0 | 6a 03 00 00 69 03 00 00 5a 03 00 00 49 03 00 00 38 03 00 00 27 03 00 00 16 03 00 00 05 03 00 00 | j...i...Z...I...8...'........... |
8200 | f4 02 00 00 e1 02 00 00 de 02 00 00 c8 02 00 00 b0 02 00 00 56 02 00 00 37 02 00 00 36 02 00 00 | ....................V...7...6... |
8220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 73 | ...............................s |
8240 | 70 6c 69 74 20 2f 28 5b 5e 30 2d 39 5d 2b 29 2f 2c 20 24 61 3b 00 20 20 20 20 6d 79 20 40 61 20 | plit./([^0-9]+)/,.$a;.....my.@a. |
8260 | 3d 20 67 72 65 70 20 64 65 66 69 6e 65 64 2c 20 6d 61 70 20 7b 20 2f 5e 5b 30 2d 39 5d 2b 24 2f | =.grep.defined,.map.{./^[0-9]+$/ |
8280 | 3f 20 24 5f 20 3a 20 2f 5e 5b 61 2d 7a 41 2d 5a 5d 2b 24 2f 3f 20 24 77 6f 72 64 7b 24 5f 7d 7c | ?.$_.:./^[a-zA-Z]+$/?.$word{$_}| |
82a0 | 7c 20 2d 31 30 20 3a 20 75 6e 64 65 66 20 7d 00 20 20 20 20 6d 79 20 28 24 61 2c 20 24 62 29 20 | |.-10.:.undef.}.....my.($a,.$b). |
82c0 | 3d 20 28 40 5f 29 3b 00 73 75 62 20 63 6d 70 5f 76 65 72 73 69 6f 6e 28 24 24 29 20 7b 00 29 3b | =.(@_);.sub.cmp_version($$).{.); |
82e0 | 00 20 20 20 20 68 65 61 64 20 20 3d 3e 20 39 39 39 39 2c 00 20 20 20 20 72 63 20 20 20 20 3d 3e | .....head..=>.9999,.....rc....=> |
8300 | 20 2d 31 2c 00 20 20 20 20 70 72 65 20 20 20 3d 3e 20 2d 32 2c 00 20 20 20 20 62 65 74 61 20 20 | .-1,.....pre...=>.-2,.....beta.. |
8320 | 3d 3e 20 2d 33 2c 00 20 20 20 20 62 20 20 20 20 20 3d 3e 20 2d 33 2c 00 20 20 20 20 61 6c 70 68 | =>.-3,.....b.....=>.-3,.....alph |
8340 | 61 20 3d 3e 20 2d 34 2c 00 20 20 20 20 61 20 20 20 20 20 3d 3e 20 2d 34 2c 00 7b 20 6d 79 20 25 | a.=>.-4,.....a.....=>.-4,.{.my.% |
8360 | 77 6f 72 64 20 3d 20 28 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e 20 64 65 66 69 6e 65 64 20 24 | word.=.(..}.....return.defined.$ |
8380 | 76 65 72 73 69 6f 6e 3f 20 24 76 65 72 73 69 6f 6e 7b 20 24 76 65 72 73 69 6f 6e 20 7d 20 3a 20 | version?.$version{.$version.}.:. |
83a0 | 75 6e 64 65 66 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 | undef;......}.........}......... |
83c0 | 20 20 20 20 6c 61 73 74 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 24 76 65 72 73 69 6f 6e 20 3d | ....last;.............$version.= |
83e0 | 20 24 5f 3b 00 20 20 20 20 20 20 20 20 69 66 20 28 20 63 6d 70 5f 76 65 72 73 69 6f 6e 28 20 24 | .$_;.........if.(.cmp_version(.$ |
8400 | 64 62 5f 76 65 72 73 69 6f 6e 2c 20 24 5f 20 29 20 3e 3d 20 30 20 29 20 7b 00 20 20 20 20 66 6f | db_version,.$_.).>=.0.).{.....fo |
8420 | 72 65 61 63 68 20 28 20 72 65 76 65 72 73 65 20 73 6f 72 74 20 63 6d 70 5f 76 65 72 73 69 6f 6e | reach.(.reverse.sort.cmp_version |
8440 | 20 6b 65 79 73 20 25 76 65 72 73 69 6f 6e 20 29 20 7b 00 20 20 20 20 6d 79 20 24 76 65 72 73 69 | .keys.%version.).{.....my.$versi |
8460 | 6f 6e 3b 00 20 20 20 20 6d 79 20 25 76 65 72 73 69 6f 6e 20 3d 20 6d 61 70 20 7b 20 24 5f 20 3d | on;.....my.%version.=.map.{.$_.= |
8480 | 7e 20 2f 5c 2e 5c 77 2b 2d 28 5b 2d 5c 77 5c 2e 5d 2b 29 24 2f 3b 20 28 24 31 7c 7c 30 29 20 3d | ~./\.\w+-([-\w\.]+)$/;.($1||0).= |
84a0 | 3e 20 24 5f 20 7d 20 40 66 69 6c 65 73 3b 00 00 20 20 20 20 72 65 74 75 72 6e 20 27 27 20 75 6e | >.$_.}.@files;......return.''.un |
84c0 | 6c 65 73 73 20 40 66 69 6c 65 73 3b 00 20 20 20 20 6d 79 20 40 66 69 6c 65 73 20 3d 20 46 69 6c | less.@files;.....my.@files.=.Fil |
84e0 | 65 3a 3a 47 6c 6f 62 3a 3a 62 73 64 5f 67 6c 6f 62 28 22 24 62 61 73 65 5f 6e 61 6d 65 2a 22 29 | e::Glob::bsd_glob("$base_name*") |
8500 | 3b 00 20 20 20 20 72 65 71 75 69 72 65 20 46 69 6c 65 3a 3a 47 6c 6f 62 3b 00 00 20 20 20 20 20 | ;.....require.File::Glob;....... |
8520 | 20 20 20 7d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 24 74 6d 70 2d 3e 44 61 74 61 62 61 73 65 | ...};.............$tmp->Database |
8540 | 56 65 72 73 69 6f 6e 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 24 74 6d 70 2d 3e 64 62 68 28 24 | Version;.............$tmp->dbh($ |
8560 | 64 62 68 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 74 6d 70 20 3d 20 52 54 3a 3a | dbh);.............my.$tmp.=.RT:: |
8580 | 48 61 6e 64 6c 65 2d 3e 6e 65 77 3b 00 20 20 20 20 20 20 20 20 3a 20 64 6f 20 7b 00 20 20 20 20 | Handle->new;.........:.do.{..... |
85a0 | 20 20 20 20 3f 20 24 73 65 6c 66 2d 3e 44 61 74 61 62 61 73 65 56 65 72 73 69 6f 6e 00 20 20 20 | ....?.$self->DatabaseVersion.... |
85c0 | 20 6d 79 20 24 64 62 5f 76 65 72 73 69 6f 6e 20 3d 20 72 65 66 20 24 73 65 6c 66 00 00 20 20 20 | .my.$db_version.=.ref.$self..... |
85e0 | 20 6d 79 20 24 62 61 73 65 5f 6e 61 6d 65 20 3d 20 73 68 69 66 74 3b 00 20 20 20 20 6d 79 20 24 | .my.$base_name.=.shift;.....my.$ |
8600 | 64 62 68 20 3d 20 73 68 69 66 74 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 | dbh.=.shift;.....my.$self.=.shif |
8620 | 74 3b 00 73 75 62 20 47 65 74 56 65 72 73 69 6f 6e 46 69 6c 65 20 7b 00 00 3d 63 75 74 00 00 66 | t;.sub.GetVersionFile.{..=cut..f |
8640 | 69 6c 65 73 20 61 6e 64 20 72 65 74 75 72 6e 73 20 66 69 6c 65 20 6e 61 6d 65 20 77 69 74 68 20 | iles.and.returns.file.name.with. |
8660 | 63 6c 6f 73 65 73 74 20 76 65 72 73 69 6f 6e 20 74 6f 20 74 68 65 20 76 65 72 73 69 6f 6e 20 6f | closest.version.to.the.version.o |
8680 | 66 20 74 68 65 20 52 54 20 44 42 2e 00 54 61 6b 65 73 20 62 61 73 65 20 6e 61 6d 65 20 6f 66 20 | f.the.RT.DB..Takes.base.name.of. |
86a0 | 74 68 65 20 66 69 6c 65 20 61 73 20 61 72 67 75 6d 65 6e 74 2c 20 73 63 61 6e 73 20 66 6f 72 20 | the.file.as.argument,.scans.for. |
86c0 | 3c 62 61 73 65 20 6e 61 6d 65 3e 2d 3c 76 65 72 73 69 6f 6e 3e 20 6e 61 6d 65 64 00 00 3d 68 65 | <base.name>-<version>.named..=he |
86e0 | 61 64 31 20 47 65 74 56 65 72 73 69 6f 6e 46 69 6c 65 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e | ad1.GetVersionFile..}.....return |
8700 | 20 28 31 29 3b 00 20 20 20 20 24 64 62 68 2d 3e 63 6f 6d 6d 69 74 20 6f 72 20 72 65 74 75 72 6e | .(1);.....$dbh->commit.or.return |
8720 | 20 28 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 63 6f 6d 6d 69 74 20 74 72 61 6e 73 61 63 74 69 6f | .(0,."Couldn't.commit.transactio |
8740 | 6e 3a 20 22 2e 20 24 64 62 68 2d 3e 65 72 72 73 74 72 29 3b 00 20 20 20 20 7d 00 20 20 20 20 20 | n:."..$dbh->errstr);.....}...... |
8760 | 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 22 43 6f 75 | ...}.............return.(0,."Cou |
8780 | 6c 64 6e 27 74 20 72 75 6e 20 53 51 4c 20 71 75 65 72 79 3a 5c 6e 24 73 74 61 74 65 6d 65 6e 74 | ldn't.run.SQL.query:\n$statement |
87a0 | 5c 6e 5c 6e 45 52 52 4f 52 3a 20 22 2e 20 24 73 74 68 2d 3e 65 72 72 73 74 72 29 3b 00 20 20 20 | \n\nERROR:."..$sth->errstr);.... |
87c0 | 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 73 74 68 2d 3e 65 78 65 63 75 74 65 20 6f 72 20 24 | .....unless.(.$sth->execute.or.$ |
87e0 | 69 73 5f 6c 6f 63 61 6c 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 6f 72 20 72 65 74 75 | is_local.).{.............or.retu |
8800 | 72 6e 20 28 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 70 72 65 70 61 72 65 20 53 51 4c 20 71 75 65 | rn.(0,."Couldn't.prepare.SQL.que |
8820 | 72 79 3a 5c 6e 24 73 74 61 74 65 6d 65 6e 74 5c 6e 5c 6e 45 52 52 4f 52 3a 20 22 2e 20 24 64 62 | ry:\n$statement\n\nERROR:."..$db |
8840 | 68 2d 3e 65 72 72 73 74 72 29 3b 00 20 20 20 20 20 20 20 20 6d 79 20 24 73 74 68 20 3d 20 24 64 | h->errstr);.........my.$sth.=.$d |
8860 | 62 68 2d 3e 70 72 65 70 61 72 65 28 24 73 74 61 74 65 6d 65 6e 74 29 00 00 20 20 20 20 20 20 20 | bh->prepare($statement)......... |
8880 | 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 24 69 73 5f 6c 6f 63 61 6c 20 3d 20 31 3b 20 6e 65 | .}.............$is_local.=.1;.ne |
88a0 | 78 74 3b 00 20 20 20 20 20 20 20 20 69 66 20 28 20 24 73 74 61 74 65 6d 65 6e 74 20 3d 7e 20 2f | xt;.........if.(.$statement.=~./ |
88c0 | 5e 5c 73 2a 3b 24 2f 20 29 20 7b 00 20 20 20 20 66 6f 72 65 61 63 68 20 6d 79 20 24 73 74 61 74 | ^\s*;$/.).{.....foreach.my.$stat |
88e0 | 65 6d 65 6e 74 20 28 40 73 63 68 65 6d 61 29 20 7b 00 20 20 20 20 24 64 62 68 2d 3e 62 65 67 69 | ement.(@schema).{.....$dbh->begi |
8900 | 6e 5f 77 6f 72 6b 20 6f 72 20 72 65 74 75 72 6e 20 28 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 62 | n_work.or.return.(0,."Couldn't.b |
8920 | 65 67 69 6e 20 74 72 61 6e 73 61 63 74 69 6f 6e 3a 20 22 2e 20 24 64 62 68 2d 3e 65 72 72 73 74 | egin.transaction:."..$dbh->errst |
8940 | 72 29 3b 00 20 20 20 20 6d 79 20 24 69 73 5f 6c 6f 63 61 6c 20 3d 20 30 3b 00 20 20 20 20 6c 6f | r);.....my.$is_local.=.0;.....lo |
8960 | 63 61 6c 20 24 53 49 47 7b 5f 5f 57 41 52 4e 5f 5f 7d 20 3d 20 73 75 62 20 7b 7d 3b 00 00 20 20 | cal.$SIG{__WARN__}.=.sub.{};.... |
8980 | 20 20 7d 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 22 | ..}.........}.................." |
89a0 | 5c 6e 45 72 72 6f 72 3a 20 22 2e 20 24 64 62 68 2d 3e 65 72 72 73 74 72 3b 00 20 20 20 20 20 20 | \nError:."..$dbh->errstr;....... |
89c0 | 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 74 61 74 75 73 2c 20 22 43 6f 75 6c 64 6e 27 74 20 | ......return.$status,."Couldn't. |
89e0 | 73 65 74 20 63 75 72 72 65 6e 74 20 73 63 68 65 6d 61 20 74 6f 20 24 64 62 5f 75 73 65 72 2e 22 | set.current.schema.to.$db_user." |
8a00 | 00 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 73 74 61 74 75 73 20 29 20 7b 00 20 20 | .........unless.(.$status.).{... |
8a20 | 20 20 20 20 20 20 6d 79 20 24 73 74 61 74 75 73 20 3d 20 24 64 62 68 2d 3e 64 6f 28 20 22 41 4c | ......my.$status.=.$dbh->do(."AL |
8a40 | 54 45 52 20 53 45 53 53 49 4f 4e 20 53 45 54 20 43 55 52 52 45 4e 54 5f 53 43 48 45 4d 41 3d 24 | TER.SESSION.SET.CURRENT_SCHEMA=$ |
8a60 | 64 62 5f 75 73 65 72 22 20 29 3b 00 20 20 20 20 20 20 20 20 6d 79 20 24 64 62 5f 75 73 65 72 20 | db_user".);.........my.$db_user. |
8a80 | 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 55 73 65 72 27 | =.RT->Config->Get('DatabaseUser' |
8aa0 | 29 3b 00 20 20 20 20 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 20 27 4f 72 61 63 6c 65 27 | );.....if.(.$db_type.eq.'Oracle' |
8ac0 | 20 29 20 7b 00 00 20 20 20 20 63 6c 6f 73 65 20 24 66 68 5f 73 63 68 65 6d 61 3b 20 63 6c 6f 73 | .).{......close.$fh_schema;.clos |
8ae0 | 65 20 24 66 68 5f 73 63 68 65 6d 61 5f 6c 6f 63 61 6c 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 | e.$fh_schema_local;.....}....... |
8b00 | 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 24 73 74 61 74 65 6d 65 6e 74 20 3d 20 22 22 3b | ..}.............$statement.=.""; |
8b20 | 00 20 20 20 20 20 20 20 20 20 20 20 20 70 75 73 68 20 40 73 63 68 65 6d 61 2c 20 24 73 74 61 74 | .............push.@schema,.$stat |
8b40 | 65 6d 65 6e 74 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 24 73 74 61 74 65 6d 65 6e 74 20 3d 7e | ement;.............$statement.=~ |
8b60 | 20 73 2f 3b 28 5c 73 2a 29 24 2f 2f 67 3b 00 20 20 20 20 20 20 20 20 69 66 20 28 20 24 6c 69 6e | .s/;(\s*)$//g;.........if.(.$lin |
8b80 | 65 20 3d 7e 20 2f 3b 28 5c 73 2a 29 24 2f 20 29 20 7b 00 20 20 20 20 20 20 20 20 24 73 74 61 74 | e.=~./;(\s*)$/.).{.........$stat |
8ba0 | 65 6d 65 6e 74 20 2e 3d 20 24 6c 69 6e 65 3b 00 20 20 20 20 20 20 20 20 24 6c 69 6e 65 20 3d 7e | ement..=.$line;.........$line.=~ |
8bc0 | 20 73 2f 2d 2d 2e 2a 2f 2f 67 3b 00 20 20 20 20 20 20 20 20 24 6c 69 6e 65 20 3d 7e 20 73 2f 5c | .s/--.*//g;.........$line.=~.s/\ |
8be0 | 23 2e 2a 2f 2f 67 3b 00 20 20 20 20 66 6f 72 65 61 63 68 20 6d 79 20 24 6c 69 6e 65 20 28 20 3c | #.*//g;.....foreach.my.$line.(.< |
8c00 | 24 66 68 5f 73 63 68 65 6d 61 3e 2c 20 28 24 5f 20 3d 20 27 3b 3b 27 29 2c 20 24 68 61 73 5f 6c | $fh_schema>,.($_.=.';;'),.$has_l |
8c20 | 6f 63 61 6c 3f 20 3c 24 66 68 5f 73 63 68 65 6d 61 5f 6c 6f 63 61 6c 3e 3a 20 28 29 20 29 20 7b | ocal?.<$fh_schema_local>:.().).{ |
8c40 | 00 20 20 20 20 6d 79 20 24 73 74 61 74 65 6d 65 6e 74 20 3d 20 22 22 3b 00 00 20 20 20 20 20 20 | .....my.$statement.=."";........ |
8c60 | 20 20 61 6e 64 20 24 68 61 73 5f 6c 6f 63 61 6c 20 3d 20 31 3b 00 20 20 20 20 6f 70 65 6e 28 20 | ..and.$has_local.=.1;.....open(. |
8c80 | 6d 79 20 24 66 68 5f 73 63 68 65 6d 61 5f 6c 6f 63 61 6c 2c 20 22 3c 22 20 2e 20 24 73 65 6c 66 | my.$fh_schema_local,."<"...$self |
8ca0 | 2d 3e 47 65 74 56 65 72 73 69 6f 6e 46 69 6c 65 28 20 24 64 62 68 2c 20 24 52 54 3a 3a 4c 6f 63 | ->GetVersionFile(.$dbh,.$RT::Loc |
8cc0 | 61 6c 45 74 63 50 61 74 68 20 2e 20 22 2f 73 63 68 65 6d 61 2e 22 20 2e 20 24 64 62 5f 74 79 70 | alEtcPath..."/schema."...$db_typ |
8ce0 | 65 20 29 29 00 20 20 20 20 6d 79 20 24 68 61 73 5f 6c 6f 63 61 6c 20 3d 20 30 3b 00 00 20 20 20 | e.)).....my.$has_local.=.0;..... |
8d00 | 20 6f 70 65 6e 28 20 6d 79 20 24 66 68 5f 73 63 68 65 6d 61 2c 20 27 3c 27 2c 20 24 66 69 6c 65 | .open(.my.$fh_schema,.'<',.$file |
8d20 | 20 29 20 6f 72 20 64 69 65 20 24 21 3b 00 00 20 20 20 20 6d 79 20 28 40 73 63 68 65 6d 61 29 3b | .).or.die.$!;......my.(@schema); |
8d40 | 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 22 46 69 6c 65 | ......}.........return.(0,."File |
8d60 | 20 27 24 66 69 6c 65 27 20 64 6f 65 73 6e 27 74 20 65 78 69 73 74 20 6f 72 20 63 6f 75 6c 64 6e | .'$file'.doesn't.exist.or.couldn |
8d80 | 27 74 20 62 65 20 72 65 61 64 22 29 3b 00 20 20 20 20 75 6e 6c 65 73 73 20 28 20 2d 66 20 24 66 | 't.be.read");.....unless.(.-f.$f |
8da0 | 69 6c 65 20 26 26 20 2d 72 20 24 66 69 6c 65 20 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 | ile.&&.-r.$file.).{.....}....... |
8dc0 | 20 20 72 65 74 75 72 6e 20 28 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 66 69 6e 64 20 73 63 68 65 | ..return.(0,."Couldn't.find.sche |
8de0 | 6d 61 20 66 69 6c 65 28 73 29 20 27 24 66 69 6c 65 2a 27 22 29 3b 00 20 20 20 20 75 6e 6c 65 73 | ma.file(s).'$file*'");.....unles |
8e00 | 73 20 28 20 24 66 69 6c 65 20 29 20 7b 00 20 20 20 20 24 66 69 6c 65 20 3d 20 24 73 65 6c 66 2d | s.(.$file.).{.....$file.=.$self- |
8e20 | 3e 47 65 74 56 65 72 73 69 6f 6e 46 69 6c 65 28 20 24 64 62 68 2c 20 24 66 69 6c 65 20 29 3b 00 | >GetVersionFile(.$dbh,.$file.);. |
8e40 | 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 66 69 6c 65 20 3d 20 24 62 61 73 65 5f 70 61 74 | .....}.........$file.=.$base_pat |
8e60 | 68 3b 00 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 24 66 69 6c 65 20 3d 20 | h;.....}.else.{.........$file.=. |
8e80 | 24 62 61 73 65 5f 70 61 74 68 20 2e 20 22 2f 73 63 68 65 6d 61 2e 22 20 2e 20 24 64 62 5f 74 79 | $base_path..."/schema."...$db_ty |
8ea0 | 70 65 3b 00 20 20 20 20 69 66 20 28 20 2d 64 20 24 62 61 73 65 5f 70 61 74 68 20 29 20 7b 00 20 | pe;.....if.(.-d.$base_path.).{.. |
8ec0 | 20 20 20 6d 79 20 24 66 69 6c 65 3b 00 00 20 20 20 20 6d 79 20 24 64 62 5f 74 79 70 65 20 3d 20 | ...my.$file;......my.$db_type.=. |
8ee0 | 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 54 79 70 65 27 29 3b | RT->Config->Get('DatabaseType'); |
8f00 | 00 00 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 22 4e 6f 20 44 42 49 20 68 61 6e 64 6c 65 20 | ......return.(0,."No.DBI.handle. |
8f20 | 70 72 6f 76 69 64 65 64 22 29 20 75 6e 6c 65 73 73 20 24 64 62 68 3b 00 20 20 20 20 24 64 62 68 | provided").unless.$dbh;.....$dbh |
8f40 | 20 3d 20 24 73 65 6c 66 2d 3e 64 62 68 20 69 66 20 21 24 64 62 68 20 26 26 20 72 65 66 20 24 73 | .=.$self->dbh.if.!$dbh.&&.ref.$s |
8f60 | 65 6c 66 3b 00 00 20 20 20 20 6d 79 20 24 62 61 73 65 5f 70 61 74 68 20 3d 20 28 73 68 69 66 74 | elf;......my.$base_path.=.(shift |
8f80 | 20 7c 7c 20 24 52 54 3a 3a 45 74 63 50 61 74 68 29 3b 00 20 20 20 20 6d 79 20 24 64 62 68 20 20 | .||.$RT::EtcPath);.....my.$dbh.. |
8fa0 | 3d 20 73 68 69 66 74 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 73 | =.shift;.....my.$self.=.shift;.s |
8fc0 | 75 62 20 49 6e 73 65 72 74 53 63 68 65 6d 61 20 7b 00 00 3d 63 75 74 00 00 3d 68 65 61 64 32 20 | ub.InsertSchema.{..=cut..=head2. |
8fe0 | 49 6e 73 65 72 74 53 63 68 65 6d 61 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e 20 28 31 29 3b 00 | InsertSchema..}.....return.(1);. |
9000 | 61 64 00 00 37 00 00 00 03 02 00 00 00 10 00 00 6c 00 00 00 00 00 00 00 a6 0f 00 00 87 0f 00 00 | ad..7...........l............... |
9020 | 7b 0f 00 00 5a 0f 00 00 38 0f 00 00 11 0f 00 00 da 0e 00 00 d4 0e 00 00 c6 0e 00 00 c4 0e 00 00 | {...Z...8....................... |
9040 | c3 0e 00 00 af 0e 00 00 98 0e 00 00 96 0e 00 00 95 0e 00 00 93 0e 00 00 92 0e 00 00 91 0e 00 00 | ................................ |
9060 | 78 0e 00 00 77 0e 00 00 34 0e 00 00 f3 0d 00 00 b5 0d 00 00 8f 0d 00 00 8e 0d 00 00 58 0d 00 00 | x...w...4...................X... |
9080 | 57 0d 00 00 14 0d 00 00 13 0d 00 00 0e 0d 00 00 0d 0d 00 00 f5 0c 00 00 dc 0c 00 00 db 0c 00 00 | W............................... |
90a0 | cc 0c 00 00 cb 0c 00 00 9a 0c 00 00 94 0c 00 00 73 0c 00 00 72 0c 00 00 31 0c 00 00 0a 0c 00 00 | ................s...r...1....... |
90c0 | ea 0b 00 00 b1 0b 00 00 a7 0b 00 00 98 0b 00 00 58 0b 00 00 1f 0b 00 00 f6 0a 00 00 c2 0a 00 00 | ................X............... |
90e0 | 80 0a 00 00 32 0a 00 00 11 0a 00 00 eb 09 00 00 dc 09 00 00 af 09 00 00 a5 09 00 00 6a 09 00 00 | ....2.......................j... |
9100 | 64 09 00 00 63 09 00 00 32 09 00 00 15 09 00 00 f1 08 00 00 c0 08 00 00 ba 08 00 00 b9 08 00 00 | d...c...2....................... |
9120 | 8e 08 00 00 88 08 00 00 51 08 00 00 32 08 00 00 ee 07 00 00 c8 07 00 00 9e 07 00 00 73 07 00 00 | ........Q...2...............s... |
9140 | 53 07 00 00 48 07 00 00 29 07 00 00 e5 06 00 00 d4 06 00 00 9e 06 00 00 66 06 00 00 1e 06 00 00 | S...H...)...............f....... |
9160 | f4 05 00 00 c6 05 00 00 97 05 00 00 73 05 00 00 64 05 00 00 37 05 00 00 2d 05 00 00 f2 04 00 00 | ............s...d...7...-....... |
9180 | ec 04 00 00 eb 04 00 00 d7 04 00 00 82 04 00 00 2b 04 00 00 d2 03 00 00 94 03 00 00 5e 03 00 00 | ................+...........^... |
91a0 | 2c 03 00 00 10 03 00 00 cf 02 00 00 bd 02 00 00 b3 02 00 00 b2 02 00 00 7f 02 00 00 52 02 00 00 | ,...........................R... |
91c0 | 30 02 00 00 03 02 00 00 02 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | 0............................... |
91e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9200 | 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 44 6f 6d 61 69 6e 20 20 20 20 20 20 3d 3e 20 27 53 | ...............Domain......=>.'S |
9220 | 79 73 74 65 6d 49 6e 74 65 72 6e 61 6c 27 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 54 79 70 65 | ystemInternal',.............Type |
9240 | 20 20 20 20 20 20 20 20 3d 3e 20 24 6e 61 6d 65 2c 00 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 | ........=>.$name,.........my.(.$ |
9260 | 76 61 6c 2c 20 24 6d 73 67 20 29 20 3d 20 24 67 72 6f 75 70 2d 3e 5f 43 72 65 61 74 65 28 00 20 | val,.$msg.).=.$group->_Create(.. |
9280 | 20 20 20 20 20 20 20 24 67 72 6f 75 70 20 3d 20 52 54 3a 3a 47 72 6f 75 70 2d 3e 6e 65 77 28 20 | .......$group.=.RT::Group->new(. |
92a0 | 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 20 29 3b 00 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 | RT->SystemUser.);..........}.... |
92c0 | 20 20 20 20 20 20 20 20 20 6e 65 78 74 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 70 75 73 68 20 | .........next;.............push. |
92e0 | 40 77 61 72 6e 73 2c 20 22 53 79 73 74 65 6d 20 67 72 6f 75 70 20 27 24 6e 61 6d 65 27 20 61 6c | @warns,."System.group.'$name'.al |
9300 | 72 65 61 64 79 20 65 78 69 73 74 73 2e 22 3b 00 20 20 20 20 20 20 20 20 69 66 20 28 20 24 67 72 | ready.exists.";.........if.(.$gr |
9320 | 6f 75 70 2d 3e 69 64 20 29 20 7b 00 20 20 20 20 20 20 20 20 24 67 72 6f 75 70 2d 3e 4c 6f 61 64 | oup->id.).{.........$group->Load |
9340 | 53 79 73 74 65 6d 49 6e 74 65 72 6e 61 6c 47 72 6f 75 70 28 20 24 6e 61 6d 65 20 29 3b 00 20 20 | SystemInternalGroup(.$name.);... |
9360 | 20 20 20 20 20 20 6d 79 20 24 67 72 6f 75 70 20 3d 20 52 54 3a 3a 47 72 6f 75 70 2d 3e 6e 65 77 | ......my.$group.=.RT::Group->new |
9380 | 28 20 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 20 29 3b 00 20 20 20 20 66 6f 72 65 61 63 68 20 | (.RT->SystemUser.);.....foreach. |
93a0 | 6d 79 20 24 6e 61 6d 65 20 28 71 77 28 45 76 65 72 79 6f 6e 65 20 50 72 69 76 69 6c 65 67 65 64 | my.$name.(qw(Everyone.Privileged |
93c0 | 20 55 6e 70 72 69 76 69 6c 65 67 65 64 29 29 20 7b 00 20 20 20 20 23 20 24 73 65 6c 66 2d 3e 6c | .Unprivileged)).{.....#.$self->l |
93e0 | 6f 63 28 27 55 6e 70 72 69 76 69 6c 65 67 65 64 27 29 3b 20 23 20 46 6f 72 20 74 68 65 20 73 74 | oc('Unprivileged');.#.For.the.st |
9400 | 72 69 6e 67 20 65 78 74 72 61 63 74 6f 72 20 74 6f 20 67 65 74 20 61 20 73 74 72 69 6e 67 20 74 | ring.extractor.to.get.a.string.t |
9420 | 6f 20 6c 6f 63 61 6c 69 7a 65 00 20 20 20 20 23 20 24 73 65 6c 66 2d 3e 6c 6f 63 28 27 50 72 69 | o.localize.....#.$self->loc('Pri |
9440 | 76 69 6c 65 67 65 64 27 29 3b 20 23 20 46 6f 72 20 74 68 65 20 73 74 72 69 6e 67 20 65 78 74 72 | vileged');.#.For.the.string.extr |
9460 | 61 63 74 6f 72 20 74 6f 20 67 65 74 20 61 20 73 74 72 69 6e 67 20 74 6f 20 6c 6f 63 61 6c 69 7a | actor.to.get.a.string.to.localiz |
9480 | 65 00 20 20 20 20 23 20 24 73 65 6c 66 2d 3e 6c 6f 63 28 27 45 76 65 72 79 6f 6e 65 27 29 3b 20 | e.....#.$self->loc('Everyone');. |
94a0 | 23 20 46 6f 72 20 74 68 65 20 73 74 72 69 6e 67 20 65 78 74 72 61 63 74 6f 72 20 74 6f 20 67 65 | #.For.the.string.extractor.to.ge |
94c0 | 74 20 61 20 73 74 72 69 6e 67 20 74 6f 20 6c 6f 63 61 6c 69 7a 65 00 20 20 20 20 23 20 73 79 73 | t.a.string.to.localize.....#.sys |
94e0 | 74 65 6d 20 67 72 6f 75 70 73 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 44 42 49 78 3a 3a | tem.groups......}.........DBIx:: |
9500 | 53 65 61 72 63 68 42 75 69 6c 64 65 72 3a 3a 52 65 63 6f 72 64 3a 3a 43 61 63 68 61 62 6c 65 2d | SearchBuilder::Record::Cachable- |
9520 | 3e 46 6c 75 73 68 43 61 63 68 65 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 | >FlushCache;.........}.......... |
9540 | 20 20 20 72 65 74 75 72 6e 20 28 24 76 61 6c 2c 20 24 6d 73 67 29 20 75 6e 6c 65 73 73 20 24 76 | ...return.($val,.$msg).unless.$v |
9560 | 61 6c 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 | al;.............);.............. |
9580 | 20 20 20 4f 62 6a 65 63 74 49 64 20 20 20 20 20 20 3d 3e 20 31 2c 00 20 20 20 20 20 20 20 20 20 | ...ObjectId......=>.1,.......... |
95a0 | 20 20 20 20 20 20 20 4f 62 6a 65 63 74 54 79 70 65 20 20 20 20 3d 3e 20 27 52 54 3a 3a 53 79 73 | .......ObjectType....=>.'RT::Sys |
95c0 | 74 65 6d 27 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 69 67 68 74 4e 61 6d 65 20 | tem',.................RightName. |
95e0 | 20 20 20 20 3d 3e 20 27 53 75 70 65 72 55 73 65 72 27 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 | ....=>.'SuperUser',............. |
9600 | 20 20 20 20 50 72 69 6e 63 69 70 61 6c 54 79 70 65 20 3d 3e 20 27 47 72 6f 75 70 27 2c 00 20 20 | ....PrincipalType.=>.'Group',... |
9620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 72 69 6e 63 69 70 61 6c 49 64 20 20 20 3d 3e 20 41 | ..............PrincipalId...=>.A |
9640 | 43 4c 45 71 75 69 76 47 72 6f 75 70 49 64 28 20 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 2d 3e | CLEquivGroupId(.RT->SystemUser-> |
9660 | 49 64 20 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 76 61 6c 2c 20 24 6d 73 | Id.),.............my.(.$val,.$ms |
9680 | 67 20 29 20 3d 20 24 61 63 65 2d 3e 5f 42 6f 6f 74 73 74 72 61 70 43 72 65 61 74 65 28 00 20 20 | g.).=.$ace->_BootstrapCreate(... |
96a0 | 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 61 63 65 20 3d 20 52 54 3a 3a 41 43 45 2d 3e 6e 65 77 | ..........my.$ace.=.RT::ACE->new |
96c0 | 28 20 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 20 29 3b 00 20 20 20 20 20 20 20 20 7d 20 65 6c | (.RT->SystemUser.);.........}.el |
96e0 | 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 70 75 73 68 20 40 77 61 72 6e 73 2c 20 22 53 | se.{.............push.@warns,."S |
9700 | 79 73 74 65 6d 20 75 73 65 72 20 68 61 73 20 67 6c 6f 62 61 6c 20 53 75 70 65 72 55 73 65 72 20 | ystem.user.has.global.SuperUser. |
9720 | 72 69 67 68 74 2e 22 3b 00 20 20 20 20 20 20 20 20 69 66 20 28 20 24 74 65 73 74 5f 61 63 65 2d | right.";.........if.(.$test_ace- |
9740 | 3e 69 64 20 29 20 7b 00 20 20 20 20 20 20 20 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 4f | >id.).{.........);.............O |
9760 | 62 6a 65 63 74 49 64 20 20 20 20 20 20 3d 3e 20 31 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 4f | bjectId......=>.1,.............O |
9780 | 62 6a 65 63 74 54 79 70 65 20 20 20 20 3d 3e 20 27 52 54 3a 3a 53 79 73 74 65 6d 27 2c 00 20 20 | bjectType....=>.'RT::System',... |
97a0 | 20 20 20 20 20 20 20 20 20 20 52 69 67 68 74 4e 61 6d 65 20 20 20 20 20 3d 3e 20 27 53 75 70 65 | ..........RightName.....=>.'Supe |
97c0 | 72 55 73 65 72 27 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 50 72 69 6e 63 69 70 61 6c 54 79 70 | rUser',.............PrincipalTyp |
97e0 | 65 20 3d 3e 20 27 47 72 6f 75 70 27 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 50 72 69 6e 63 69 | e.=>.'Group',.............Princi |
9800 | 70 61 6c 49 64 20 20 20 3d 3e 20 41 43 4c 45 71 75 69 76 47 72 6f 75 70 49 64 28 20 52 54 2d 3e | palId...=>.ACLEquivGroupId(.RT-> |
9820 | 53 79 73 74 65 6d 55 73 65 72 2d 3e 49 64 20 29 2c 00 20 20 20 20 20 20 20 20 24 74 65 73 74 5f | SystemUser->Id.),.........$test_ |
9840 | 61 63 65 2d 3e 4c 6f 61 64 42 79 43 6f 6c 73 28 00 20 20 20 20 20 20 20 20 6d 79 20 24 74 65 73 | ace->LoadByCols(.........my.$tes |
9860 | 74 5f 61 63 65 20 3d 20 52 54 3a 3a 41 43 45 2d 3e 6e 65 77 28 20 52 54 2d 3e 53 79 73 74 65 6d | t_ace.=.RT::ACE->new(.RT->System |
9880 | 55 73 65 72 20 29 3b 00 20 20 20 20 7b 00 20 20 20 20 23 20 67 72 61 6e 74 20 53 75 70 65 72 55 | User.);.....{.....#.grant.SuperU |
98a0 | 73 65 72 20 72 69 67 68 74 20 74 6f 20 73 79 73 74 65 6d 20 75 73 65 72 00 00 20 20 20 20 7d 00 | ser.right.to.system.user......}. |
98c0 | 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 6c 6f 61 | ........return.(0,."Couldn't.loa |
98e0 | 64 20 73 79 73 74 65 6d 20 75 73 65 72 22 29 3b 00 20 20 20 20 75 6e 6c 65 73 73 20 28 20 52 54 | d.system.user");.....unless.(.RT |
9900 | 2d 3e 53 79 73 74 65 6d 55 73 65 72 2d 3e 69 64 20 29 20 7b 00 20 20 20 20 52 54 3a 3a 49 6e 69 | ->SystemUser->id.).{.....RT::Ini |
9920 | 74 53 79 73 74 65 6d 4f 62 6a 65 63 74 73 28 29 3b 00 20 20 20 20 23 20 69 6e 69 74 20 52 54 3a | tSystemObjects();.....#.init.RT: |
9940 | 3a 53 79 73 74 65 6d 55 73 65 72 20 61 6e 64 20 52 54 3a 3a 53 79 73 74 65 6d 20 6f 62 6a 65 63 | :SystemUser.and.RT::System.objec |
9960 | 74 73 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 44 42 49 78 3a 3a 53 65 61 72 63 68 42 75 | ts......}.........DBIx::SearchBu |
9980 | 69 6c 64 65 72 3a 3a 52 65 63 6f 72 64 3a 3a 43 61 63 68 61 62 6c 65 2d 3e 46 6c 75 73 68 43 61 | ilder::Record::Cachable->FlushCa |
99a0 | 63 68 65 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 | che;.........}.............retur |
99c0 | 6e 20 28 24 76 61 6c 2c 20 24 6d 73 67 29 20 75 6e 6c 65 73 73 20 24 76 61 6c 3b 00 20 20 20 20 | n.($val,.$msg).unless.$val;..... |
99e0 | 20 20 20 20 20 20 20 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 61 73 74 55 | ........);.................LastU |
9a00 | 70 64 61 74 65 64 42 79 20 3d 3e 20 27 31 27 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | pdatedBy.=>.'1',................ |
9a20 | 20 43 72 65 61 74 6f 72 20 20 3d 3e 20 27 31 27 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .Creator..=>.'1',............... |
9a40 | 20 20 20 20 20 20 2e 20 27 49 74 20 69 73 20 69 6e 74 65 67 72 61 6c 20 74 6f 20 52 54 5c 27 73 | ........'It.is.integral.to.RT\'s |
9a60 | 20 69 6e 74 65 72 6e 61 6c 20 64 61 74 61 62 61 73 65 20 73 74 72 75 63 74 75 72 65 73 27 2c 00 | .internal.database.structures',. |
9a80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 6d 6d 65 6e 74 73 20 3d 3e 20 27 44 6f 20 | ................Comments.=>.'Do. |
9aa0 | 6e 6f 74 20 64 65 6c 65 74 65 20 6f 72 20 6d 6f 64 69 66 79 20 74 68 69 73 20 75 73 65 72 2e 20 | not.delete.or.modify.this.user.. |
9ac0 | 27 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 61 6c 4e 61 6d 65 20 3d 3e 20 27 54 | '.................RealName.=>.'T |
9ae0 | 68 65 20 52 54 20 53 79 73 74 65 6d 20 69 74 73 65 6c 66 27 2c 00 20 20 20 20 20 20 20 20 20 20 | he.RT.System.itself',........... |
9b00 | 20 20 20 20 20 20 4e 61 6d 65 20 20 20 20 20 3d 3e 20 27 52 54 5f 53 79 73 74 65 6d 27 2c 00 20 | ......Name.....=>.'RT_System',.. |
9b20 | 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 76 61 6c 2c 20 24 6d 73 67 20 29 20 3d 20 24 | ...........my.(.$val,.$msg.).=.$ |
9b40 | 75 73 65 72 2d 3e 5f 42 6f 6f 74 73 74 72 61 70 43 72 65 61 74 65 28 00 20 20 20 20 20 20 20 20 | user->_BootstrapCreate(......... |
9b60 | 20 20 20 20 6d 79 20 24 75 73 65 72 20 3d 20 52 54 3a 3a 55 73 65 72 2d 3e 6e 65 77 28 20 52 54 | ....my.$user.=.RT::User->new(.RT |
9b80 | 3a 3a 43 75 72 72 65 6e 74 55 73 65 72 2d 3e 6e 65 77 28 29 20 29 3b 00 20 20 20 20 20 20 20 20 | ::CurrentUser->new().);......... |
9ba0 | 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 70 75 73 | else.{.........}.............pus |
9bc0 | 68 20 40 77 61 72 6e 73 2c 20 22 46 6f 75 6e 64 20 73 79 73 74 65 6d 20 75 73 65 72 20 69 6e 20 | h.@warns,."Found.system.user.in. |
9be0 | 74 68 65 20 44 42 2e 22 3b 00 20 20 20 20 20 20 20 20 69 66 20 28 20 24 74 65 73 74 5f 75 73 65 | the.DB.";.........if.(.$test_use |
9c00 | 72 2d 3e 69 64 20 29 20 7b 00 20 20 20 20 20 20 20 20 24 74 65 73 74 5f 75 73 65 72 2d 3e 4c 6f | r->id.).{.........$test_user->Lo |
9c20 | 61 64 28 27 52 54 5f 53 79 73 74 65 6d 27 29 3b 00 20 20 20 20 20 20 20 20 6d 79 20 24 74 65 73 | ad('RT_System');.........my.$tes |
9c40 | 74 5f 75 73 65 72 20 3d 20 52 54 3a 3a 55 73 65 72 2d 3e 6e 65 77 28 20 52 54 3a 3a 43 75 72 72 | t_user.=.RT::User->new(.RT::Curr |
9c60 | 65 6e 74 55 73 65 72 2d 3e 6e 65 77 28 29 20 29 3b 00 00 20 20 20 20 20 20 20 20 72 65 71 75 69 | entUser->new().);..........requi |
9c80 | 72 65 20 52 54 3a 3a 43 75 72 72 65 6e 74 55 73 65 72 3b 00 20 20 20 20 7b 00 20 20 20 20 23 20 | re.RT::CurrentUser;.....{.....#. |
9ca0 | 63 72 65 61 74 65 20 52 54 5f 53 79 73 74 65 6d 20 75 73 65 72 20 61 6e 64 20 67 72 61 6e 74 20 | create.RT_System.user.and.grant. |
9cc0 | 68 69 6d 20 72 69 67 68 74 73 00 00 20 20 20 20 6d 79 20 40 77 61 72 6e 73 3b 00 00 20 20 20 20 | him.rights......my.@warns;...... |
9ce0 | 6d 79 20 24 73 65 6c 66 20 20 20 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 49 6e 73 65 72 74 49 | my.$self....=.shift;.sub.InsertI |
9d00 | 6e 69 74 69 61 6c 44 61 74 61 20 7b 00 00 3d 63 75 74 00 00 49 74 27 73 20 73 61 66 65 20 74 6f | nitialData.{..=cut..It's.safe.to |
9d20 | 20 63 61 6c 6c 20 74 68 69 73 20 6d 65 74 68 6f 64 20 65 76 65 6e 20 69 66 20 74 68 6f 73 65 20 | .call.this.method.even.if.those. |
9d40 | 6f 62 6a 65 63 74 73 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 2e 00 00 54 61 6b 65 73 20 6e 6f | objects.already.exist...Takes.no |
9d60 | 20 61 72 67 75 6d 65 6e 74 73 2e 20 52 65 74 75 72 6e 73 20 73 74 61 74 75 73 20 61 6e 64 20 6d | .arguments..Returns.status.and.m |
9d80 | 65 73 73 61 67 65 20 74 75 70 6c 65 2e 00 00 49 6e 73 65 72 74 44 61 74 61 20 6f 72 20 61 6e 6f | essage.tuple...InsertData.or.ano |
9da0 | 74 68 65 72 20 77 61 79 20 74 6f 20 64 6f 20 74 68 61 74 2e 00 64 6f 65 73 6e 27 74 20 69 6e 73 | ther.way.to.do.that..doesn't.ins |
9dc0 | 65 72 74 20 61 6e 79 20 72 65 61 6c 20 75 73 65 72 73 20 6c 69 6b 65 20 27 72 6f 6f 74 27 20 61 | ert.any.real.users.like.'root'.a |
9de0 | 6e 64 20 79 6f 75 20 68 61 76 65 20 74 6f 20 75 73 65 00 69 6e 74 65 72 6e 61 6c 20 67 72 6f 75 | nd.you.have.to.use.internal.grou |
9e00 | 70 73 20 61 6e 64 20 6f 74 68 65 72 20 72 65 63 6f 72 64 73 20 72 65 71 75 69 72 65 64 2e 20 48 | ps.and.other.records.required..H |
9e20 | 6f 77 65 76 65 72 2c 20 74 68 69 73 20 6d 65 74 68 6f 64 00 49 6e 73 65 72 74 73 20 73 79 73 74 | owever,.this.method.Inserts.syst |
9e40 | 65 6d 20 6f 62 6a 65 63 74 73 20 69 6e 74 6f 20 52 54 27 73 20 44 42 2c 20 6c 69 6b 65 20 73 79 | em.objects.into.RT's.DB,.like.sy |
9e60 | 73 74 65 6d 20 75 73 65 72 20 6f 72 20 27 6e 6f 62 6f 64 79 27 2c 00 00 3d 68 65 61 64 32 20 49 | stem.user.or.'nobody',..=head2.I |
9e80 | 6e 73 65 72 74 49 6e 69 74 69 61 6c 44 61 74 61 00 00 00 7d 00 00 7d 00 20 20 20 20 72 65 74 75 | nsertInitialData...}..}.....retu |
9ea0 | 72 6e 20 6b 65 79 73 20 25 77 6f 72 64 3b 00 73 75 62 20 76 65 72 73 69 6f 6e 5f 77 6f 72 64 73 | rn.keys.%word;.sub.version_words |
9ec0 | 20 7b 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e 20 30 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 | .{..}.....return.0;.....}....... |
9ee0 | 20 20 72 65 74 75 72 6e 20 24 61 5b 24 69 5d 20 3c 3d 3e 20 24 62 5b 24 69 5d 20 69 66 20 24 61 | ..return.$a[$i].<=>.$b[$i].if.$a |
9f00 | 5b 24 69 5d 20 3c 3d 3e 20 24 62 5b 24 69 5d 3b 00 20 20 20 20 66 6f 72 20 28 20 6d 79 20 24 69 | [$i].<=>.$b[$i];.....for.(.my.$i |
9f20 | 20 3d 20 30 3b 20 24 69 20 3c 20 40 61 3b 20 24 69 2b 2b 20 29 20 7b 00 20 20 20 20 20 20 20 20 | .=.0;.$i.<.@a;.$i++.).{......... |
9f40 | 3a 20 70 75 73 68 20 40 61 2c 20 28 30 29 20 78 20 28 40 62 2d 40 61 29 3b 00 20 20 20 20 20 20 | :.push.@a,.(0).x.(@b-@a);....... |
9f60 | 20 20 3f 20 70 75 73 68 20 40 62 2c 20 28 30 29 20 78 20 28 40 61 2d 40 62 29 00 20 20 20 20 40 | ..?.push.@b,.(0).x.(@a-@b).....@ |
9f80 | 61 20 3e 20 40 62 00 20 20 20 20 20 20 20 20 73 70 6c 69 74 20 2f 28 5b 5e 30 2d 39 5d 2b 29 2f | a.>.@b.........split./([^0-9]+)/ |
9fa0 | 2c 20 24 62 3b 00 20 20 20 20 6d 79 20 40 62 20 3d 20 67 72 65 70 20 64 65 66 69 6e 65 64 2c 20 | ,.$b;.....my.@b.=.grep.defined,. |
9fc0 | 6d 61 70 20 7b 20 2f 5e 5b 30 2d 39 5d 2b 24 2f 3f 20 24 5f 20 3a 20 2f 5e 5b 61 2d 7a 41 2d 5a | map.{./^[0-9]+$/?.$_.:./^[a-zA-Z |
9fe0 | 5d 2b 24 2f 3f 20 24 77 6f 72 64 7b 24 5f 7d 7c 7c 20 2d 31 30 20 3a 20 75 6e 64 65 66 20 7d 00 | ]+$/?.$word{$_}||.-10.:.undef.}. |
a000 | 61 64 00 00 01 00 00 00 d1 01 00 00 00 10 00 00 6d 00 00 00 00 00 00 00 be 0f 00 00 9f 0f 00 00 | ad..............m............... |
a020 | 80 0f 00 00 75 0f 00 00 4c 0f 00 00 46 0f 00 00 45 0f 00 00 38 0f 00 00 32 0f 00 00 fe 0e 00 00 | ....u...L...F...E...8...2....... |
a040 | df 0e 00 00 c4 0e 00 00 89 0e 00 00 7f 0e 00 00 70 0e 00 00 41 0e 00 00 1b 0e 00 00 e7 0d 00 00 | ................p...A........... |
a060 | 96 0d 00 00 5c 0d 00 00 3b 0d 00 00 2c 0d 00 00 ff 0c 00 00 f5 0c 00 00 f4 0c 00 00 a4 0c 00 00 | ....\...;...,................... |
a080 | 5e 0c 00 00 4d 0c 00 00 0c 0c 00 00 e6 0b 00 00 bf 0b 00 00 b0 0b 00 00 83 0b 00 00 79 0b 00 00 | ^...M.......................y... |
a0a0 | 73 0b 00 00 72 0b 00 00 4b 0b 00 00 2e 0b 00 00 2d 0b 00 00 14 0b 00 00 dc 0a 00 00 a6 0a 00 00 | s...r...K.......-............... |
a0c0 | 78 0a 00 00 5c 0a 00 00 1c 0a 00 00 0a 0a 00 00 00 0a 00 00 ff 09 00 00 cc 09 00 00 9f 09 00 00 | x...\........................... |
a0e0 | 7d 09 00 00 4f 09 00 00 09 09 00 00 ea 08 00 00 cb 08 00 00 c0 08 00 00 97 08 00 00 91 08 00 00 | }...O........................... |
a100 | 90 08 00 00 50 08 00 00 3d 08 00 00 3c 08 00 00 19 08 00 00 17 08 00 00 16 08 00 00 04 08 00 00 | ....P...=...<................... |
a120 | 03 08 00 00 c3 07 00 00 c2 07 00 00 bd 07 00 00 bc 07 00 00 ab 07 00 00 91 07 00 00 77 07 00 00 | ............................w... |
a140 | 58 07 00 00 43 07 00 00 24 07 00 00 19 07 00 00 12 07 00 00 11 07 00 00 bf 06 00 00 6b 06 00 00 | X...C...$...................k... |
a160 | 1c 06 00 00 c6 05 00 00 77 05 00 00 76 05 00 00 68 05 00 00 29 05 00 00 0a 05 00 00 b4 04 00 00 | ........w...v...h...)........... |
a180 | b3 04 00 00 9d 04 00 00 63 04 00 00 44 04 00 00 2e 04 00 00 d9 03 00 00 cf 03 00 00 aa 03 00 00 | ........c...D................... |
a1a0 | a4 03 00 00 8f 03 00 00 5d 03 00 00 38 03 00 00 fa 02 00 00 cb 02 00 00 93 02 00 00 5e 02 00 00 | ........]...8...............^... |
a1c0 | 1e 02 00 00 fd 01 00 00 d1 01 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
a1e0 | 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 20 24 6d 73 67 20 29 3b 00 20 20 20 | .$RT::Logger->error(.$msg.);.... |
a200 | 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 72 65 74 75 72 6e 20 29 20 7b 00 20 20 | .........unless.(.$return.).{... |
a220 | 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 72 65 74 75 72 6e 2c 20 24 6d 73 67 20 29 20 3d | ..........my.(.$return,.$msg.).= |
a240 | 20 24 6e 65 77 5f 65 6e 74 72 79 2d 3e 5f 43 72 65 61 74 65 28 25 24 69 74 65 6d 29 3b 00 20 20 | .$new_entry->_Create(%$item);... |
a260 | 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 6d 65 6d 62 65 72 73 20 3d 20 64 65 6c 65 74 65 20 24 | ..........my.$members.=.delete.$ |
a280 | 69 74 65 6d 2d 3e 7b 27 4d 65 6d 62 65 72 73 27 7d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d | item->{'Members'};.............m |
a2a0 | 79 20 24 6d 65 6d 62 65 72 5f 6f 66 20 3d 20 64 65 6c 65 74 65 20 24 69 74 65 6d 2d 3e 7b 27 4d | y.$member_of.=.delete.$item->{'M |
a2c0 | 65 6d 62 65 72 4f 66 27 7d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 24 69 74 65 6d 2d 3e 7b 44 | emberOf'};.............$item->{D |
a2e0 | 6f 6d 61 69 6e 7d 20 7c 7c 3d 20 27 55 73 65 72 44 65 66 69 6e 65 64 27 3b 00 20 20 20 20 20 20 | omain}.||=.'UserDefined';....... |
a300 | 20 20 20 20 20 20 6d 79 20 24 6e 65 77 5f 65 6e 74 72 79 20 3d 20 52 54 3a 3a 47 72 6f 75 70 2d | ......my.$new_entry.=.RT::Group- |
a320 | 3e 6e 65 77 28 20 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 20 29 3b 00 20 20 20 20 20 20 20 20 | >new(.RT->SystemUser.);......... |
a340 | 66 6f 72 65 61 63 68 20 6d 79 20 24 69 74 65 6d 20 28 40 47 72 6f 75 70 73 29 20 7b 00 20 20 20 | foreach.my.$item.(@Groups).{.... |
a360 | 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 43 72 65 61 74 69 6e | .....$RT::Logger->debug("Creatin |
a380 | 67 20 67 72 6f 75 70 73 2e 2e 2e 22 29 3b 00 20 20 20 20 69 66 20 28 20 40 47 72 6f 75 70 73 20 | g.groups...");.....if.(.@Groups. |
a3a0 | 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 | ).{.....}.........$RT::Logger->d |
a3c0 | 65 62 75 67 28 22 44 6f 6e 65 2e 22 29 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 | ebug("Done.");.........}........ |
a3e0 | 20 20 20 20 20 65 76 61 6c 20 7b 20 24 5f 2d 3e 28 29 3b 20 31 20 7d 20 6f 72 20 72 65 74 75 72 | .....eval.{.$_->();.1.}.or.retur |
a400 | 6e 20 28 30 2c 20 22 4f 6e 65 20 6f 66 20 69 6e 69 74 69 61 6c 20 66 75 6e 63 74 69 6f 6e 73 20 | n.(0,."One.of.initial.functions. |
a420 | 66 61 69 6c 65 64 3a 20 24 40 22 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 63 61 6c 20 | failed:.$@");.............local. |
a440 | 24 40 3b 00 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 20 40 49 6e 69 74 69 61 6c 20 29 | $@;.........foreach.(.@Initial.) |
a460 | 20 7b 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 52 | .{.........$RT::Logger->debug("R |
a480 | 75 6e 6e 69 6e 67 20 69 6e 69 74 69 61 6c 20 61 63 74 69 6f 6e 73 2e 2e 2e 22 29 3b 00 20 20 20 | unning.initial.actions...");.... |
a4a0 | 20 69 66 20 28 20 40 49 6e 69 74 69 61 6c 20 29 20 7b 00 00 20 20 20 20 20 20 6f 72 20 72 65 74 | .if.(.@Initial.).{........or.ret |
a4c0 | 75 72 6e 20 28 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 6c 6f 61 64 20 64 61 74 61 20 66 72 6f 6d | urn.(0,."Couldn't.load.data.from |
a4e0 | 20 27 24 64 61 74 61 66 69 6c 65 27 20 66 6f 72 20 69 6d 70 6f 72 74 3a 5c 6e 5c 6e 45 52 52 4f | .'$datafile'.for.import:\n\nERRO |
a500 | 52 3a 22 2e 20 24 40 29 3b 00 20 20 20 20 65 76 61 6c 20 7b 20 72 65 71 75 69 72 65 20 24 64 61 | R:"..$@);.....eval.{.require.$da |
a520 | 74 61 66 69 6c 65 20 7d 00 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 | tafile.}.....$RT::Logger->debug( |
a540 | 22 47 6f 69 6e 67 20 74 6f 20 6c 6f 61 64 20 27 24 64 61 74 61 66 69 6c 65 27 20 64 61 74 61 20 | "Going.to.load.'$datafile'.data. |
a560 | 66 69 6c 65 22 29 3b 00 20 20 20 20 6c 6f 63 61 6c 20 24 40 3b 00 00 20 20 20 20 20 20 20 20 20 | file");.....local.$@;........... |
a580 | 20 20 40 54 65 6d 70 6c 61 74 65 73 2c 20 40 43 75 73 74 6f 6d 46 69 65 6c 64 73 2c 20 40 53 63 | ..@Templates,.@CustomFields,.@Sc |
a5a0 | 72 69 70 73 2c 20 40 41 74 74 72 69 62 75 74 65 73 2c 20 40 49 6e 69 74 69 61 6c 2c 20 40 46 69 | rips,.@Attributes,.@Initial,.@Fi |
a5c0 | 6e 61 6c 29 3b 00 20 20 20 20 6c 6f 63 61 6c 20 28 40 47 72 6f 75 70 73 2c 20 40 55 73 65 72 73 | nal);.....local.(@Groups,.@Users |
a5e0 | 2c 20 40 4d 65 6d 62 65 72 73 2c 20 40 41 43 4c 2c 20 40 51 75 65 75 65 73 2c 20 40 53 63 72 69 | ,.@Members,.@ACL,.@Queues,.@Scri |
a600 | 70 41 63 74 69 6f 6e 73 2c 20 40 53 63 72 69 70 43 6f 6e 64 69 74 69 6f 6e 73 2c 00 20 20 20 20 | pActions,.@ScripConditions,..... |
a620 | 20 20 20 20 20 20 20 40 54 65 6d 70 6c 61 74 65 73 2c 20 40 43 75 73 74 6f 6d 46 69 65 6c 64 73 | .......@Templates,.@CustomFields |
a640 | 2c 20 40 53 63 72 69 70 73 2c 20 40 41 74 74 72 69 62 75 74 65 73 2c 20 40 49 6e 69 74 69 61 6c | ,.@Scrips,.@Attributes,.@Initial |
a660 | 2c 20 40 46 69 6e 61 6c 29 3b 00 20 20 20 20 6f 75 72 20 28 40 47 72 6f 75 70 73 2c 20 40 55 73 | ,.@Final);.....our.(@Groups,.@Us |
a680 | 65 72 73 2c 20 40 4d 65 6d 62 65 72 73 2c 20 40 41 43 4c 2c 20 40 51 75 65 75 65 73 2c 20 40 53 | ers,.@Members,.@ACL,.@Queues,.@S |
a6a0 | 63 72 69 70 41 63 74 69 6f 6e 73 2c 20 40 53 63 72 69 70 43 6f 6e 64 69 74 69 6f 6e 73 2c 00 20 | cripActions,.@ScripConditions,.. |
a6c0 | 20 20 20 23 20 53 6c 75 72 70 20 69 6e 20 73 74 75 66 66 20 74 6f 20 69 6e 73 65 72 74 20 66 72 | ...#.Slurp.in.stuff.to.insert.fr |
a6e0 | 6f 6d 20 74 68 65 20 64 61 74 61 66 69 6c 65 2e 20 50 6f 73 73 69 62 6c 65 20 74 68 69 6e 67 73 | om.the.datafile..Possible.things |
a700 | 20 74 6f 20 67 6f 20 69 6e 20 68 65 72 65 3a 2d 00 00 20 20 20 20 29 3b 00 20 20 20 20 20 20 20 | .to.go.in.here:-......);........ |
a720 | 20 40 5f 00 20 20 20 20 20 20 20 20 64 69 73 63 6f 6e 6e 65 63 74 5f 61 66 74 65 72 20 3d 3e 20 | .@_.........disconnect_after.=>. |
a740 | 31 2c 00 20 20 20 20 6d 79 20 25 61 72 67 73 20 20 20 20 20 3d 20 28 00 20 20 20 20 6d 79 20 24 | 1,.....my.%args.....=.(.....my.$ |
a760 | 72 6f 6f 74 5f 70 61 73 73 77 6f 72 64 20 3d 20 73 68 69 66 74 3b 00 20 20 20 20 6d 79 20 24 64 | root_password.=.shift;.....my.$d |
a780 | 61 74 61 66 69 6c 65 20 3d 20 73 68 69 66 74 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 20 20 | atafile.=.shift;.....my.$self... |
a7a0 | 20 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 49 6e 73 65 72 74 44 61 74 61 20 7b 00 00 3d 63 75 | ..=.shift;.sub.InsertData.{..=cu |
a7c0 | 74 00 00 4c 6f 61 64 20 73 6f 6d 65 20 73 6f 72 74 20 6f 66 20 64 61 74 61 20 69 6e 74 6f 20 74 | t..Load.some.sort.of.data.into.t |
a7e0 | 68 65 20 64 61 74 61 62 61 73 65 2c 20 74 61 6b 65 73 20 70 61 74 68 20 74 6f 20 61 20 66 69 6c | he.database,.takes.path.to.a.fil |
a800 | 65 2e 00 00 3d 68 65 61 64 32 20 49 6e 73 65 72 74 44 61 74 61 00 00 7d 00 20 20 20 20 72 65 74 | e...=head2.InsertData..}.....ret |
a820 | 75 72 6e 20 28 31 2c 20 6a 6f 69 6e 20 22 5c 6e 22 2c 20 40 77 61 72 6e 73 29 3b 00 00 20 20 20 | urn.(1,.join."\n",.@warns);..... |
a840 | 20 20 20 20 20 69 66 20 40 77 61 72 6e 73 3b 00 20 20 20 20 70 75 73 68 20 40 77 61 72 6e 73 2c | .....if.@warns;.....push.@warns, |
a860 | 20 22 59 6f 75 20 61 70 70 65 61 72 20 74 6f 20 68 61 76 65 20 61 20 66 75 6e 63 74 69 6f 6e 61 | ."You.appear.to.have.a.functiona |
a880 | 6c 20 52 54 20 64 61 74 61 62 61 73 65 2e 22 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 72 | l.RT.database."......}.........r |
a8a0 | 65 74 75 72 6e 20 28 24 76 61 6c 2c 20 24 6d 73 67 29 20 75 6e 6c 65 73 73 20 24 76 61 6c 3b 00 | eturn.($val,.$msg).unless.$val;. |
a8c0 | 20 20 20 20 20 20 20 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 73 74 61 6e 63 65 20 | ........);.............Instance. |
a8e0 | 20 20 20 3d 3e 20 27 27 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 4e 61 6d 65 20 20 20 20 20 20 | ...=>.'',.............Name...... |
a900 | 20 20 3d 3e 20 27 27 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 44 65 73 63 72 69 70 74 69 6f 6e | ..=>.'',.............Description |
a920 | 20 3d 3e 20 27 53 79 73 74 65 6d 52 6f 6c 65 67 72 6f 75 70 20 66 6f 72 20 69 6e 74 65 72 6e 61 | .=>.'SystemRolegroup.for.interna |
a940 | 6c 20 75 73 65 27 2c 20 20 23 20 6c 6f 63 00 20 20 20 20 20 20 20 20 20 20 20 20 44 6f 6d 61 69 | l.use',..#.loc.............Domai |
a960 | 6e 20 20 20 20 20 20 3d 3e 20 27 52 54 3a 3a 53 79 73 74 65 6d 2d 52 6f 6c 65 27 2c 00 20 20 20 | n......=>.'RT::System-Role',.... |
a980 | 20 20 20 20 20 20 20 20 20 54 79 70 65 20 20 20 20 20 20 20 20 3d 3e 20 24 6e 61 6d 65 2c 00 20 | .........Type........=>.$name,.. |
a9a0 | 20 20 20 20 20 20 20 6d 79 20 28 20 24 76 61 6c 2c 20 24 6d 73 67 20 29 20 3d 20 24 67 72 6f 75 | .......my.(.$val,.$msg.).=.$grou |
a9c0 | 70 2d 3e 5f 43 72 65 61 74 65 28 00 20 20 20 20 20 20 20 20 24 67 72 6f 75 70 20 3d 20 52 54 3a | p->_Create(.........$group.=.RT: |
a9e0 | 3a 47 72 6f 75 70 2d 3e 6e 65 77 28 20 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 20 29 3b 00 00 | :Group->new(.RT->SystemUser.);.. |
aa00 | 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 3b 00 20 20 20 20 | ........}.............next;..... |
aa20 | 20 20 20 20 20 20 20 20 70 75 73 68 20 40 77 61 72 6e 73 2c 20 22 53 79 73 74 65 6d 20 72 6f 6c | ........push.@warns,."System.rol |
aa40 | 65 20 27 24 6e 61 6d 65 27 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2e 22 3b 00 20 20 20 20 | e.'$name'.already.exists.";..... |
aa60 | 20 20 20 20 69 66 20 28 20 24 67 72 6f 75 70 2d 3e 69 64 20 29 20 7b 00 20 20 20 20 20 20 20 20 | ....if.(.$group->id.).{......... |
aa80 | 24 67 72 6f 75 70 2d 3e 4c 6f 61 64 53 79 73 74 65 6d 52 6f 6c 65 47 72 6f 75 70 28 20 24 6e 61 | $group->LoadSystemRoleGroup(.$na |
aaa0 | 6d 65 20 29 3b 00 20 20 20 20 20 20 20 20 6d 79 20 24 67 72 6f 75 70 20 3d 20 52 54 3a 3a 47 72 | me.);.........my.$group.=.RT::Gr |
aac0 | 6f 75 70 2d 3e 6e 65 77 28 20 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 20 29 3b 00 20 20 20 20 | oup->new(.RT->SystemUser.);..... |
aae0 | 66 6f 72 65 61 63 68 20 6d 79 20 24 6e 61 6d 65 20 28 71 77 28 4f 77 6e 65 72 20 52 65 71 75 65 | foreach.my.$name.(qw(Owner.Reque |
ab00 | 73 74 6f 72 20 43 63 20 41 64 6d 69 6e 43 63 29 29 20 7b 00 20 20 20 20 23 20 73 79 73 74 65 6d | stor.Cc.AdminCc)).{.....#.system |
ab20 | 20 72 6f 6c 65 20 67 72 6f 75 70 73 00 00 20 20 20 20 52 54 3a 3a 49 6e 69 74 53 79 73 74 65 6d | .role.groups......RT::InitSystem |
ab40 | 4f 62 6a 65 63 74 73 28 29 3b 00 20 20 20 20 23 20 72 65 72 75 6e 20 74 6f 20 67 65 74 20 69 6e | Objects();.....#.rerun.to.get.in |
ab60 | 69 74 20 4e 6f 62 6f 64 79 20 61 73 20 77 65 6c 6c 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 | it.Nobody.as.well......}........ |
ab80 | 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 24 76 61 6c 2c 20 24 6d 73 | .}.............return.($val,.$ms |
aba0 | 67 29 20 75 6e 6c 65 73 73 20 24 76 61 6c 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 00 20 | g).unless.$val;.............);.. |
abc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 62 6a 65 63 74 20 3d 3e 20 24 52 54 3a 3a 53 79 | ...............Object.=>.$RT::Sy |
abe0 | 73 74 65 6d 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 69 67 68 74 20 3d 3e 20 27 | stem,.................Right.=>.' |
ac00 | 4f 77 6e 54 69 63 6b 65 74 27 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 76 61 | OwnTicket',.............my.(.$va |
ac20 | 6c 2c 20 24 6d 73 67 20 29 20 3d 20 24 75 73 65 72 2d 3e 50 72 69 6e 63 69 70 61 6c 4f 62 6a 2d | l,.$msg.).=.$user->PrincipalObj- |
ac40 | 3e 47 72 61 6e 74 52 69 67 68 74 28 00 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 | >GrantRight(.........}.else.{... |
ac60 | 20 20 20 20 20 20 20 20 20 20 70 75 73 68 20 40 77 61 72 6e 73 2c 20 22 55 73 65 72 20 27 4e 6f | ..........push.@warns,."User.'No |
ac80 | 62 6f 64 79 27 20 68 61 73 20 67 6c 6f 62 61 6c 20 4f 77 6e 54 69 63 6b 65 74 20 72 69 67 68 74 | body'.has.global.OwnTicket.right |
aca0 | 2e 22 3b 00 20 20 20 20 20 20 20 20 69 66 20 28 20 24 75 73 65 72 2d 3e 48 61 73 52 69 67 68 74 | .";.........if.(.$user->HasRight |
acc0 | 28 20 52 69 67 68 74 20 3d 3e 20 27 4f 77 6e 54 69 63 6b 65 74 27 2c 20 4f 62 6a 65 63 74 20 3d | (.Right.=>.'OwnTicket',.Object.= |
ace0 | 3e 20 24 52 54 3a 3a 53 79 73 74 65 6d 20 29 20 29 20 7b 00 00 20 20 20 20 20 20 20 20 7d 00 20 | >.$RT::System.).).{..........}.. |
ad00 | 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 24 76 61 6c 2c 20 24 6d 73 67 29 20 75 | ...........return.($val,.$msg).u |
ad20 | 6e 6c 65 73 73 20 24 76 61 6c 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 00 20 20 20 20 20 | nless.$val;.............);...... |
ad40 | 20 20 20 20 20 20 20 20 20 20 20 50 72 69 76 69 6c 65 67 65 64 20 3d 3e 20 30 2c 00 20 20 20 20 | ...........Privileged.=>.0,..... |
ad60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 27 74 6f 20 52 54 5c 27 73 20 69 6e 74 65 72 | .................'to.RT\'s.inter |
ad80 | 6e 61 6c 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 73 27 2c 00 20 20 20 20 20 20 20 20 20 20 | nal.data.structures',........... |
ada0 | 20 20 20 20 20 20 43 6f 6d 6d 65 6e 74 73 20 3d 3e 20 27 44 6f 20 6e 6f 74 20 64 65 6c 65 74 65 | ......Comments.=>.'Do.not.delete |
adc0 | 20 6f 72 20 6d 6f 64 69 66 79 20 74 68 69 73 20 75 73 65 72 2e 20 49 74 20 69 73 20 69 6e 74 65 | .or.modify.this.user..It.is.inte |
ade0 | 67 72 61 6c 20 27 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 61 6c 4e 61 6d 65 20 | gral.'.................RealName. |
ae00 | 3d 3e 20 27 4e 6f 62 6f 64 79 20 69 6e 20 70 61 72 74 69 63 75 6c 61 72 27 2c 00 20 20 20 20 20 | =>.'Nobody.in.particular',...... |
ae20 | 20 20 20 20 20 20 20 20 20 20 20 4e 61 6d 65 20 20 20 20 20 3d 3e 20 27 4e 6f 62 6f 64 79 27 2c | ...........Name.....=>.'Nobody', |
ae40 | 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 76 61 6c 2c 20 24 6d 73 67 20 29 20 3d | .............my.(.$val,.$msg.).= |
ae60 | 20 24 75 73 65 72 2d 3e 43 72 65 61 74 65 28 00 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 00 20 | .$user->Create(.........else.{.. |
ae80 | 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 70 75 73 68 20 40 77 61 72 6e 73 | .......}.............push.@warns |
aea0 | 2c 20 22 46 6f 75 6e 64 20 27 4e 6f 62 6f 64 79 27 20 75 73 65 72 20 69 6e 20 74 68 65 20 44 42 | ,."Found.'Nobody'.user.in.the.DB |
aec0 | 2e 22 3b 00 20 20 20 20 20 20 20 20 69 66 20 28 20 24 75 73 65 72 2d 3e 69 64 20 29 20 7b 00 20 | .";.........if.(.$user->id.).{.. |
aee0 | 20 20 20 20 20 20 20 24 75 73 65 72 2d 3e 4c 6f 61 64 28 27 4e 6f 62 6f 64 79 27 29 3b 00 20 20 | .......$user->Load('Nobody');... |
af00 | 20 20 20 20 20 20 6d 79 20 24 75 73 65 72 20 3d 20 52 54 3a 3a 55 73 65 72 2d 3e 6e 65 77 28 20 | ......my.$user.=.RT::User->new(. |
af20 | 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 20 29 3b 00 20 20 20 20 7b 00 20 20 20 20 23 20 6e 6f | RT->SystemUser.);.....{.....#.no |
af40 | 62 6f 64 79 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 24 76 61 6c | body......}.........return.($val |
af60 | 2c 20 24 6d 73 67 29 20 75 6e 6c 65 73 73 20 24 76 61 6c 3b 00 20 20 20 20 20 20 20 20 29 3b 00 | ,.$msg).unless.$val;.........);. |
af80 | 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 73 74 61 6e 63 65 20 20 20 20 3d 3e 20 27 27 2c 00 20 | ............Instance....=>.'',.. |
afa0 | 20 20 20 20 20 20 20 20 20 20 20 4e 61 6d 65 20 20 20 20 20 20 20 20 3d 3e 20 27 27 2c 00 20 20 | ...........Name........=>.'',... |
afc0 | 20 20 20 20 20 20 20 20 20 20 44 65 73 63 72 69 70 74 69 6f 6e 20 3d 3e 20 27 50 73 65 75 64 6f | ..........Description.=>.'Pseudo |
afe0 | 67 72 6f 75 70 20 66 6f 72 20 69 6e 74 65 72 6e 61 6c 20 75 73 65 27 2c 20 20 23 20 6c 6f 63 00 | group.for.internal.use',..#.loc. |
b000 | 61 64 00 00 07 00 00 00 8b 01 00 00 00 10 00 00 5a 00 00 00 00 00 00 00 ea 0f 00 00 d5 0f 00 00 | ad..............Z............... |
b020 | a3 0f 00 00 95 0f 00 00 75 0f 00 00 27 0f 00 00 fe 0e 00 00 bd 0e 00 00 8f 0e 00 00 5b 0e 00 00 | ........u...'...............[... |
b040 | 45 0e 00 00 1d 0e 00 00 e0 0d 00 00 ca 0d 00 00 af 0d 00 00 83 0d 00 00 3d 0d 00 00 f5 0c 00 00 | E.......................=....... |
b060 | a8 0c 00 00 59 0c 00 00 3e 0c 00 00 20 0c 00 00 0a 0c 00 00 dd 0b 00 00 83 0b 00 00 65 0b 00 00 | ....Y...>...................e... |
b080 | 4f 0b 00 00 fe 0a 00 00 d5 0a 00 00 a1 0a 00 00 84 0a 00 00 48 0a 00 00 32 0a 00 00 20 0a 00 00 | O...................H...2....... |
b0a0 | 12 0a 00 00 d6 09 00 00 90 09 00 00 62 09 00 00 26 09 00 00 df 08 00 00 b0 08 00 00 a6 08 00 00 | ............b...&............... |
b0c0 | 81 08 00 00 7b 08 00 00 67 08 00 00 36 08 00 00 12 08 00 00 d1 07 00 00 9b 07 00 00 8d 07 00 00 | ....{...g...6................... |
b0e0 | 50 07 00 00 11 07 00 00 f0 06 00 00 c4 06 00 00 af 06 00 00 7b 06 00 00 6d 06 00 00 63 06 00 00 | P...................{...m...c... |
b100 | 3e 06 00 00 38 06 00 00 22 06 00 00 de 05 00 00 bc 05 00 00 84 05 00 00 41 05 00 00 1f 05 00 00 | >...8..."...............A....... |
b120 | c9 04 00 00 b3 04 00 00 a5 04 00 00 a4 04 00 00 67 04 00 00 2f 04 00 00 e5 03 00 00 ba 03 00 00 | ................g.../........... |
b140 | 97 03 00 00 1e 03 00 00 08 03 00 00 fa 02 00 00 f9 02 00 00 a7 02 00 00 86 02 00 00 5a 02 00 00 | ............................Z... |
b160 | 45 02 00 00 11 02 00 00 03 02 00 00 f9 01 00 00 f3 01 00 00 de 01 00 00 ac 01 00 00 8b 01 00 00 | E............................... |
b180 | 8a 01 00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 66 6f 72 20 6d 79 20 24 69 74 65 6d 20 | ...................for.my.$item. |
b1a0 | 28 40 51 75 65 75 65 73 29 20 7b 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d | (@Queues).{.........$RT::Logger- |
b1c0 | 3e 64 65 62 75 67 28 22 43 72 65 61 74 69 6e 67 20 71 75 65 75 65 73 2e 2e 2e 22 29 3b 00 20 20 | >debug("Creating.queues...");... |
b1e0 | 20 20 69 66 20 28 20 40 51 75 65 75 65 73 20 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 | ..if.(.@Queues.).{.....}........ |
b200 | 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .}.............}................ |
b220 | 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 20 24 72 65 74 75 72 6e 20 2e 22 2e | .$RT::Logger->debug(.$return..". |
b240 | 22 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 | ".);.............}.else.{....... |
b260 | 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 20 24 6d | ..........$RT::Logger->error(.$m |
b280 | 73 67 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 72 65 74 75 | sg.);.............unless.(.$retu |
b2a0 | 72 6e 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 72 65 74 75 72 6e 2c | rn.).{.............my.(.$return, |
b2c0 | 20 24 6d 73 67 29 20 3d 20 24 67 72 6f 75 70 2d 3e 41 64 64 4d 65 6d 62 65 72 28 20 24 6d 65 6d | .$msg).=.$group->AddMember(.$mem |
b2e0 | 62 65 72 2d 3e 50 72 69 6e 63 69 70 61 6c 4f 62 6a 2d 3e 49 64 20 29 3b 00 00 20 20 20 20 20 20 | ber->PrincipalObj->Id.);........ |
b300 | 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 3b 00 20 20 | ......}.................next;... |
b320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 54 2d 3e 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 | ..............RT->Logger->error( |
b340 | 22 55 6e 61 62 6c 65 20 74 6f 20 66 69 6e 64 20 24 63 6c 61 73 73 20 27 22 2e 28 24 69 74 65 6d | "Unable.to.find.$class.'".($item |
b360 | 2d 3e 7b 69 64 7d 20 7c 7c 20 24 69 74 65 6d 2d 3e 7b 4e 61 6d 65 7d 29 2e 22 27 20 74 6f 20 61 | ->{id}.||.$item->{Name})."'.to.a |
b380 | 64 64 20 74 6f 20 22 2e 24 67 72 6f 75 70 2d 3e 4e 61 6d 65 29 3b 00 20 20 20 20 20 20 20 20 20 | dd.to.".$group->Name);.......... |
b3a0 | 20 20 20 75 6e 6c 65 73 73 20 28 24 6d 65 6d 62 65 72 2d 3e 49 64 29 20 7b 00 20 20 20 20 20 20 | ...unless.($member->Id).{....... |
b3c0 | 20 20 20 20 20 20 24 6d 65 6d 62 65 72 2d 3e 4c 6f 61 64 42 79 43 6f 6c 73 28 20 25 24 69 74 65 | ......$member->LoadByCols(.%$ite |
b3e0 | 6d 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 24 69 74 65 6d 2d 3e 7b 44 6f 6d 61 69 6e 7d | m.);.............$item->{Domain} |
b400 | 20 3d 20 27 55 73 65 72 44 65 66 69 6e 65 64 27 20 69 66 20 24 6d 65 6d 62 65 72 2d 3e 69 73 61 | .=.'UserDefined'.if.$member->isa |
b420 | 28 22 52 54 3a 3a 47 72 6f 75 70 22 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 6d | ("RT::Group");.............my.$m |
b440 | 65 6d 62 65 72 20 3d 20 24 63 6c 61 73 73 2d 3e 6e 65 77 28 20 52 54 2d 3e 53 79 73 74 65 6d 55 | ember.=.$class->new(.RT->SystemU |
b460 | 73 65 72 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 63 6c 61 73 73 20 3d 20 64 | ser.);.............my.$class.=.d |
b480 | 65 6c 65 74 65 20 24 69 74 65 6d 2d 3e 7b 43 6c 61 73 73 7d 20 7c 7c 20 27 52 54 3a 3a 55 73 65 | elete.$item->{Class}.||.'RT::Use |
b4a0 | 72 27 3b 00 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 | r';..............}.............. |
b4c0 | 20 20 20 6e 65 78 74 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 54 2d 3e 4c 6f 67 | ...next;.................RT->Log |
b4e0 | 67 65 72 2d 3e 65 72 72 6f 72 28 22 55 6e 61 62 6c 65 20 74 6f 20 66 69 6e 64 20 67 72 6f 75 70 | ger->error("Unable.to.find.group |
b500 | 20 27 24 67 72 6f 75 70 27 20 74 6f 20 61 64 64 20 6d 65 6d 62 65 72 73 20 74 6f 22 29 3b 00 20 | .'$group'.to.add.members.to");.. |
b520 | 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 24 67 72 6f 75 70 2d 3e 49 64 29 20 7b | ...........unless.($group->Id).{ |
b540 | 00 20 20 20 20 20 20 20 20 20 20 20 20 24 67 72 6f 75 70 2d 3e 4c 6f 61 64 55 73 65 72 44 65 66 | .............$group->LoadUserDef |
b560 | 69 6e 65 64 47 72 6f 75 70 28 20 64 65 6c 65 74 65 20 24 69 74 65 6d 2d 3e 7b 47 72 6f 75 70 7d | inedGroup(.delete.$item->{Group} |
b580 | 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 67 72 6f 75 70 20 3d 20 52 54 3a 3a | .);.............my.$group.=.RT:: |
b5a0 | 47 72 6f 75 70 2d 3e 6e 65 77 28 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 29 3b 00 20 20 20 20 | Group->new(RT->SystemUser);..... |
b5c0 | 20 20 20 20 66 6f 72 20 6d 79 20 24 69 74 65 6d 20 28 40 4d 65 6d 62 65 72 73 29 20 7b 00 20 20 | ....for.my.$item.(@Members).{... |
b5e0 | 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 41 64 64 69 6e 67 | ......$RT::Logger->debug("Adding |
b600 | 20 75 73 65 72 73 20 61 6e 64 20 67 72 6f 75 70 73 20 74 6f 20 67 72 6f 75 70 73 2e 2e 2e 22 29 | .users.and.groups.to.groups...") |
b620 | 3b 00 20 20 20 20 69 66 20 28 20 40 4d 65 6d 62 65 72 73 20 29 20 7b 00 20 20 20 20 7d 00 20 20 | ;.....if.(.@Members.).{.....}... |
b640 | 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 64 6f 6e 65 2e 22 | ......$RT::Logger->debug("done." |
b660 | 29 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 | );.........}.............}...... |
b680 | 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 20 24 | ...........$RT::Logger->debug(.$ |
b6a0 | 72 65 74 75 72 6e 20 2e 22 2e 22 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 | return..".".);.............}.els |
b6c0 | 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d | e.{.................$RT::Logger- |
b6e0 | 3e 65 72 72 6f 72 28 20 24 6d 73 67 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 | >error(.$msg.);.............unle |
b700 | 73 73 20 28 20 24 72 65 74 75 72 6e 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 | ss.(.$return.).{.............my. |
b720 | 28 20 24 72 65 74 75 72 6e 2c 20 24 6d 73 67 20 29 20 3d 20 24 6e 65 77 5f 65 6e 74 72 79 2d 3e | (.$return,.$msg.).=.$new_entry-> |
b740 | 43 72 65 61 74 65 28 25 24 69 74 65 6d 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 | Create(%$item);.............my.$ |
b760 | 6e 65 77 5f 65 6e 74 72 79 20 3d 20 52 54 3a 3a 55 73 65 72 2d 3e 6e 65 77 28 20 52 54 2d 3e 53 | new_entry.=.RT::User->new(.RT->S |
b780 | 79 73 74 65 6d 55 73 65 72 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 | ystemUser.);.............}...... |
b7a0 | 20 20 20 20 20 20 20 20 20 20 20 24 69 74 65 6d 2d 3e 7b 27 50 61 73 73 77 6f 72 64 27 7d 20 3d | ...........$item->{'Password'}.= |
b7c0 | 20 24 72 6f 6f 74 5f 70 61 73 73 77 6f 72 64 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 | .$root_password;.............if. |
b7e0 | 28 20 24 69 74 65 6d 2d 3e 7b 27 4e 61 6d 65 27 7d 20 65 71 20 27 72 6f 6f 74 27 20 26 26 20 24 | (.$item->{'Name'}.eq.'root'.&&.$ |
b800 | 72 6f 6f 74 5f 70 61 73 73 77 6f 72 64 20 29 20 7b 00 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 | root_password.).{.........foreac |
b820 | 68 20 6d 79 20 24 69 74 65 6d 20 28 40 55 73 65 72 73 29 20 7b 00 20 20 20 20 20 20 20 20 24 52 | h.my.$item.(@Users).{.........$R |
b840 | 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 43 72 65 61 74 69 6e 67 20 75 73 65 72 73 | T::Logger->debug("Creating.users |
b860 | 2e 2e 2e 22 29 3b 00 20 20 20 20 69 66 20 28 20 40 55 73 65 72 73 20 29 20 7b 00 20 20 20 20 7d | ...");.....if.(.@Users.).{.....} |
b880 | 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 64 6f 6e | .........$RT::Logger->debug("don |
b8a0 | 65 2e 22 29 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.");.........}................. |
b8c0 | 40 7b 20 24 6d 65 6d 62 65 72 73 2d 3e 7b 47 72 6f 75 70 73 7d 20 7c 7c 20 5b 5d 20 7d 3b 00 20 | @{.$members->{Groups}.||.[].};.. |
b8e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
b900 | 20 20 43 6c 61 73 73 20 3d 3e 20 22 52 54 3a 3a 47 72 6f 75 70 22 2c 20 4e 61 6d 65 20 3d 3e 20 | ..Class.=>."RT::Group",.Name.=>. |
b920 | 24 5f 7d 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 70 75 73 68 20 40 4d 65 6d 62 65 72 73 2c | $_}.}.............push.@Members, |
b940 | 20 6d 61 70 20 7b 20 2b 7b 47 72 6f 75 70 20 3d 3e 20 24 6e 65 77 5f 65 6e 74 72 79 2d 3e 69 64 | .map.{.+{Group.=>.$new_entry->id |
b960 | 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 40 7b 20 24 6d 65 6d 62 65 72 73 2d 3e 7b | ,.................@{.$members->{ |
b980 | 55 73 65 72 73 7d 20 7c 7c 20 5b 5d 20 7d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | Users}.||.[].};................. |
b9a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6c 61 73 73 20 3d 3e 20 22 52 54 3a | ...................Class.=>."RT: |
b9c0 | 3a 55 73 65 72 22 2c 20 4e 61 6d 65 20 3d 3e 20 24 5f 7d 20 7d 00 20 20 20 20 20 20 20 20 20 20 | :User",.Name.=>.$_}.}........... |
b9e0 | 20 20 70 75 73 68 20 40 4d 65 6d 62 65 72 73 2c 20 6d 61 70 20 7b 20 2b 7b 47 72 6f 75 70 20 3d | ..push.@Members,.map.{.+{Group.= |
ba00 | 3e 20 24 6e 65 77 5f 65 6e 74 72 79 2d 3e 69 64 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 | >.$new_entry->id,.............}. |
ba20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................}............... |
ba40 | 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ......}......................... |
ba60 | 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 20 24 72 65 74 75 72 6e 20 2e 22 2e 22 | $RT::Logger->debug(.$return.."." |
ba80 | 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b | .);.....................}.else.{ |
baa0 | 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f | .........................$RT::Lo |
bac0 | 67 67 65 72 2d 3e 65 72 72 6f 72 28 20 24 6d 73 67 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 | gger->error(.$msg.);............ |
bae0 | 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 72 65 74 75 72 6e 20 29 20 7b 00 20 20 | .........unless.(.$return.).{... |
bb00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 72 65 74 75 72 6e 2c 20 | ..................my.(.$return,. |
bb20 | 24 6d 73 67 20 29 20 3d 20 24 70 61 72 65 6e 74 2d 3e 41 64 64 4d 65 6d 62 65 72 28 20 24 6e 65 | $msg.).=.$parent->AddMember(.$ne |
bb40 | 77 5f 65 6e 74 72 79 2d 3e 49 64 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | w_entry->Id.);.................. |
bb60 | 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 | ...}.........................nex |
bb80 | 74 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a | t;.........................$RT:: |
bba0 | 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 22 28 45 72 72 6f 72 3a 20 63 6f 75 6c 64 6e 27 74 20 | Logger->error("(Error:.couldn't. |
bbc0 | 6c 6f 61 64 20 67 72 6f 75 70 20 74 6f 20 61 64 64 20 6d 65 6d 62 65 72 29 22 29 3b 00 20 20 20 | load.group.to.add.member)");.... |
bbe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 70 61 72 65 6e | .................unless.(.$paren |
bc00 | 74 2d 3e 49 64 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 | t->Id.).{.....................}. |
bc20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 3b 00 20 20 | ........................next;... |
bc40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 00 20 20 20 20 20 20 20 | ......................);........ |
bc60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 22 20 55 73 65 20 61 72 72 61 | ......................".Use.arra |
bc80 | 79 20 72 65 66 65 72 65 6e 63 65 20 74 6f 20 61 64 64 20 74 6f 20 6d 75 6c 74 69 70 6c 65 20 67 | y.reference.to.add.to.multiple.g |
bca0 | 72 6f 75 70 73 29 22 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | roups)"......................... |
bcc0 | 20 20 20 20 2e 22 20 68 61 73 68 20 72 65 66 65 72 65 6e 63 65 20 77 69 74 68 20 27 63 6f 6c 75 | .....".hash.reference.with.'colu |
bce0 | 6d 6e 20 3d 3e 20 76 61 6c 75 65 27 20 70 61 69 72 73 2e 22 00 20 20 20 20 20 20 20 20 20 20 20 | mn.=>.value'.pairs."............ |
bd00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 22 20 53 68 6f 75 6c 64 20 62 65 20 6e 61 | ..................".Should.be.na |
bd20 | 6d 65 20 6f 66 20 75 73 65 72 20 64 65 66 69 6e 65 64 20 67 72 6f 75 70 20 6f 72 22 00 20 20 20 | me.of.user.defined.group.or".... |
bd40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 28 45 72 72 6f 72 | ........................."(Error |
bd60 | 3a 20 77 72 6f 6e 67 20 66 6f 72 6d 61 74 20 6f 66 20 4d 65 6d 62 65 72 4f 66 20 66 69 65 6c 64 | :.wrong.format.of.MemberOf.field |
bd80 | 2e 22 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a | .".........................$RT:: |
bda0 | 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | Logger->error(.................. |
bdc0 | 20 20 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 | ...else.{.....................}. |
bde0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 61 72 65 6e 74 2d | ........................$parent- |
be00 | 3e 4c 6f 61 64 55 73 65 72 44 65 66 69 6e 65 64 47 72 6f 75 70 28 20 24 5f 20 29 3b 00 20 20 20 | >LoadUserDefinedGroup(.$_.);.... |
be20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 69 66 20 28 20 21 72 65 66 20 24 5f | .................elsif.(.!ref.$_ |
be40 | 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 | .).{.....................}...... |
be60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 61 72 65 6e 74 2d 3e 4c 6f 61 64 | ...................$parent->Load |
be80 | 42 79 43 6f 6c 73 28 20 25 24 5f 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ByCols(.%$_.);.................. |
bea0 | 20 20 20 69 66 20 28 20 72 65 66 20 24 5f 20 65 71 20 27 48 41 53 48 27 20 29 20 7b 00 20 20 20 | ...if.(.ref.$_.eq.'HASH'.).{.... |
bec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 70 61 72 65 6e 74 20 3d 20 52 54 | .................my.$parent.=.RT |
bee0 | 3a 3a 47 72 6f 75 70 2d 3e 6e 65 77 28 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 29 3b 00 20 20 | ::Group->new(RT->SystemUser);... |
bf00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 28 20 40 24 6d 65 6d 62 65 72 5f | ..............foreach(.@$member_ |
bf20 | 6f 66 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6d 65 6d 62 65 72 5f 6f | of.).{.................$member_o |
bf40 | 66 20 3d 20 5b 20 24 6d 65 6d 62 65 72 5f 6f 66 20 5d 20 75 6e 6c 65 73 73 20 72 65 66 20 24 6d | f.=.[.$member_of.].unless.ref.$m |
bf60 | 65 6d 62 65 72 5f 6f 66 20 65 71 20 27 41 52 52 41 59 27 3b 00 20 20 20 20 20 20 20 20 20 20 20 | ember_of.eq.'ARRAY';............ |
bf80 | 20 69 66 20 28 20 24 6d 65 6d 62 65 72 5f 6f 66 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 | .if.(.$member_of.).{............ |
bfa0 | 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e | .}.................$RT::Logger-> |
bfc0 | 64 65 62 75 67 28 24 72 65 74 75 72 6e 20 2e 22 2e 22 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 | debug($return..".");............ |
bfe0 | 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 3b 00 | .}.else.{.................next;. |
c000 | 61 64 00 00 0e 00 00 00 92 01 00 00 00 10 00 00 5a 00 00 00 00 00 00 00 c4 0f 00 00 85 0f 00 00 | ad..............Z............... |
c020 | 64 0f 00 00 38 0f 00 00 23 0f 00 00 ef 0e 00 00 e1 0e 00 00 d7 0e 00 00 b2 0e 00 00 ac 0e 00 00 | d...8...#....................... |
c040 | 91 0e 00 00 58 0e 00 00 2f 0e 00 00 eb 0d 00 00 b5 0d 00 00 b4 0d 00 00 9c 0d 00 00 55 0d 00 00 | ....X.../...................U... |
c060 | 10 0d 00 00 ce 0c 00 00 96 0c 00 00 88 0c 00 00 87 0c 00 00 5f 0c 00 00 29 0c 00 00 ee 0b 00 00 | ...................._...)....... |
c080 | ba 0b 00 00 71 0b 00 00 19 0b 00 00 b6 0a 00 00 97 0a 00 00 5c 0a 00 00 3f 0a 00 00 bb 09 00 00 | ....q...............\...?....... |
c0a0 | 88 09 00 00 72 09 00 00 59 09 00 00 d4 08 00 00 a5 08 00 00 93 08 00 00 92 08 00 00 83 08 00 00 | ....r...Y....................... |
c0c0 | 82 08 00 00 43 08 00 00 23 08 00 00 f7 07 00 00 e1 07 00 00 d3 07 00 00 d2 07 00 00 a3 07 00 00 | ....C...#....................... |
c0e0 | 5d 07 00 00 22 07 00 00 14 07 00 00 13 07 00 00 f4 06 00 00 a3 06 00 00 5d 06 00 00 1e 06 00 00 | ]..."...................]....... |
c100 | 10 06 00 00 0f 06 00 00 ed 05 00 00 b1 05 00 00 8f 05 00 00 67 05 00 00 21 05 00 00 07 05 00 00 | ....................g...!....... |
c120 | f5 04 00 00 af 04 00 00 7d 04 00 00 4a 04 00 00 1b 04 00 00 08 04 00 00 c0 03 00 00 b2 03 00 00 | ........}...J................... |
c140 | a8 03 00 00 a7 03 00 00 82 03 00 00 7c 03 00 00 6a 03 00 00 3b 03 00 00 1d 03 00 00 1c 03 00 00 | ............|...j...;........... |
c160 | fa 02 00 00 f9 02 00 00 cc 02 00 00 a9 02 00 00 67 02 00 00 2e 02 00 00 c3 01 00 00 92 01 00 00 | ................g............... |
c180 | 91 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
c1a0 | 20 20 24 6f 62 6a 65 63 74 2d 3e 4c 6f 61 64 42 79 4e 61 6d 65 28 20 40 63 6f 6c 75 6d 6e 73 20 | ..$object->LoadByName(.@columns. |
c1c0 | 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 75 73 68 20 40 63 6f 6c 75 6d 6e 73 | );.................push.@columns |
c1e0 | 2c 20 51 75 65 75 65 20 3d 3e 20 24 69 74 65 6d 2d 3e 7b 27 51 75 65 75 65 27 7d 20 69 66 20 24 | ,.Queue.=>.$item->{'Queue'}.if.$ |
c200 | 69 74 65 6d 2d 3e 7b 27 51 75 65 75 65 27 7d 20 61 6e 64 20 6e 6f 74 20 72 65 66 20 24 69 74 65 | item->{'Queue'}.and.not.ref.$ite |
c220 | 6d 2d 3e 7b 27 51 75 65 75 65 27 7d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 | m->{'Queue'};.................my |
c240 | 20 40 63 6f 6c 75 6d 6e 73 20 3d 20 28 20 4e 61 6d 65 20 3d 3e 20 24 69 74 65 6d 2d 3e 7b 27 43 | .@columns.=.(.Name.=>.$item->{'C |
c260 | 46 27 7d 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6f 62 6a 65 63 74 20 3d | F'}.);.................$object.= |
c280 | 20 52 54 3a 3a 43 75 73 74 6f 6d 46 69 65 6c 64 2d 3e 6e 65 77 28 20 52 54 2d 3e 53 79 73 74 65 | .RT::CustomField->new(.RT->Syste |
c2a0 | 6d 55 73 65 72 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 20 24 69 74 65 6d 2d | mUser.);.............if.(.$item- |
c2c0 | 3e 7b 27 43 46 27 7d 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 23 20 47 6c 6f 62 61 6c | >{'CF'}.).{.............#.Global |
c2e0 | 20 72 69 67 68 74 73 20 6f 72 20 51 75 65 75 65 20 72 69 67 68 74 73 3f 00 00 20 20 20 20 20 20 | .rights.or.Queue.rights?........ |
c300 | 20 20 20 20 20 20 6d 79 20 28 24 70 72 69 6e 63 2c 20 24 6f 62 6a 65 63 74 29 3b 00 00 20 20 20 | ......my.($princ,.$object);..... |
c320 | 20 20 20 20 20 66 6f 72 20 6d 79 20 24 69 74 65 6d 20 28 40 41 43 4c 29 20 7b 00 20 20 20 20 20 | .....for.my.$item.(@ACL).{...... |
c340 | 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 43 72 65 61 74 69 6e 67 20 | ...$RT::Logger->debug("Creating. |
c360 | 41 43 4c 2e 2e 2e 22 29 3b 00 20 20 20 20 69 66 20 28 20 40 41 43 4c 20 29 20 7b 00 20 20 20 20 | ACL...");.....if.(.@ACL.).{..... |
c380 | 7d 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 64 6f | }.........$RT::Logger->debug("do |
c3a0 | 6e 65 2e 22 29 3b 00 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 | ne.");..........}.............}. |
c3c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 | ................$RT::Logger->err |
c3e0 | 6f 72 28 20 24 6d 73 67 20 29 20 75 6e 6c 65 73 73 20 24 72 65 74 75 72 6e 20 61 6e 64 20 24 4f | or(.$msg.).unless.$return.and.$O |
c400 | 43 46 2d 3e 49 64 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 00 20 20 20 20 20 | CF->Id;.................);...... |
c420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 62 6a 65 63 74 49 64 20 20 20 20 3d 3e 20 24 71 | ...............ObjectId....=>.$q |
c440 | 5f 6f 62 6a 2d 3e 49 64 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 75 | _obj->Id,.....................Cu |
c460 | 73 74 6f 6d 46 69 65 6c 64 20 3d 3e 20 24 6e 65 77 5f 65 6e 74 72 79 2d 3e 49 64 2c 00 20 20 20 | stomField.=>.$new_entry->Id,.... |
c480 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 20 24 72 65 74 75 72 6e 2c 20 24 6d 73 67 20 29 20 3d | .............(.$return,.$msg.).= |
c4a0 | 20 24 4f 43 46 2d 3e 43 72 65 61 74 65 28 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d | .$OCF->Create(.................m |
c4c0 | 79 20 24 4f 43 46 20 3d 20 52 54 3a 3a 4f 62 6a 65 63 74 43 75 73 74 6f 6d 46 69 65 6c 64 2d 3e | y.$OCF.=.RT::ObjectCustomField-> |
c4e0 | 6e 65 77 28 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 | new(RT->SystemUser);............ |
c500 | 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 3b | .....}.....................next; |
c520 | 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 | .....................$RT::Logger |
c540 | 2d 3e 65 72 72 6f 72 28 22 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 71 75 65 75 65 20 22 2e | ->error("Could.not.find.queue.". |
c560 | 20 24 71 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 | .$q.);.................unless.(. |
c580 | 24 71 5f 6f 62 6a 2d 3e 49 64 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 | $q_obj->Id.).{.................$ |
c5a0 | 71 5f 6f 62 6a 2d 3e 4c 6f 61 64 28 24 71 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | q_obj->Load($q);................ |
c5c0 | 20 6d 79 20 24 71 5f 6f 62 6a 20 3d 20 52 54 3a 3a 51 75 65 75 65 2d 3e 6e 65 77 28 52 54 2d 3e | .my.$q_obj.=.RT::Queue->new(RT-> |
c5e0 | 53 79 73 74 65 6d 55 73 65 72 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 6d 79 20 | SystemUser);.............for.my. |
c600 | 24 71 20 28 40 71 75 65 75 65 73 29 20 7b 00 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 | $q.(@queues).{..............}... |
c620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6f 63 66 2d 3e 43 72 65 61 74 65 28 20 43 75 73 74 | ..............$ocf->Create(.Cust |
c640 | 6f 6d 46 69 65 6c 64 20 3d 3e 20 24 6e 65 77 5f 65 6e 74 72 79 2d 3e 49 64 20 29 3b 00 20 20 20 | omField.=>.$new_entry->Id.);.... |
c660 | 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 6f 63 66 20 3d 20 52 54 3a 3a 4f 62 6a 65 63 | .............my.$ocf.=.RT::Objec |
c680 | 74 43 75 73 74 6f 6d 46 69 65 6c 64 2d 3e 6e 65 77 28 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 | tCustomField->new(RT->SystemUser |
c6a0 | 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 20 21 40 71 75 65 75 65 73 20 26 26 20 | );.............if.(.!@queues.&&. |
c6c0 | 21 65 78 69 73 74 73 20 24 69 74 65 6d 2d 3e 7b 27 51 75 65 75 65 27 7d 20 26 26 20 24 69 74 65 | !exists.$item->{'Queue'}.&&.$ite |
c6e0 | 6d 2d 3e 7b 4c 6f 6f 6b 75 70 54 79 70 65 7d 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 | m->{LookupType}.).{............. |
c700 | 23 20 61 70 70 6c 79 20 62 79 20 64 65 66 61 75 6c 74 00 00 20 20 20 20 20 20 20 20 20 20 20 20 | #.apply.by.default.............. |
c720 | 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 | }.................$RT::Logger->e |
c740 | 72 72 6f 72 28 20 24 6d 73 67 20 29 20 75 6e 6c 65 73 73 20 24 72 65 74 75 72 6e 3b 00 20 20 20 | rror(.$msg.).unless.$return;.... |
c760 | 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 72 65 74 75 72 6e 2c 20 24 6d 73 67 20 | .............my.(.$return,.$msg. |
c780 | 29 20 3d 20 24 6e 65 77 5f 65 6e 74 72 79 2d 3e 41 64 64 56 61 6c 75 65 28 25 24 76 61 6c 75 65 | ).=.$new_entry->AddValue(%$value |
c7a0 | 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 6d 79 20 24 76 61 6c 75 65 | );.............foreach.my.$value |
c7c0 | 20 28 20 40 7b 24 76 61 6c 75 65 73 7d 20 29 20 7b 00 00 20 20 20 20 20 20 20 20 20 20 20 20 7d | .(.@{$values}.).{..............} |
c7e0 | 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 3b 00 20 20 20 20 20 20 20 20 20 | .................next;.......... |
c800 | 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 20 24 6d 73 67 20 | .......$RT::Logger->error(.$msg. |
c820 | 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 28 20 24 72 65 74 75 72 6e 20 29 | );.............unless(.$return.) |
c840 | 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 72 65 74 75 72 6e 2c 20 24 6d 73 | .{.............my.(.$return,.$ms |
c860 | 67 20 29 20 3d 20 24 6e 65 77 5f 65 6e 74 72 79 2d 3e 43 72 65 61 74 65 28 25 24 69 74 65 6d 29 | g.).=.$new_entry->Create(%$item) |
c880 | 3b 00 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 | ;..............}................ |
c8a0 | 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 6c 65 74 65 20 | ...}.....................delete. |
c8c0 | 24 69 74 65 6d 2d 3e 7b 27 42 61 73 65 64 4f 6e 27 7d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 | $item->{'BasedOn'};............. |
c8e0 | 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 22 55 6e 61 62 | ........$RT::Logger->error("Unab |
c900 | 6c 65 20 74 6f 20 6c 6f 61 64 20 43 46 20 24 69 74 65 6d 2d 3e 7b 42 61 73 65 64 4f 6e 7d 20 62 | le.to.load.CF.$item->{BasedOn}.b |
c920 | 65 63 61 75 73 65 20 6e 6f 20 4c 6f 6f 6b 75 70 54 79 70 65 20 77 61 73 20 73 70 65 63 69 66 69 | ecause.no.LookupType.was.specifi |
c940 | 65 64 2e 20 20 53 6b 69 70 70 69 6e 67 20 42 61 73 65 64 4f 6e 22 29 3b 00 20 20 20 20 20 20 20 | ed...Skipping.BasedOn");........ |
c960 | 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .........}.else.{............... |
c980 | 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ......}......................... |
c9a0 | 64 65 6c 65 74 65 20 24 69 74 65 6d 2d 3e 7b 27 42 61 73 65 64 4f 6e 27 7d 3b 00 20 20 20 20 20 | delete.$item->{'BasedOn'};...... |
c9c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e | ...................$RT::Logger-> |
c9e0 | 65 72 72 6f 72 28 22 55 6e 61 62 6c 65 20 74 6f 20 6c 6f 61 64 20 24 69 74 65 6d 2d 3e 7b 42 61 | error("Unable.to.load.$item->{Ba |
ca00 | 73 65 64 4f 6e 7d 20 61 73 20 61 20 24 69 74 65 6d 2d 3e 7b 4c 6f 6f 6b 75 70 54 79 70 65 7d 20 | sedOn}.as.a.$item->{LookupType}. |
ca20 | 43 46 2e 20 20 53 6b 69 70 70 69 6e 67 20 42 61 73 65 64 4f 6e 3a 20 24 6d 73 67 22 29 3b 00 20 | CF...Skipping.BasedOn:.$msg");.. |
ca40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 | ...................}.else.{..... |
ca60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 69 74 65 6d 2d 3e 7b 27 42 61 73 | ....................$item->{'Bas |
ca80 | 65 64 4f 6e 27 7d 20 3d 20 24 62 61 73 65 64 6f 6e 2d 3e 49 64 3b 00 20 20 20 20 20 20 20 20 20 | edOn'}.=.$basedon->Id;.......... |
caa0 | 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 6f 6b 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 | ...........if.($ok).{........... |
cac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
cae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 6f 6f 6b 75 70 54 79 70 65 20 3d 3e 20 | ..................LookupType.=>. |
cb00 | 24 69 74 65 6d 2d 3e 7b 27 4c 6f 6f 6b 75 70 54 79 70 65 27 7d 20 29 3b 00 20 20 20 20 20 20 20 | $item->{'LookupType'}.);........ |
cb20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 24 6f 6b 2c 20 24 6d 73 67 20 29 20 3d 20 24 | .............my.($ok,.$msg.).=.$ |
cb40 | 62 61 73 65 64 6f 6e 2d 3e 4c 6f 61 64 42 79 43 6f 6c 73 28 20 4e 61 6d 65 20 3d 3e 20 24 69 74 | basedon->LoadByCols(.Name.=>.$it |
cb60 | 65 6d 2d 3e 7b 27 42 61 73 65 64 4f 6e 27 7d 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | em->{'BasedOn'},................ |
cb80 | 20 20 20 20 20 6d 79 20 24 62 61 73 65 64 6f 6e 20 3d 20 52 54 3a 3a 43 75 73 74 6f 6d 46 69 65 | .....my.$basedon.=.RT::CustomFie |
cba0 | 6c 64 2d 3e 6e 65 77 28 24 52 54 3a 3a 53 79 73 74 65 6d 55 73 65 72 29 3b 00 20 20 20 20 20 20 | ld->new($RT::SystemUser);....... |
cbc0 | 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 69 66 20 28 20 24 69 74 65 6d 2d 3e 7b 27 4c 6f 6f | ..........}.elsif.(.$item->{'Loo |
cbe0 | 6b 75 70 54 79 70 65 27 7d 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | kupType'}.).{................... |
cc00 | 20 20 23 20 41 6c 72 65 61 64 79 20 68 61 76 65 20 61 6e 20 49 44 20 2d 2d 20 73 68 6f 75 6c 64 | ..#.Already.have.an.ID.--.should |
cc20 | 20 62 65 20 66 69 6e 65 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 20 24 69 | .be.fine.................if.(.$i |
cc40 | 74 65 6d 2d 3e 7b 27 42 61 73 65 64 4f 6e 27 7d 20 3d 7e 20 2f 5e 5c 64 2b 24 2f 29 20 7b 00 20 | tem->{'BasedOn'}.=~./^\d+$/).{.. |
cc60 | 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 20 24 69 74 65 6d 2d 3e 7b 27 42 61 73 65 64 4f 6e | ...........if.(.$item->{'BasedOn |
cc80 | 27 7d 20 29 20 7b 00 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 | '}.).{..............}........... |
cca0 | 20 20 20 20 20 20 40 71 75 65 75 65 73 20 3d 20 40 7b 20 64 65 6c 65 74 65 20 24 69 74 65 6d 2d | ......@queues.=.@{.delete.$item- |
ccc0 | 3e 7b 27 51 75 65 75 65 27 7d 20 7d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 69 | >{'Queue'}.};.................$i |
cce0 | 74 65 6d 2d 3e 7b 27 4c 6f 6f 6b 75 70 54 79 70 65 27 7d 20 7c 7c 3d 20 27 52 54 3a 3a 51 75 65 | tem->{'LookupType'}.||=.'RT::Que |
cd00 | 75 65 2d 52 54 3a 3a 54 69 63 6b 65 74 27 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 | ue-RT::Ticket';.............if.( |
cd20 | 20 65 78 69 73 74 73 20 24 69 74 65 6d 2d 3e 7b 27 51 75 65 75 65 27 7d 20 26 26 20 72 65 66 20 | .exists.$item->{'Queue'}.&&.ref. |
cd40 | 24 69 74 65 6d 2d 3e 7b 27 51 75 65 75 65 27 7d 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 | $item->{'Queue'}.).{............ |
cd60 | 20 23 20 69 66 20 72 65 66 20 74 68 65 6e 20 69 74 27 73 20 6c 69 73 74 20 6f 66 20 71 75 65 75 | .#.if.ref.then.it's.list.of.queu |
cd80 | 65 73 2c 20 73 6f 20 77 65 20 64 6f 20 74 68 69 6e 67 73 20 6f 75 72 73 65 6c 66 00 20 20 20 20 | es,.so.we.do.things.ourself..... |
cda0 | 20 20 20 20 20 20 20 20 6d 79 20 40 71 75 65 75 65 73 3b 00 00 20 20 20 20 20 20 20 20 20 20 20 | ........my.@queues;............. |
cdc0 | 20 6d 79 20 24 76 61 6c 75 65 73 20 20 20 20 3d 20 64 65 6c 65 74 65 20 24 69 74 65 6d 2d 3e 7b | .my.$values....=.delete.$item->{ |
cde0 | 27 56 61 6c 75 65 73 27 7d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 6e 65 77 5f 65 | 'Values'};.............my.$new_e |
ce00 | 6e 74 72 79 20 3d 20 52 54 3a 3a 43 75 73 74 6f 6d 46 69 65 6c 64 2d 3e 6e 65 77 28 20 52 54 2d | ntry.=.RT::CustomField->new(.RT- |
ce20 | 3e 53 79 73 74 65 6d 55 73 65 72 20 29 3b 00 20 20 20 20 20 20 20 20 66 6f 72 20 6d 79 20 24 69 | >SystemUser.);.........for.my.$i |
ce40 | 74 65 6d 20 28 20 40 43 75 73 74 6f 6d 46 69 65 6c 64 73 20 29 20 7b 00 20 20 20 20 20 20 20 20 | tem.(.@CustomFields.).{......... |
ce60 | 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 43 72 65 61 74 69 6e 67 20 63 75 73 | $RT::Logger->debug("Creating.cus |
ce80 | 74 6f 6d 20 66 69 65 6c 64 73 2e 2e 2e 22 29 3b 00 20 20 20 20 69 66 20 28 20 40 43 75 73 74 6f | tom.fields...");.....if.(.@Custo |
cea0 | 6d 46 69 65 6c 64 73 20 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c | mFields.).{.....}.........$RT::L |
cec0 | 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 64 6f 6e 65 2e 22 29 3b 00 20 20 20 20 20 20 20 20 7d | ogger->debug("done.");.........} |
cee0 | 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 | .............}.................$ |
cf00 | 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 20 24 72 65 74 75 72 6e 20 2e 22 2e 22 20 | RT::Logger->debug(.$return..".". |
cf20 | 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 | );.............}.else.{......... |
cf40 | 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 20 24 6d 73 67 | ........$RT::Logger->error(.$msg |
cf60 | 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 72 65 74 75 72 6e | .);.............unless.(.$return |
cf80 | 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 72 65 74 75 72 6e 2c 20 24 | .).{.............my.(.$return,.$ |
cfa0 | 6d 73 67 20 29 20 3d 20 24 6e 65 77 5f 65 6e 74 72 79 2d 3e 43 72 65 61 74 65 28 25 24 69 74 65 | msg.).=.$new_entry->Create(%$ite |
cfc0 | 6d 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 6e 65 77 5f 65 6e 74 72 79 20 3d 20 | m);.............my.$new_entry.=. |
cfe0 | 52 54 3a 3a 51 75 65 75 65 2d 3e 6e 65 77 28 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 29 3b 00 | RT::Queue->new(RT->SystemUser);. |
d000 | 61 64 00 00 0c 00 00 00 bc 01 00 00 00 10 00 00 65 00 00 00 00 00 00 00 d5 0f 00 00 9b 0f 00 00 | ad..............e............... |
d020 | 68 0f 00 00 53 0f 00 00 2c 0f 00 00 1e 0f 00 00 1d 0f 00 00 bd 0e 00 00 bc 0e 00 00 91 0e 00 00 | h...S...,....................... |
d040 | 65 0e 00 00 2c 0e 00 00 eb 0d 00 00 a5 0d 00 00 5c 0d 00 00 11 0d 00 00 c7 0c 00 00 80 0c 00 00 | e...,...........\............... |
d060 | 38 0c 00 00 0b 0c 00 00 f9 0b 00 00 ad 0b 00 00 68 0b 00 00 4f 0b 00 00 19 0b 00 00 07 0b 00 00 | 8...............h...O........... |
d080 | df 0a 00 00 45 0a 00 00 2b 0a 00 00 19 0a 00 00 04 0a 00 00 cc 09 00 00 88 09 00 00 67 09 00 00 | ....E...+...................g... |
d0a0 | 11 09 00 00 f7 08 00 00 e5 08 00 00 d7 08 00 00 d6 08 00 00 bf 08 00 00 7a 08 00 00 4f 08 00 00 | ........................z...O... |
d0c0 | 2d 08 00 00 1e 08 00 00 fd 07 00 00 d1 07 00 00 c3 07 00 00 b0 07 00 00 7c 07 00 00 6e 07 00 00 | -.......................|...n... |
d0e0 | 64 07 00 00 3f 07 00 00 39 07 00 00 38 07 00 00 1d 07 00 00 e5 06 00 00 e4 06 00 00 bd 06 00 00 | d...?...9...8................... |
d100 | 7b 06 00 00 3c 06 00 00 1b 06 00 00 ef 05 00 00 e1 05 00 00 ce 05 00 00 9a 05 00 00 8c 05 00 00 | {...<........................... |
d120 | 82 05 00 00 81 05 00 00 5c 05 00 00 56 05 00 00 55 05 00 00 37 05 00 00 fc 04 00 00 fb 04 00 00 | ........\...V...U...7........... |
d140 | d1 04 00 00 8c 04 00 00 4d 04 00 00 2c 04 00 00 00 04 00 00 f2 03 00 00 df 03 00 00 ab 03 00 00 | ........M...,................... |
d160 | 9d 03 00 00 93 03 00 00 92 03 00 00 6d 03 00 00 67 03 00 00 66 03 00 00 4e 03 00 00 19 03 00 00 | ............m...g...f...N....... |
d180 | 18 03 00 00 f4 02 00 00 b5 02 00 00 76 02 00 00 55 02 00 00 29 02 00 00 1b 02 00 00 08 02 00 00 | ............v...U...)........... |
d1a0 | d4 01 00 00 c6 01 00 00 bc 01 00 00 bb 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 | ................................ |
d1c0 | 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 | ....}.............}............. |
d1e0 | 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 20 24 72 65 74 75 72 6e 20 | ....$RT::Logger->debug(.$return. |
d200 | 2e 22 2e 22 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 00 20 20 20 20 20 | .".".);.............else.{...... |
d220 | 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f | .......}.................$RT::Lo |
d240 | 67 67 65 72 2d 3e 65 72 72 6f 72 28 20 24 6d 73 67 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 | gger->error(.$msg.);............ |
d260 | 20 75 6e 6c 65 73 73 20 28 20 24 72 65 74 75 72 6e 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 | .unless.(.$return.).{........... |
d280 | 20 20 6d 79 20 28 20 24 72 65 74 75 72 6e 2c 20 24 6d 73 67 20 29 20 3d 20 24 6e 65 77 5f 65 6e | ..my.(.$return,.$msg.).=.$new_en |
d2a0 | 74 72 79 2d 3e 43 72 65 61 74 65 28 25 24 69 74 65 6d 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 | try->Create(%$item);............ |
d2c0 | 20 6d 79 20 24 6e 65 77 5f 65 6e 74 72 79 20 3d 20 52 54 3a 3a 54 65 6d 70 6c 61 74 65 2d 3e 6e | .my.$new_entry.=.RT::Template->n |
d2e0 | 65 77 28 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 29 3b 00 20 20 20 20 20 20 20 20 66 6f 72 20 | ew(RT->SystemUser);.........for. |
d300 | 6d 79 20 24 69 74 65 6d 20 28 40 54 65 6d 70 6c 61 74 65 73 29 20 7b 00 00 20 20 20 20 20 20 20 | my.$item.(@Templates).{......... |
d320 | 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 43 72 65 61 74 69 6e 67 20 74 65 | .$RT::Logger->debug("Creating.te |
d340 | 6d 70 6c 61 74 65 73 2e 2e 2e 22 29 3b 00 20 20 20 20 69 66 20 28 20 40 54 65 6d 70 6c 61 74 65 | mplates...");.....if.(.@Template |
d360 | 73 20 29 20 7b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 | s.).{......}.........$RT::Logger |
d380 | 2d 3e 64 65 62 75 67 28 22 64 6f 6e 65 2e 22 29 3b 00 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 | ->debug("done.");..........}.... |
d3a0 | 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a | .........}.................$RT:: |
d3c0 | 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 20 24 72 65 74 75 72 6e 20 2e 22 2e 22 20 29 3b 00 20 | Logger->debug(.$return..".".);.. |
d3e0 | 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 | ...........else.{.............}. |
d400 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 | ................$RT::Logger->err |
d420 | 6f 72 28 20 24 6d 73 67 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 | or(.$msg.);.............unless.( |
d440 | 20 24 72 65 74 75 72 6e 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 72 | .$return.).{.............my.(.$r |
d460 | 65 74 75 72 6e 2c 20 24 6d 73 67 20 29 20 3d 20 24 6e 65 77 5f 65 6e 74 72 79 2d 3e 43 72 65 61 | eturn,.$msg.).=.$new_entry->Crea |
d480 | 74 65 28 25 24 69 74 65 6d 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 6e 65 77 5f | te(%$item);.............my.$new_ |
d4a0 | 65 6e 74 72 79 20 3d 20 52 54 3a 3a 53 63 72 69 70 43 6f 6e 64 69 74 69 6f 6e 2d 3e 6e 65 77 28 | entry.=.RT::ScripCondition->new( |
d4c0 | 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 29 3b 00 20 20 20 20 20 20 20 20 66 6f 72 20 6d 79 20 | RT->SystemUser);.........for.my. |
d4e0 | 24 69 74 65 6d 20 28 40 53 63 72 69 70 43 6f 6e 64 69 74 69 6f 6e 73 29 20 7b 00 00 20 20 20 20 | $item.(@ScripConditions).{...... |
d500 | 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 43 72 65 61 74 69 6e 67 | ....$RT::Logger->debug("Creating |
d520 | 20 53 63 72 69 70 43 6f 6e 64 69 74 69 6f 6e 73 2e 2e 2e 22 29 3b 00 20 20 20 20 69 66 20 28 20 | .ScripConditions...");.....if.(. |
d540 | 40 53 63 72 69 70 43 6f 6e 64 69 74 69 6f 6e 73 20 29 20 7b 00 00 20 20 20 20 7d 00 20 20 20 20 | @ScripConditions.).{......}..... |
d560 | 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 64 6f 6e 65 2e 22 29 3b | ....$RT::Logger->debug("done."); |
d580 | 00 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 | ..........}.............}....... |
d5a0 | 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 20 24 72 | ..........$RT::Logger->debug(.$r |
d5c0 | 65 74 75 72 6e 20 2e 22 2e 22 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b | eturn..".".);.............else.{ |
d5e0 | 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 | .............}.................$ |
d600 | 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 20 24 6d 73 67 20 29 3b 00 20 20 20 20 20 | RT::Logger->error(.$msg.);...... |
d620 | 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 72 65 74 75 72 6e 20 29 20 7b 00 20 20 20 20 | .......unless.(.$return.).{..... |
d640 | 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 72 65 74 75 72 6e 2c 20 24 6d 73 67 20 29 20 3d 20 24 | ........my.(.$return,.$msg.).=.$ |
d660 | 6e 65 77 5f 65 6e 74 72 79 2d 3e 43 72 65 61 74 65 28 25 24 69 74 65 6d 29 3b 00 20 20 20 20 20 | new_entry->Create(%$item);...... |
d680 | 20 20 20 20 20 20 20 6d 79 20 24 6e 65 77 5f 65 6e 74 72 79 20 3d 20 52 54 3a 3a 53 63 72 69 70 | .......my.$new_entry.=.RT::Scrip |
d6a0 | 41 63 74 69 6f 6e 2d 3e 6e 65 77 28 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 29 3b 00 20 20 20 | Action->new(RT->SystemUser);.... |
d6c0 | 20 20 20 20 20 66 6f 72 20 6d 79 20 24 69 74 65 6d 20 28 40 53 63 72 69 70 41 63 74 69 6f 6e 73 | .....for.my.$item.(@ScripActions |
d6e0 | 29 20 7b 00 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 | ).{..........$RT::Logger->debug( |
d700 | 22 43 72 65 61 74 69 6e 67 20 53 63 72 69 70 41 63 74 69 6f 6e 73 2e 2e 2e 22 29 3b 00 20 20 20 | "Creating.ScripActions...");.... |
d720 | 20 69 66 20 28 20 40 53 63 72 69 70 41 63 74 69 6f 6e 73 20 29 20 7b 00 00 20 20 20 20 7d 00 20 | .if.(.@ScripActions.).{......}.. |
d740 | 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 64 6f 6e 65 2e | .......$RT::Logger->debug("done. |
d760 | 22 29 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 | ");.........}.............}..... |
d780 | 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 20 | ............$RT::Logger->debug(. |
d7a0 | 24 72 65 74 75 72 6e 20 2e 22 2e 22 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 | $return..".".);.............else |
d7c0 | 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .{.............}................ |
d7e0 | 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 20 24 6d 73 67 20 29 3b 00 20 20 20 | .$RT::Logger->error(.$msg.);.... |
d800 | 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 72 65 74 75 72 6e 20 29 20 7b 00 20 20 | .........unless.(.$return.).{... |
d820 | 20 20 20 20 20 20 20 20 20 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 62 6a | ..........);.................Obj |
d840 | 65 63 74 20 3d 3e 20 24 6f 62 6a 65 63 74 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 | ect.=>.$object.................R |
d860 | 69 67 68 74 20 3d 3e 20 24 69 74 65 6d 2d 3e 7b 27 52 69 67 68 74 27 7d 2c 00 20 20 20 20 20 20 | ight.=>.$item->{'Right'},....... |
d880 | 20 20 20 20 20 20 6d 79 20 28 20 24 72 65 74 75 72 6e 2c 20 24 6d 73 67 20 29 20 3d 20 24 70 72 | ......my.(.$return,.$msg.).=.$pr |
d8a0 | 69 6e 63 2d 3e 50 72 69 6e 63 69 70 61 6c 4f 62 6a 2d 3e 47 72 61 6e 74 52 69 67 68 74 28 00 20 | inc->PrincipalObj->GrantRight(.. |
d8c0 | 20 20 20 20 20 20 20 20 20 20 20 23 20 47 72 61 6e 74 20 69 74 00 00 20 20 20 20 20 20 20 20 20 | ...........#.Grant.it........... |
d8e0 | 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 | ...}.................}.......... |
d900 | 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...........next;................ |
d920 | 20 20 20 20 20 52 54 2d 3e 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 22 55 6e 61 62 6c 65 20 74 | .....RT->Logger->error("Unable.t |
d940 | 6f 20 6c 6f 61 64 20 75 73 65 72 3a 20 24 69 74 65 6d 2d 3e 7b 55 73 65 72 49 64 7d 20 3a 20 24 | o.load.user:.$item->{UserId}.:.$ |
d960 | 6d 73 67 22 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 | msg");.................unless.(. |
d980 | 24 6f 6b 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 24 6f 6b 2c | $ok.).{.................my.($ok, |
d9a0 | 20 24 6d 73 67 29 20 3d 20 24 70 72 69 6e 63 2d 3e 4c 6f 61 64 28 20 24 69 74 65 6d 2d 3e 7b 27 | .$msg).=.$princ->Load(.$item->{' |
d9c0 | 55 73 65 72 49 64 27 7d 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 72 69 | UserId'}.);.................$pri |
d9e0 | 6e 63 20 3d 20 52 54 3a 3a 55 73 65 72 2d 3e 6e 65 77 28 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 | nc.=.RT::User->new(RT->SystemUse |
da00 | 72 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 | r);.............}.else.{........ |
da20 | 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e | .........}.....................n |
da40 | 65 78 74 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 54 2d 3e 4c 6f 67 | ext;.....................RT->Log |
da60 | 67 65 72 2d 3e 65 72 72 6f 72 28 22 55 6e 61 62 6c 65 20 74 6f 20 6c 6f 61 64 20 47 72 6f 75 70 | ger->error("Unable.to.load.Group |
da80 | 3a 20 47 72 6f 75 70 44 6f 6d 61 69 6e 20 3d 3e 20 24 69 74 65 6d 2d 3e 7b 47 72 6f 75 70 44 6f | :.GroupDomain.=>.$item->{GroupDo |
daa0 | 6d 61 69 6e 7d 2c 20 47 72 6f 75 70 49 64 20 3d 3e 20 24 69 74 65 6d 2d 3e 7b 47 72 6f 75 70 49 | main},.GroupId.=>.$item->{GroupI |
dac0 | 64 7d 2c 20 51 75 65 75 65 20 3d 3e 20 24 69 74 65 6d 2d 3e 7b 51 75 65 75 65 7d 22 29 3b 00 20 | d},.Queue.=>.$item->{Queue}");.. |
dae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 70 72 69 6e 63 2d 3e | ...............unless.(.$princ-> |
db00 | 49 64 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 | Id.).{.................}........ |
db20 | 20 20 20 20 20 20 20 20 20 20 20 24 70 72 69 6e 63 2d 3e 4c 6f 61 64 28 20 24 69 74 65 6d 2d 3e | ...........$princ->Load(.$item-> |
db40 | 7b 27 47 72 6f 75 70 49 64 27 7d 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d | {'GroupId'}.);.................} |
db60 | 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .else.{......................... |
db80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 51 75 65 75 65 20 3d 3e 20 24 | ......................Queue.=>.$ |
dba0 | 6f 62 6a 65 63 74 2d 3e 69 64 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 | object->id);...................$ |
dbc0 | 70 72 69 6e 63 2d 3e 4c 6f 61 64 51 75 65 75 65 52 6f 6c 65 47 72 6f 75 70 28 20 54 79 70 65 20 | princ->LoadQueueRoleGroup(.Type. |
dbe0 | 3d 3e 20 24 69 74 65 6d 2d 3e 7b 27 47 72 6f 75 70 54 79 70 65 27 7d 2c 00 20 20 20 20 20 20 20 | =>.$item->{'GroupType'},........ |
dc00 | 20 20 20 20 20 20 20 20 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .........{...................... |
dc20 | 20 20 20 20 20 24 69 74 65 6d 2d 3e 7b 27 51 75 65 75 65 27 7d 20 29 00 20 20 20 20 20 20 20 20 | .....$item->{'Queue'}.)......... |
dc40 | 20 20 20 20 20 20 20 20 7d 20 65 6c 73 69 66 20 28 20 24 69 74 65 6d 2d 3e 7b 27 47 72 6f 75 70 | ........}.elsif.(.$item->{'Group |
dc60 | 44 6f 6d 61 69 6e 27 7d 20 65 71 20 27 52 54 3a 3a 51 75 65 75 65 2d 52 6f 6c 65 27 20 26 26 00 | Domain'}.eq.'RT::Queue-Role'.&&. |
dc80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 72 69 6e 63 2d 3e 4c 6f 61 64 53 79 | ..................$princ->LoadSy |
dca0 | 73 74 65 6d 52 6f 6c 65 47 72 6f 75 70 28 20 24 69 74 65 6d 2d 3e 7b 27 47 72 6f 75 70 54 79 70 | stemRoleGroup(.$item->{'GroupTyp |
dcc0 | 65 27 7d 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 69 66 20 28 | e'}.);.................}.elsif.( |
dce0 | 20 24 69 74 65 6d 2d 3e 7b 27 47 72 6f 75 70 44 6f 6d 61 69 6e 27 7d 20 65 71 20 27 52 54 3a 3a | .$item->{'GroupDomain'}.eq.'RT:: |
dd00 | 53 79 73 74 65 6d 2d 52 6f 6c 65 27 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | System-Role'.).{................ |
dd20 | 20 20 20 24 70 72 69 6e 63 2d 3e 4c 6f 61 64 53 79 73 74 65 6d 49 6e 74 65 72 6e 61 6c 47 72 6f | ...$princ->LoadSystemInternalGro |
dd40 | 75 70 28 20 24 69 74 65 6d 2d 3e 7b 27 47 72 6f 75 70 54 79 70 65 27 7d 20 29 3b 00 20 20 20 20 | up(.$item->{'GroupType'}.);..... |
dd60 | 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 69 66 20 28 20 24 69 74 65 6d 2d 3e 7b 27 47 | ............}.elsif.(.$item->{'G |
dd80 | 72 6f 75 70 44 6f 6d 61 69 6e 27 7d 20 65 71 20 27 53 79 73 74 65 6d 49 6e 74 65 72 6e 61 6c 27 | roupDomain'}.eq.'SystemInternal' |
dda0 | 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 72 69 6e 63 2d 3e 4c | .).{...................$princ->L |
ddc0 | 6f 61 64 55 73 65 72 44 65 66 69 6e 65 64 47 72 6f 75 70 28 20 24 69 74 65 6d 2d 3e 7b 27 47 72 | oadUserDefinedGroup(.$item->{'Gr |
dde0 | 6f 75 70 49 64 27 7d 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 20 | oupId'}.);.................if.(. |
de00 | 24 69 74 65 6d 2d 3e 7b 27 47 72 6f 75 70 44 6f 6d 61 69 6e 27 7d 20 65 71 20 27 55 73 65 72 44 | $item->{'GroupDomain'}.eq.'UserD |
de20 | 65 66 69 6e 65 64 27 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 72 69 | efined'.).{.................$pri |
de40 | 6e 63 20 3d 20 52 54 3a 3a 47 72 6f 75 70 2d 3e 6e 65 77 28 52 54 2d 3e 53 79 73 74 65 6d 55 73 | nc.=.RT::Group->new(RT->SystemUs |
de60 | 65 72 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 20 24 69 74 65 6d 2d 3e 7b 27 47 | er);.............if.(.$item->{'G |
de80 | 72 6f 75 70 44 6f 6d 61 69 6e 27 7d 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 23 20 47 | roupDomain'}.).{.............#.G |
dea0 | 72 6f 75 70 20 72 69 67 68 74 73 20 6f 72 20 75 73 65 72 20 72 69 67 68 74 73 3f 00 00 20 20 20 | roup.rights.or.user.rights?..... |
dec0 | 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 22 43 6f 75 | .........$RT::Logger->error("Cou |
dee0 | 6c 64 6e 27 74 20 6c 6f 61 64 20 6f 62 6a 65 63 74 22 29 20 61 6e 64 20 6e 65 78 74 20 75 6e 6c | ldn't.load.object").and.next.unl |
df00 | 65 73 73 20 24 6f 62 6a 65 63 74 20 61 6e 64 20 24 6f 62 6a 65 63 74 2d 3e 49 64 3b 00 00 20 20 | ess.$object.and.$object->Id;.... |
df20 | 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6f 62 6a | ..........}.................$obj |
df40 | 65 63 74 20 3d 20 24 52 54 3a 3a 53 79 73 74 65 6d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 7d | ect.=.$RT::System;.............} |
df60 | 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6f 62 6a 65 63 74 2d | .else.{.................$object- |
df80 | 3e 4c 6f 61 64 28 20 24 69 74 65 6d 2d 3e 7b 27 51 75 65 75 65 27 7d 20 29 3b 00 20 20 20 20 20 | >Load(.$item->{'Queue'}.);...... |
dfa0 | 20 20 20 20 20 20 20 20 20 20 20 24 6f 62 6a 65 63 74 20 3d 20 52 54 3a 3a 51 75 65 75 65 2d 3e | ...........$object.=.RT::Queue-> |
dfc0 | 6e 65 77 28 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 | new(RT->SystemUser);............ |
dfe0 | 20 7d 20 65 6c 73 69 66 20 28 20 24 69 74 65 6d 2d 3e 7b 27 51 75 65 75 65 27 7d 20 29 20 7b 00 | .}.elsif.(.$item->{'Queue'}.).{. |
e000 | 61 64 00 00 02 00 00 00 f6 01 00 00 00 10 00 00 76 00 00 00 00 00 00 00 db 0f 00 00 d5 0f 00 00 | ad..............v............... |
e020 | c0 0f 00 00 8e 0f 00 00 8d 0f 00 00 6c 0f 00 00 30 0f 00 00 2f 0f 00 00 c7 0e 00 00 7f 0e 00 00 | ............l...0.../........... |
e040 | 7e 0e 00 00 56 0e 00 00 04 0e 00 00 df 0d 00 00 af 0d 00 00 9d 0d 00 00 86 0d 00 00 4e 0d 00 00 | ~...V.......................N... |
e060 | 3c 0d 00 00 2e 0d 00 00 24 0d 00 00 ff 0c 00 00 f9 0c 00 00 e0 0c 00 00 aa 0c 00 00 77 0c 00 00 | <.......$...................w... |
e080 | 76 0c 00 00 51 0c 00 00 ff 0b 00 00 e4 0b 00 00 a4 0b 00 00 83 0b 00 00 57 0b 00 00 49 0b 00 00 | v...Q...................W...I... |
e0a0 | 36 0b 00 00 02 0b 00 00 f4 0a 00 00 ea 0a 00 00 c5 0a 00 00 bf 0a 00 00 ab 0a 00 00 73 0a 00 00 | 6...........................s... |
e0c0 | 5a 0a 00 00 44 0a 00 00 26 0a 00 00 db 09 00 00 c4 09 00 00 ba 09 00 00 95 09 00 00 8f 09 00 00 | Z...D...&....................... |
e0e0 | 8e 09 00 00 3f 09 00 00 f4 08 00 00 a5 08 00 00 71 08 00 00 4c 08 00 00 15 08 00 00 d6 07 00 00 | ....?...........q...L........... |
e100 | d0 07 00 00 cf 07 00 00 92 07 00 00 91 07 00 00 49 07 00 00 05 07 00 00 be 06 00 00 96 06 00 00 | ................I............... |
e120 | 94 06 00 00 93 06 00 00 7c 06 00 00 7b 06 00 00 42 06 00 00 41 06 00 00 3c 06 00 00 3b 06 00 00 | ........|...{...B...A...<...;... |
e140 | 25 06 00 00 11 06 00 00 10 06 00 00 f3 05 00 00 de 05 00 00 bd 05 00 00 99 05 00 00 73 05 00 00 | %...........................s... |
e160 | 37 05 00 00 31 05 00 00 30 05 00 00 03 05 00 00 d1 04 00 00 b4 04 00 00 b2 04 00 00 b1 04 00 00 | 7...1...0....................... |
e180 | 9d 04 00 00 9c 04 00 00 4d 04 00 00 ff 03 00 00 ab 03 00 00 aa 03 00 00 a5 03 00 00 a4 03 00 00 | ........M....................... |
e1a0 | 91 03 00 00 7b 03 00 00 7a 03 00 00 58 03 00 00 56 03 00 00 55 03 00 00 3a 03 00 00 39 03 00 00 | ....{...z...X...V...U...:...9... |
e1c0 | ec 02 00 00 a0 02 00 00 7b 02 00 00 7a 02 00 00 75 02 00 00 74 02 00 00 5a 02 00 00 41 02 00 00 | ........{...z...u...t...Z...A... |
e1e0 | 28 02 00 00 27 02 00 00 f8 01 00 00 f6 01 00 00 00 00 00 00 00 00 7d 00 20 20 20 20 70 75 73 68 | (...'.................}.....push |
e200 | 20 40 7b 20 24 73 65 6c 66 2d 3e 7b 51 75 65 72 79 48 69 73 74 6f 72 79 7d 20 7d 2c 20 24 72 65 | .@{.$self->{QueryHistory}.},.$re |
e220 | 71 75 65 73 74 3b 00 00 20 20 20 20 6d 79 20 24 72 65 71 75 65 73 74 20 3d 20 73 68 69 66 74 3b | quest;......my.$request.=.shift; |
e240 | 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 20 20 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 41 64 | .....my.$self....=.shift;.sub.Ad |
e260 | 64 52 65 71 75 65 73 74 54 6f 48 69 73 74 6f 72 79 20 7b 00 00 3d 63 75 74 00 00 73 71 6c 2c 20 | dRequestToHistory.{..=cut..sql,. |
e280 | 62 69 6e 64 20 70 61 72 61 6d 65 74 65 72 73 2c 20 61 6e 64 20 64 75 72 61 74 69 6f 6e 29 2e 00 | bind.parameters,.and.duration).. |
e2a0 | 73 74 72 69 6e 67 29 20 61 6e 64 20 51 75 65 72 69 65 73 20 28 61 6e 20 61 72 72 61 79 20 72 65 | string).and.Queries.(an.array.re |
e2c0 | 66 65 72 65 6e 63 65 20 6f 66 20 61 72 72 61 79 73 2c 20 77 68 65 72 65 20 65 6c 65 6d 65 6e 74 | ference.of.arrays,.where.element |
e2e0 | 73 20 61 72 65 20 74 69 6d 65 2c 00 41 64 64 73 20 61 20 77 65 62 20 72 65 71 75 65 73 74 20 74 | s.are.time,.Adds.a.web.request.t |
e300 | 6f 20 74 68 65 20 71 75 65 72 79 20 68 69 73 74 6f 72 79 2e 20 49 74 20 6d 75 73 74 20 62 65 20 | o.the.query.history..It.must.be. |
e320 | 61 20 68 61 73 68 20 77 69 74 68 20 6b 65 79 73 20 50 61 74 68 20 28 61 00 00 3d 68 65 61 64 32 | a.hash.with.keys.Path.(a..=head2 |
e340 | 20 41 64 64 52 65 71 75 65 73 74 54 6f 48 69 73 74 6f 72 79 00 00 7d 00 20 20 20 20 72 65 74 75 | .AddRequestToHistory..}.....retu |
e360 | 72 6e 20 24 73 65 6c 66 2d 3e 7b 51 75 65 72 79 48 69 73 74 6f 72 79 7d 3b 00 00 20 20 20 20 6d | rn.$self->{QueryHistory};......m |
e380 | 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 51 75 65 72 79 48 69 73 74 6f 72 | y.$self.=.shift;.sub.QueryHistor |
e3a0 | 79 20 7b 00 00 3d 63 75 74 00 00 72 65 71 75 65 73 74 20 28 73 75 63 68 20 61 73 20 74 68 65 20 | y.{..=cut..request.(such.as.the. |
e3c0 | 55 52 4c 29 20 61 6e 64 20 61 20 6c 69 73 74 20 6f 66 20 71 75 65 72 69 65 73 2e 20 59 6f 75 27 | URL).and.a.list.of.queries..You' |
e3e0 | 6c 6c 20 70 72 6f 62 61 62 6c 79 20 6e 6f 74 20 62 65 20 75 73 69 6e 67 20 74 68 69 73 2e 00 72 | ll.probably.not.be.using.this..r |
e400 | 65 70 72 65 73 65 6e 74 73 20 61 20 6c 69 73 74 73 20 6f 66 20 72 65 71 75 65 73 74 2e 20 45 61 | epresents.a.lists.of.request..Ea |
e420 | 63 68 20 72 65 71 75 65 73 74 20 69 73 20 61 20 68 61 73 68 20 77 69 74 68 20 6d 65 74 61 64 61 | ch.request.is.a.hash.with.metada |
e440 | 74 61 20 61 62 6f 75 74 20 74 68 65 00 52 65 74 75 72 6e 73 20 74 68 65 20 53 51 4c 20 71 75 65 | ta.about.the.Returns.the.SQL.que |
e460 | 72 79 20 68 69 73 74 6f 72 79 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68 69 73 20 | ry.history.associated.with.this. |
e480 | 68 61 6e 64 6c 65 2e 20 54 68 65 20 74 6f 70 20 6c 65 76 65 6c 20 61 72 72 61 79 00 00 3d 68 65 | handle..The.top.level.array..=he |
e4a0 | 61 64 32 20 51 75 65 72 79 48 69 73 74 6f 72 79 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e 20 24 | ad2.QueryHistory..}.....return.$ |
e4c0 | 65 71 75 69 76 5f 67 72 6f 75 70 2d 3e 49 64 3b 00 20 20 20 20 24 65 71 75 69 76 5f 67 72 6f 75 | equiv_group->Id;.....$equiv_grou |
e4e0 | 70 2d 3e 4c 6f 61 64 41 43 4c 45 71 75 69 76 61 6c 65 6e 63 65 47 72 6f 75 70 28 20 24 69 64 20 | p->LoadACLEquivalenceGroup(.$id. |
e500 | 29 3b 00 20 20 20 20 6d 79 20 24 65 71 75 69 76 5f 67 72 6f 75 70 20 3d 20 52 54 3a 3a 47 72 6f | );.....my.$equiv_group.=.RT::Gro |
e520 | 75 70 2d 3e 6e 65 77 28 20 24 63 75 20 29 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 77 | up->new(.$cu.);......}.........w |
e540 | 61 72 6e 20 22 43 6f 75 6c 64 6e 27 74 20 6c 6f 61 64 20 52 54 5f 53 79 73 74 65 6d 20 75 73 65 | arn."Couldn't.load.RT_System.use |
e560 | 72 22 20 75 6e 6c 65 73 73 20 24 63 75 2d 3e 69 64 3b 00 20 20 20 20 20 20 20 20 24 63 75 2d 3e | r".unless.$cu->id;.........$cu-> |
e580 | 4c 6f 61 64 42 79 4e 61 6d 65 28 27 52 54 5f 53 79 73 74 65 6d 27 29 3b 00 20 20 20 20 20 20 20 | LoadByName('RT_System');........ |
e5a0 | 20 24 63 75 20 3d 20 52 54 3a 3a 43 75 72 72 65 6e 74 55 73 65 72 2d 3e 6e 65 77 3b 00 20 20 20 | .$cu.=.RT::CurrentUser->new;.... |
e5c0 | 20 20 20 20 20 72 65 71 75 69 72 65 20 52 54 3a 3a 43 75 72 72 65 6e 74 55 73 65 72 3b 00 20 20 | .....require.RT::CurrentUser;... |
e5e0 | 20 20 75 6e 6c 65 73 73 20 28 20 24 63 75 20 29 20 7b 00 20 20 20 20 6d 79 20 24 63 75 20 3d 20 | ..unless.(.$cu.).{.....my.$cu.=. |
e600 | 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 3b 00 00 20 20 20 20 6d 79 20 24 69 64 20 3d 20 73 68 | RT->SystemUser;......my.$id.=.sh |
e620 | 69 66 74 3b 00 73 75 62 20 41 43 4c 45 71 75 69 76 47 72 6f 75 70 49 64 20 7b 00 00 3d 63 75 74 | ift;.sub.ACLEquivGroupId.{..=cut |
e640 | 00 00 47 69 76 65 6e 20 61 20 75 73 65 72 69 64 2c 20 72 65 74 75 72 6e 20 74 68 61 74 20 75 73 | ..Given.a.userid,.return.that.us |
e660 | 65 72 27 73 20 61 63 6c 20 65 71 75 69 76 61 6c 65 6e 63 65 20 67 72 6f 75 70 00 00 3d 68 65 61 | er's.acl.equivalence.group..=hea |
e680 | 64 32 20 41 43 4c 45 71 75 69 76 47 72 6f 75 70 49 64 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e | d2.ACLEquivGroupId..}.....return |
e6a0 | 28 20 31 2c 20 27 44 6f 6e 65 20 69 6e 73 65 72 74 69 6e 67 20 64 61 74 61 27 20 29 3b 00 23 20 | (.1,.'Done.inserting.data'.);.#. |
e6c0 | 61 6e 79 77 61 79 2c 20 77 65 20 6e 65 65 64 20 74 6f 20 72 65 74 75 72 6e 20 73 6f 6d 65 74 68 | anyway,.we.need.to.return.someth |
e6e0 | 69 6e 67 20 68 65 72 65 20 74 6f 20 74 65 6c 6c 20 69 66 20 65 76 65 72 79 74 68 69 6e 67 20 69 | ing.here.to.tell.if.everything.i |
e700 | 73 20 6f 6b 00 23 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 28 30 2c 20 24 6d 73 67 29 20 69 | s.ok.#.should.return.(0,.$msg).i |
e720 | 66 20 65 72 72 6f 72 20 68 61 70 70 65 6e 73 20 69 6e 73 74 65 61 64 20 6f 66 20 6a 75 73 74 20 | f.error.happens.instead.of.just. |
e740 | 77 61 72 6e 69 6e 67 2e 00 23 20 54 4f 44 4f 20 69 73 20 69 74 20 6f 6b 20 74 6f 20 72 65 74 75 | warning..#.TODO.is.it.ok.to.retu |
e760 | 72 6e 20 31 20 68 65 72 65 3f 20 49 66 20 73 6f 2c 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 63 | rn.1.here?.If.so,.the.previous.c |
e780 | 6f 64 65 73 20 69 6e 20 74 68 69 73 20 73 75 62 00 00 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 | odes.in.this.sub......$RT::Logge |
e7a0 | 72 2d 3e 64 65 62 75 67 28 22 44 6f 6e 65 20 73 65 74 74 69 6e 67 20 75 70 20 64 61 74 61 62 61 | r->debug("Done.setting.up.databa |
e7c0 | 73 65 20 63 6f 6e 74 65 6e 74 2e 22 29 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 52 | se.content.");......}.........$R |
e7e0 | 54 3a 3a 48 61 6e 64 6c 65 2d 3e 44 69 73 63 6f 6e 6e 65 63 74 28 29 20 75 6e 6c 65 73 73 20 24 | T::Handle->Disconnect().unless.$ |
e800 | 64 62 5f 74 79 70 65 20 65 71 20 27 53 51 4c 69 74 65 27 3b 00 20 20 20 20 20 20 20 20 6d 79 20 | db_type.eq.'SQLite';.........my. |
e820 | 24 64 62 5f 74 79 70 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 | $db_type.=.RT->Config->Get('Data |
e840 | 62 61 73 65 54 79 70 65 27 29 3b 00 20 20 20 20 69 66 20 28 20 24 61 72 67 73 7b 64 69 73 63 6f | baseType');.....if.(.$args{disco |
e860 | 6e 6e 65 63 74 5f 61 66 74 65 72 7d 20 29 20 7b 00 20 20 20 20 23 20 77 65 20 63 61 6e 20 70 72 | nnect_after}.).{.....#.we.can.pr |
e880 | 6f 76 69 64 65 20 61 20 77 61 79 20 74 6f 20 73 6b 69 70 20 74 68 65 20 73 69 64 65 2d 65 66 66 | ovide.a.way.to.skip.the.side-eff |
e8a0 | 65 63 74 2e 00 20 20 20 20 23 20 64 65 70 65 6e 64 73 20 6f 6e 20 69 74 20 74 6f 20 63 68 61 6e | ect......#.depends.on.it.to.chan |
e8c0 | 67 65 20 77 69 74 68 6f 75 74 20 73 69 67 6e 69 66 69 63 61 6e 74 20 74 65 73 74 69 6e 67 2e 20 | ge.without.significant.testing.. |
e8e0 | 20 41 74 20 74 68 65 20 76 65 72 79 20 6c 65 61 73 74 2c 00 20 20 20 20 23 20 74 68 69 73 20 6d | .At.the.very.least,.....#.this.m |
e900 | 65 74 68 6f 64 20 77 61 73 20 65 78 74 72 61 63 74 65 64 20 66 72 6f 6d 20 72 74 2d 73 65 74 75 | ethod.was.extracted.from.rt-setu |
e920 | 70 2d 64 61 74 61 62 61 73 65 2e 20 20 48 6f 77 65 76 65 72 2c 20 74 6f 6f 20 6d 75 63 68 00 20 | p-database...However,.too.much.. |
e940 | 20 20 20 23 20 58 58 58 3a 20 54 68 69 73 20 64 69 73 63 6f 6e 6e 65 63 74 20 64 6f 65 73 6e 27 | ...#.XXX:.This.disconnect.doesn' |
e960 | 74 20 72 65 61 6c 6c 79 20 62 65 6c 6f 6e 67 20 68 65 72 65 3b 20 69 74 27 73 20 61 20 72 65 6c | t.really.belong.here;.it's.a.rel |
e980 | 69 63 74 20 66 72 6f 6d 20 77 68 65 6e 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 52 54 | ict.from.when......}.........$RT |
e9a0 | 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 64 6f 6e 65 2e 22 29 3b 00 20 20 20 20 20 20 | ::Logger->debug("done.");....... |
e9c0 | 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 24 40 3b 00 20 20 20 20 20 | ..}.................if.$@;...... |
e9e0 | 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 20 22 46 61 69 6c | .......$RT::Logger->error(."Fail |
ea00 | 65 64 20 74 6f 20 72 75 6e 20 6f 6e 65 20 6f 66 20 66 69 6e 61 6c 20 61 63 74 69 6f 6e 73 3a 20 | ed.to.run.one.of.final.actions:. |
ea20 | 24 40 22 20 29 00 20 20 20 20 20 20 20 20 20 20 20 20 65 76 61 6c 20 7b 20 24 5f 2d 3e 28 29 3b | $@".).............eval.{.$_->(); |
ea40 | 20 7d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 63 61 6c 20 24 40 3b 00 20 20 20 20 20 20 | .};.............local.$@;....... |
ea60 | 20 20 66 6f 72 20 28 20 40 46 69 6e 61 6c 20 29 20 7b 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a | ..for.(.@Final.).{.........$RT:: |
ea80 | 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 52 75 6e 6e 69 6e 67 20 66 69 6e 61 6c 20 61 63 74 | Logger->debug("Running.final.act |
eaa0 | 69 6f 6e 73 2e 2e 2e 22 29 3b 00 20 20 20 20 69 66 20 28 20 40 46 69 6e 61 6c 20 29 20 7b 00 20 | ions...");.....if.(.@Final.).{.. |
eac0 | 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 | ...}.........$RT::Logger->debug( |
eae0 | 22 64 6f 6e 65 2e 22 29 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 | "done.");.........}............. |
eb00 | 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 | }.................$RT::Logger->d |
eb20 | 65 62 75 67 28 20 24 72 65 74 75 72 6e 20 2e 22 2e 22 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 | ebug(.$return..".".);........... |
eb40 | 20 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 | ..else.{.............}.......... |
eb60 | 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 20 24 6d 73 67 20 | .......$RT::Logger->error(.$msg. |
eb80 | 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 72 65 74 75 72 6e 20 | );.............unless.(.$return. |
eba0 | 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 72 65 74 75 72 6e 2c 20 24 6d | ).{.............my.(.$return,.$m |
ebc0 | 73 67 20 29 20 3d 20 24 6f 62 6a 2d 3e 41 64 64 41 74 74 72 69 62 75 74 65 20 28 25 24 69 74 65 | sg.).=.$obj->AddAttribute.(%$ite |
ebe0 | 6d 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 24 6f 62 6a 20 7c 7c 3d 20 24 73 79 73 3b 00 20 | m);.............$obj.||=.$sys;.. |
ec00 | 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 6f 62 6a 20 3d 20 64 65 6c 65 74 65 20 24 69 74 65 | ...........my.$obj.=.delete.$ite |
ec20 | 6d 2d 3e 7b 4f 62 6a 65 63 74 7d 3b 20 23 20 58 58 58 3a 20 6d 61 6b 65 20 74 68 69 73 20 73 6f | m->{Object};.#.XXX:.make.this.so |
ec40 | 6d 65 74 68 69 6e 67 20 6c 6f 61 64 61 62 6c 65 00 20 20 20 20 20 20 20 20 66 6f 72 20 6d 79 20 | mething.loadable.........for.my. |
ec60 | 24 69 74 65 6d 20 28 40 41 74 74 72 69 62 75 74 65 73 29 20 7b 00 00 20 20 20 20 20 20 20 20 6d | $item.(@Attributes).{..........m |
ec80 | 79 20 24 73 79 73 20 3d 20 52 54 3a 3a 53 79 73 74 65 6d 2d 3e 6e 65 77 28 52 54 2d 3e 53 79 73 | y.$sys.=.RT::System->new(RT->Sys |
eca0 | 74 65 6d 55 73 65 72 29 3b 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 | temUser);.........$RT::Logger->d |
ecc0 | 65 62 75 67 28 22 43 72 65 61 74 69 6e 67 20 61 74 74 72 69 62 75 74 65 73 2e 2e 2e 22 29 3b 00 | ebug("Creating.attributes...");. |
ece0 | 20 20 20 20 69 66 20 28 20 40 41 74 74 72 69 62 75 74 65 73 20 29 20 7b 00 20 20 20 20 7d 00 20 | ....if.(.@Attributes.).{.....}.. |
ed00 | 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 64 6f 6e 65 2e | .......$RT::Logger->debug("done. |
ed20 | 22 29 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 | ");.........}.............}..... |
ed40 | 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ............}................... |
ed60 | 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 20 24 72 65 74 75 72 6e 20 2e 22 | ..$RT::Logger->debug(.$return.." |
ed80 | 2e 22 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 00 20 20 20 | .".);.................else.{.... |
eda0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .............}.................. |
edc0 | 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 20 24 6d 73 67 20 29 3b 00 20 | ...$RT::Logger->error(.$msg.);.. |
ede0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 72 65 74 75 72 6e 20 | ...............unless.(.$return. |
ee00 | 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 72 65 74 75 72 6e | ).{.................my.(.$return |
ee20 | 2c 20 24 6d 73 67 20 29 20 3d 20 24 6e 65 77 5f 65 6e 74 72 79 2d 3e 43 72 65 61 74 65 28 20 25 | ,.$msg.).=.$new_entry->Create(.% |
ee40 | 24 69 74 65 6d 2c 20 51 75 65 75 65 20 3d 3e 20 24 71 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 | $item,.Queue.=>.$q.);........... |
ee60 | 20 20 66 6f 72 65 61 63 68 20 6d 79 20 24 71 20 28 20 40 71 75 65 75 65 73 20 29 20 7b 00 00 20 | ..foreach.my.$q.(.@queues.).{... |
ee80 | 20 20 20 20 20 20 20 20 20 20 20 70 75 73 68 20 40 71 75 65 75 65 73 2c 20 30 20 75 6e 6c 65 73 | ...........push.@queues,.0.unles |
eea0 | 73 20 40 71 75 65 75 65 73 3b 20 23 20 61 64 64 20 67 6c 6f 62 61 6c 20 71 75 65 75 65 20 61 74 | s.@queues;.#.add.global.queue.at |
eec0 | 20 6c 65 61 73 74 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 40 71 75 65 75 65 73 20 3d 20 | .least.............my.@queues.=. |
eee0 | 72 65 66 20 24 69 74 65 6d 2d 3e 7b 27 51 75 65 75 65 27 7d 20 65 71 20 27 41 52 52 41 59 27 3f | ref.$item->{'Queue'}.eq.'ARRAY'? |
ef00 | 20 40 7b 20 24 69 74 65 6d 2d 3e 7b 27 51 75 65 75 65 27 7d 20 7d 3a 20 24 69 74 65 6d 2d 3e 7b | .@{.$item->{'Queue'}.}:.$item->{ |
ef20 | 27 51 75 65 75 65 27 7d 20 7c 7c 20 30 3b 00 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 | 'Queue'}.||.0;..............my.$ |
ef40 | 6e 65 77 5f 65 6e 74 72 79 20 3d 20 52 54 3a 3a 53 63 72 69 70 2d 3e 6e 65 77 28 52 54 2d 3e 53 | new_entry.=.RT::Scrip->new(RT->S |
ef60 | 79 73 74 65 6d 55 73 65 72 29 3b 00 20 20 20 20 20 20 20 20 66 6f 72 20 6d 79 20 24 69 74 65 6d | ystemUser);.........for.my.$item |
ef80 | 20 28 40 53 63 72 69 70 73 29 20 7b 00 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 | .(@Scrips).{..........$RT::Logge |
efa0 | 72 2d 3e 64 65 62 75 67 28 22 43 72 65 61 74 69 6e 67 20 73 63 72 69 70 73 2e 2e 2e 22 29 3b 00 | r->debug("Creating.scrips...");. |
efc0 | 20 20 20 20 69 66 20 28 20 40 53 63 72 69 70 73 20 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 | ....if.(.@Scrips.).{.....}...... |
efe0 | 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 64 6f 6e 65 2e 22 29 3b 00 | ...$RT::Logger->debug("done.");. |