From 2c526e6f51e950a158d37ed6597b823b4cff7b30 Mon Sep 17 00:00:00 2001 From: arjen Date: Fri, 6 Dec 2002 22:38:15 +0000 Subject: [PATCH] A slightly functional web interface (initial revision) --- src/web/functions.php | 5 +- src/web/log.php | 96 ++++++++++++++++++++++++++++ src/web/login.php | 94 ++++++++++++++++----------- src/web/logo.png | Bin 0 -> 4772 bytes src/web/logout.php | 12 ++++ src/web/menu.html | 7 +-- src/web/objects.php | 127 +++++++++++++++++++++++++++++++++++++ src/web/parameter.php | 132 ++++++++++++++++++++++++++++++++++++++ src/web/parameter_compare.php | 109 ++++++++++++++++++++++++++++++++ src/web/users.php | 143 ++++++++++++++++++++++++++++++++++++++++++ 10 files changed, 684 insertions(+), 41 deletions(-) create mode 100644 src/web/log.php create mode 100644 src/web/logo.png create mode 100644 src/web/logout.php create mode 100644 src/web/objects.php create mode 100644 src/web/parameter.php create mode 100644 src/web/parameter_compare.php create mode 100644 src/web/users.php diff --git a/src/web/functions.php b/src/web/functions.php index 9dfa47e..2151df2 100755 --- a/src/web/functions.php +++ b/src/web/functions.php @@ -1,4 +1,4 @@ -"; $login .= "

GNU Computer Monitoring

"; + $login .= "

Version 0.0.3, December 6, 2003

"; $login .= "
"; $login .= ""; - $login .= ""; + $login .= ""; $login .= "
GnuCoMo logoGnuCoMo logo
"; $login .= " "; $login .= " "; diff --git a/src/web/log.php b/src/web/log.php new file mode 100644 index 0000000..96ac2cd --- /dev/null +++ b/src/web/log.php @@ -0,0 +1,96 @@ + + + + + + + +GNUCoMo login + + + + + +read("gnucomo"); + + // Connect to the database + $conn = pg_connect($config->Database($_SESSION['username'], $_SESSION['password'])); + + if (!empty($_GET['oid'])) + { + $res = pg_exec("SELECT objectname FROM object WHERE objectid=" . $_GET['oid']); + $obj = pg_fetch_object($res, 0); + echo "

Log for " . $obj->objectname . "


"; + + $res = pg_exec("SELECT object_timestamp, servicecode, rawdata FROM log " + ."WHERE objectid=" . $_GET['oid']); + + echo "
"; + $row = 0; + while ($row < pg_numrows($res)) + { + $log = pg_fetch_object($res, $row); + ?> + + "; + } +} +?> + + + diff --git a/src/web/login.php b/src/web/login.php index 871bd10..a204320 100755 --- a/src/web/login.php +++ b/src/web/login.php @@ -1,6 +1,6 @@ @@ -12,47 +12,71 @@ include "functions.php"; read("gnucomo"); - //echo "Database Access string = " . $config->Database(); - - $conn = pg_connect($config->Database()); - // connect to the database - //$conn = pg_Connect( "host=$pgsqlhost port=$pgsqlport dbname=$dbname user=$name password=$passw" ); - if( !$conn ) { - echo "Error connecting, try again."; - echo login_form(); - $_SESSION["login"] = true; - } else { - $sql = "SELECT * FROM user_gnucomo WHERE username='$name' and password='$passw'"; - $res = query( $conn, $sql ); + // connect to the database + //echo "Database connection = " . $config->Database($name, $passw) . "
"; + $conn = pg_connect($config->Database($name, $passw)); - if( $res[0] ) { - if ($res[2] == 1) - { - $arr = pg_fetch_array( $res[1], 0 ); - $_SESSION["login.ini"] = $arr; - } - else - { - echo "Login incorrect.
"; - } + if ( !$conn ) + { + echo "Error connecting, try again."; + echo login_form(); + } + else + { + $sql = "SELECT * FROM usr WHERE username='$name'"; + $res = pg_exec( $conn, $sql ); + if ($res && pg_numrows($res) == 1) + { + echo "
Database login OK.
"; + session_register('username'); + $_SESSION["username"] = $name; + session_register('password'); + $_SESSION["password"] = $passw; + } + else + { + // User not found in database. Check if we have any users at all. - // user is authorised, step to next page. - echo "Ok!"; - } else { - pgsql_error( "SQL: error.
" . $res[3] ); - } - } -} else { - echo login_form(); - $_SESSION["login"] = true; + $res = pg_exec($conn, "SELECT count(username) FROM usr"); + $nusers = pg_fetch_object($res, 0); + $nusers = $nusers->count; + if ($nusers == 0) + { + echo "
No users in database. Authentication granted.
"; + session_register('username'); + $_SESSION["username"] = $name; + session_register('password'); + $_SESSION["password"] = $passw; + } + else + { + echo "
User $name not found in database.
"; + } + } + } +} +else +{ + echo login_form(); + $_SESSION["login"] = true; +} +} +else +{ + echo "Logged in as " . $_SESSION['username'] . "
"; } ?> diff --git a/src/web/logo.png b/src/web/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..da250eee540a6ec0bce3f6de2edb767bd4e81ef1 GIT binary patch literal 4772 zcmV;V5?k$wP)`#gcHVqZW& zkY=?=5r9PiwYqYuO)hTI+#*Pvf6dbVz#dZn> zN63H#6(19KFyU^Yjo$#^&DaGXVZks`4ns=fBq6#RK*13Q2~}(W$8f|j21Clf0{DID z@6P~!2jE)(|3Kb${|Vr~0Dc4D*8u(l;3oiQ57!s}6XiJ*?|lQ{4*-68xW4$4p)$6H zf+I#TCAd&sjv*!KM4hlqCQL$2z69Be5PJ+Mgb-bh(*mTCP+ewBC^&Kgg=PT|282ly;tVmkD+NaeBL+dKh`s{IF}9K>6k84} zfmqK>Qf#lVA|hspDFBM?7*RL^T6Y6_^fd@p}v43BYzgSv{F6VVsO1Hjd|BG460lmR5!!F0nu%D!Qi}V}cWownRxFBy4mZrbv!4A~+$o&j8L%T#uN?v=}J1 zZuAzM2qCvE-clW#mB)8o#(HD`WaBW3O`l$Z6VCRi@zO1T`~76KZutNE%5^W1yX6c( z@nI*eQ`z+*3;MF9w8UQ0l=L^Xtjtbf-ewmCx98=?^*MH+4$7RL_d!ncZ;qerE0G2Uh)4n zn4&p>vj*@oVV-2^_W%|(uR9k%vm{Hm0B#hGUi+R6EYMt+H+aqHj?R3ud#336(|Yl; zqE`oUcW`nER+6RfL?~P*wklKPbBkVMQY6eg_NU8k0o6R2Gre+|j+67}B77#q2wemx z4JX@90SrW+l`veYR)Q|qk62Fas&nPF_<0B57R_Sh$`@jcE`pQw_%6Czl{J7xd7LQ{ zB#q0{k}RD$>fFRLV%zb(-cMF1nMaYnKa5l+5)m;8PPLbglk^&JYM>vZjo~z=7wYJG z6vLJqSNlV;^=HhaiEPri37yI0I-HyrB=KQ7q~vOT2ca{$Ll?oxvUNmV;kKU$=`1)6mjiOqeU5ZYcb;VFiKu)O8{N?yeV2A! zLA|ka3ScX?z^vi$5e#kFPgZM1R`oH-(k1eR(U-`D#zSo*rkCLMlhsp_rFYO<6FC(> z%TgmPCtrL$Vfg@gxtq>UIUrx->HO*(CS1(Xd!>okm^nqa{baM!kB?#lx}8vVKpq`9 z?eq`V7iSckS&S_05?f}j;Kz<{qiBw0%NRS6+9nj59gMA|+)q|dV$azWc7!KA24Q5b zpjWo#ezN+GVv85!`{9J!-2nMnAgFngsRrxPZ{1C&#oEj|bR1}j=8i%tCLy4!(&sIY zN7v&0b;+Vd*L&K6VzbL=m0M1k^MIaV&`Ix8aCRAO$2UbrVuZa}M6{W}rqkIWrc=8} z3%I((4(!DufX|0>2Ra-f1HzswaQHw*x1hrX498*aLBSC+APf@%#fG~vtn3dREhJq8+iOm&v8w!fe zKBGO%gSZ2QHXPmxu5ct1F68RCjf97HJzI>SAD3^1gI8m?rlf|e$qv_{*oMa&!Kp+Q zvgjy`aPUHKI${bvth50q(uc=+!Rb0z$PNe4q316x;B$9>cjbuA;6#502%A<4AC>ij9y^I1-$zF5+sr zLV_+g4Br&T!kOGbZ4%eYLr5Q5PkeV3K-+MYLL(vaA~>A}-bVy=@11XUFaKWtGdbqr z`r?csUl_cM;ZzP}Lk#6>Qfwp!w3c>J4CBMOvM^8zj$$Lk9JTXsg~%v2Ld?>*(u86o z#5^Yx-xONBFcWGYr_VGYuXGUu6D{uX24MIYA{3jOd_%E?2gT+t3@JTe$gvg2adx5L z$O#mkJ-mHBTJDpl zMJybHxq}l8!WV{axTXYaqTH@@9=^knQWLraF#!eVAP?6UXC@tm?&J;>oCYBzNhmru zpx_jQ6iQNbY0}8H0NZ})K6ZWctF~v5PyD_XB z9wto?r`X6iL@zjsO&^Bb{qgDxH_2Fy$0d>RM6cnA(&5-s=X4bg>#sY}^;Bc58kui) z&#t-x_vsBwR261ZY(6(WhL*z-MTOZCS||;UE;k&(Pke`RkPiuiD3d0A2vKYyekNB5 z-r-EaMoCOShtq&!Bc`CkH4vM~>JC97=ApyY5S!S@a8Pg+C^lk~;04!4K(UK0_Rl{A z!3&NMm!RMX8IULh$54s5LKK1{`ml4d3k6q#^H9V#6dXCBjmxoM+0>mg3njAVDkK989+M%m}Lis*|_z-=Gd0uEtx`@yB@5JlEn}UKHpElz2`Fr6Q zjyOS^b(ubo>nJ$l6rqdGTWdB2*HyYns39gDjyOrETYsV!oUdU?OoS%7s0ByJ&`@y1 zc~mavQ=}4U+0Hu_$&3R&XZ7W-^=<&ZZ-_Er5k2fpA~CW+A{C!Vuu4>IKDj zGT-c;DL6-P(AnNWEw%%In>K0x{bcoo+!5B|K1HU}SI(0xz0|3LPj5d=k#|mB5tQH@ zJ}v4Na`!m^xDo>DjA*F7&(lqz_ZhtGSb|BKxaMjF!rfE}lHOtq2;FRD>#U{=1mSQd z#b(LfWGu!Oo9Gl~cx}XG_b8GWYr_-BThxn2>0Fi7H`WkIuA)5UF>;Z_+9IzP?e8xL z!I{F+1h=dK9rlyez2yI`BF216$Qy4_{#lZx5U;;C&`CTY52a5+?IcTQ3USw!cMSt! zrsf=Jxno);S*l8Oz2JRF+1A~f_E}k);8tZ0M_Y1~Wa%TCT}H+Nz~{DeW(_noP*t|F zdT%53C_d8x?dM3R0Jce%ey@6=*Me)iCbBH5;?I^hI;tA;;0cZ-OW!3~`UCp8!8w3O z1EOmZit4(?1t&V7HglwPEW~vh@mg@YGzn^eg~?LEjkKut5pvhvBJbgEkT>Lm>{@+9 zC;9y6BD6c9;eNfQ2a+tkg(CDv9!lSc-?ID7WTNwS4Cl%An%YJ)79!-4bpkgP5v)bS zU!u7|J|!x-Aam&UP8R2PC5bDp=7_sxtbNJ*c~BOiwK89A`gSJ&6Vk_?Qx3);r+K;bhJA%4{{SEvvhe z>w6h9RI4~8Ryw_;*c>&hCJaxAH_?y$Gu zL|v&wXL8ZEblOI9eWd(vDJWcap7E@qc@chhi&wZk>l~%m5sO@MbFUC0Tlz zWa+JV{WEe=)Vh#{(=O{=R_qX0ZCdSoYoisPi&KL(@57x$)^a!U1KW;a1%133?|wFH~E58lIlBe*g93Q5heuFEHQi z@agS`rnVsaT#slNPgS3uQ=JC+^!9^nGbxZqCu`*HT7=fpI&69pkP{B4`=C9a#Rk0e z&Qo;D=oLq{^*zp9wV8B^yzvzcSa!dqsZ+-)t3aAu%*tf<`>!AGCHDmKI#?jDlLgcr zR%0~d%@GT}i>+WkS$#>e^a>+Au1bVC-^m<7lj?B{#;7`9nFp+TU%wD{+3DVY{dgl5 zH22!Qu6i!t=nm)lO2I~X@?8N)tV4)a|hr~jPHu^lCJZtOTSw$cM_S!t5V8;isMIO9q^hJ>~r#R zT|+zyYpaL*bYKYsQwHz9etZIO_v!72d%QlG2sr*u%8wCib@KA)4Z61eRO{24p)Z~4gb2y6am_VM0E0000GnuCoMo Web Interface - Objects - Users - Packages + Objects + Users Change Password - Logout + Logout
diff --git a/src/web/objects.php b/src/web/objects.php new file mode 100644 index 0000000..27cd03c --- /dev/null +++ b/src/web/objects.php @@ -0,0 +1,127 @@ + + + + + + + +GNUCoMo login + + + + + +Objects Administration
"; + + $config = new gnucomo_config; + + $config->read("gnucomo"); + + // Connect to the database + $conn = pg_connect($config->Database($_SESSION['username'], $_SESSION['password'])); + + + if (isset($_POST['action']) && $_POST['action'] == 'Create' && !empty($_POST['objectname'])) + { + pg_exec($conn, "INSERT INTO object (objectname) VALUES ('" + . $_POST['objectname'] . "')"); + } + + if (isset($_POST['action']) && $_POST['action'] == 'Remove' && !empty($_POST['objectname'])) + { + pg_exec($conn, "DELETE FROM object WHERE objectname='" . $_POST['objectname'] . "'"); + } + + $res = pg_exec($conn, "SELECT objectid,objectname FROM object"); + + echo "
+ object_timestamp?> + + servicecode?> + + rawdata?> +
"; + $obj = 0; + while ($obj < pg_numrows($res)) + { + $u = pg_fetch_object($res, $obj); + $r = pg_exec($conn, "SELECT count(logid) FROM log WHERE objectid='" + . $u->objectid . "'"); + $r = pg_fetch_object($r, 0); + + $nr_logs = $r->count; + + $r = pg_exec ($conn, "SELECT count(paramid) FROM parameter WHERE objectid='" + . $u->objectid . "'"); + $r = pg_fetch_object($r, 0); + + $nr_params = $r->count; + ?> + + "; + +} +?> + +

Create new object:

+

+ +
+Objects name (FQDN): +
+ + +

+ + diff --git a/src/web/parameter.php b/src/web/parameter.php new file mode 100644 index 0000000..f7d4c02 --- /dev/null +++ b/src/web/parameter.php @@ -0,0 +1,132 @@ +objectid . "'>"; + echo $obj->objectname; + echo ""; + } +} +?> + + + + + + +GNUCoMo login + + + + + +read("gnucomo"); + + // Connect to the database + $conn = pg_connect($config->Database($_SESSION['username'], $_SESSION['password'])); + + if (!empty($_GET['oid'])) + { + $res = pg_exec($conn, "SELECT objectname FROM object WHERE objectid=" . $_GET['oid']); + $obj = pg_fetch_object($res, 0); + echo "

Parameters for " . $obj->objectname . "

"; + + $res = pg_exec("SELECT paramid, class, name, description FROM parameter " + ."WHERE objectid=" . $_GET['oid']); + + ?> + + '> + Compare to object: + + + + "; + echo "

+ objectname ?> +
+ Log entries + + Parameters + + + + + +
"; + $row = 0; + while ($row < pg_numrows($res)) + { + $par = pg_fetch_object($res, $row); + ?> + + "; + } +} +?> + + + diff --git a/src/web/parameter_compare.php b/src/web/parameter_compare.php new file mode 100644 index 0000000..dfae1f5 --- /dev/null +++ b/src/web/parameter_compare.php @@ -0,0 +1,109 @@ + + + + + + + +GNUCoMo login + + + + + +read("gnucomo"); + + // Connect to the database + $conn = pg_connect($config->Database($_SESSION['username'], $_SESSION['password'])); + + if (!empty($_GET['oid'])) + { + $res = pg_exec("SELECT objectname FROM object WHERE objectid=" . $_GET['oid']); + $obj = pg_fetch_object($res, 0); + echo "

Parameters for " . $obj->objectname . "


"; + + $res = pg_exec("SELECT paramid, class, name, description FROM parameter " + ."WHERE objectid=" . $_GET['oid']); + + ?> + + + "; + $row = 0; + while ($row < pg_numrows($res)) + { + $par = pg_fetch_object($res, $row); + ?> + + "; + } +} +?> + + + diff --git a/src/web/users.php b/src/web/users.php new file mode 100644 index 0000000..8263151 --- /dev/null +++ b/src/web/users.php @@ -0,0 +1,143 @@ + + + + + + + +GNUCoMo login + + + + + +User Administration
"; + + $config = new gnucomo_config; + + $config->read("gnucomo"); + + // Connect to the database + $conn = pg_connect($config->Database($_SESSION['username'], $_SESSION['password'])); + + + if (isset($_POST['action']) && $_POST['action'] == 'Create' && !empty($_POST['username'])) + { + pg_exec($conn, "CREATE USER " . $_POST['username'] . " PASSWORD '" + . $_POST['passwd'] . "'"); + pg_exec($conn, "INSERT INTO usr (username, security_level) VALUES ('" + . $_POST['username'] . "','" . $_POST['seclevel'] . "')"); + } + + if (isset($_POST['action']) && $_POST['action'] == 'Remove' && !empty($_POST['username'])) + { + pg_exec($conn, "DELETE FROM usr WHERE username='" . $_POST['username'] . "'"); + pg_exec($conn, "DROP USER " . $_POST['username']); + } + + $res = pg_exec($conn, "SELECT username, security_level FROM usr"); + + echo "
+ class?> + + name?> + + description?> + + paramid . "'"); + for ($p = 0; $p < pg_numrows($r); $p++) + { + $prop = pg_fetch_object($r, $p); + echo $prop->name . "=" . $prop->value . " "; + } + ?> +
+ class?> + + name?> + + description?> + + paramid . "'"); + for ($p = 0; $p < pg_numrows($r); $p++) + { + $prop = pg_fetch_object($r, $p); + echo $prop->name . "=" . $prop->value . " "; + } + ?> +
"; + $usr = 0; + while ($usr < pg_numrows($res)) + { + $u = pg_fetch_object($res, $usr); + ?> + + "; + +} +?> + +

Create new user:

+

+ +
+User name: +Security level: +
+Password: +Verify password: +
+ + +

+ + -- 2.11.0

+ username ?> +
+ Sec. Level security_level ?> + + username) + { + ?> +
+ + +
+ +