--- alx-src/branches/alx-web-060/show.php 2011/05/09 16:31:38 2017 +++ alx-src/branches/alx-web-070/show.php 2015/11/03 11:05:28 7743 @@ -1,448 +1,450 @@ '; + echo '
'; - $tabs = array('cfg_graphic', 'cfg_network', 'cfg_input', 'client_auth', 'cfg_autostart', 'client_serials', 'cfg_comments', 'cfg_printers', 'cfg_sessions', 'cfg_modules', 'cfg_other_menuitems', 'cfg_screensaver', 'client_version'); - $multi= array( 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0); - $data = array(); + if($id<0) echo 'ACTIVATED #'.abs($id); + else echo 'DEACTIVATED #'.$id; + echo '
'; + return true; +} - // get alx version info for - $alxinfo = sqlfirst('SELECT * FROM client_version WHERE serial='.$id); - $alxos = $alxinfo[os]; - $alxutils = $alxinfo[utils]; - - if($kill==1) +// FELD-DEFINITIONEN (ARRAY=>DROPDOWN / HIDDEN / IGNORE / 1 / BOLD / PASSWORD / SHOW / SHOWTIME / MONITORID) +$drop = array(); +$drop['cfg_graphic_module'] = sqlarr('SELECT value FROM values_graphic_module where enabled=1', '', 'value'); +if($gfxinfo[module] == 'intel') +{ + $drop['cfg_graphic_hdmi'] = array('disable', 'enable'); +} +else +{ + $drop['cfg_graphic_hdmi'] = 'ignore'; +} +$drop['resolution'] = sqlarr('SELECT value FROM values_graphic_resolution where enabled=1', '', 'value'); +$drop['depth'] = sqlarr('SELECT value FROM values_graphic_depth where enabled=1', '', 'value'); +//$drop['mouse'] = array('Auto', 'IMPS/2', 'PS/2'); +//$drop['keyboard'] = array('PC105'); +$drop['keymap'] = sqlarr('SELECT value FROM values_input_keymap where enabled=1', '', 'value'); +$drop['cfg_network_module'] = sqlarr('SELECT value FROM values_network_module where enabled=1', '', 'value'); +$drop['networking'] = array('dhcp', 'static'); +$drop['port'] = sqlarr('SELECT value FROM values_printers_port where enabled=1', '', 'value'); +//for ($i=0; $i<999; $i++) { $drop['cfg_printers_'.$i.'_ip'] = 'ignore'; } +$drop['share'] = 'ignore'; +$drop['location'] = sqlarr('SELECT location FROM client_locations where enabled=1', '', 'location'); +$drop['id'] = 'hidden'; +$drop['flg_modified'] = '1'; +$drop['serial'] = 'ignore'; +$drop['monitorid'] = 'ignore'; +$drop['refresh_rate'] = sqlarr('SELECT value FROM values_graphic_refresh_rate where enabled=1', '', 'value'); +$drop['hostname'] = 'bold'; +$drop['session'] = 'bold'; +$drop['cfg_autostart_session'] = sqlarr('SELECT filename FROM cfg_sessions_citrix where serial='.$id, '', 'filename'); +array_unshift($drop['cfg_autostart_session'], ""); +$drop['mtime'] = 'showtime'; +$drop['mac'] = 'show'; +$drop['client_serials_serial'] = 'show'; +$drop['password'] = 'password'; +//$drop['shell'] = 'password'; +$drop['client_auth_user'] = 'password'; +$drop['root'] = 'password'; +$drop['vnc'] = 'password'; +$drop['samba'] = 'password'; +$drop['station'] = 'password'; +$drop['txt'] = 'txt'; +$drop['screensaver'] = sqlarr('SELECT value FROM values_screensaver_screensaver where enabled=1', '', 'value'); +//$drop['iface'] = array('eth0', 'wlan0'); +$drop['client_version_os'] = 'show'; +$drop['client_version_utils'] = 'show'; +$drop['hwdetected'] = 'ignore'; + +// ACHTUNG!!! wlan_-Felder heißen eigentlich wireless_ +$drop['wireless_mode'] = array('', 'managed', 'ad-hoc', 'master', 'repeater', 'secondary', 'monitor', 'auto'); +$drop['wireless_auth_mode'] = array('', 'wep', 'wpa', 'wpa2', 'off'); +$drop['wireless_key_length'] = array('', '64', '128', '256'); +$drop['wireless_channel'] = array('', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14'); +$drop['wireless_frequency'] = array('', '2.412G', '2.417G', '2.422G', '2.427G', '2.432G', '2.437G', '2.442G', + '2.447G', '2.452G', '2.457G', '2.462G', '2.467G', '2.472G', '2.484G'); +$drop['wireless_key'] = 'password'; +$drop['wireless_key_ascii'] = 'password'; + +// get current citrix apps +$citrix_apps = sqlarr('SELECT session FROM values_citrix_session where enabled=1', '', 'session'); +// add an empty value add the first position of the array as session-default +array_unshift($citrix_apps, ""); +// hackish, fix me +for ($i=0; $i<999; $i++) { $drop['cfg_sessions_citrix_'.$i.'_session'] = $citrix_apps; } + +// get current storefront apps +$storefront_apps = sqlarr('SELECT session FROM values_storefront_session where enabled=1', '', 'session'); +// add an empty value add the first position of the array as session-default +array_unshift($storefront_apps, ""); +// hackish, fix me +for ($i=0; $i<999; $i++) { $drop['cfg_sessions_storefront_'.$i.'_session'] = $storefront_apps; } + +$drop['enabled'] = 'ignore'; +$drop['filename'] = 'ignore'; +$drop['autostart'] = array('0','1'); + +// GGF. NEUEN DATENSATZ EINFÜGEN +if(isset($_POST['do_add'])) +{ + list($bla,$what) = explode(' ',$_POST['do_add']); + if($what=='COMMENT') sqladd('cfg_comments', array('serial'=>$id)); + else if($what=='PRINTER') sqladd('cfg_printers', array('serial'=>$id)); + else if($what=='MODULE') sqladd('cfg_modules', array('serial'=>$id)); + else if($what=='SESSION-CITRIX') sqladd('cfg_sessions_citrix', array('domain'=>$citrix_domain_name, 'serverlist'=>$citrix_serverlist, 'serial'=>$id)); + else if($what=='SESSION-STOREFRONT') sqladd('cfg_sessions_storefront', array('domain'=>$storefront_domain_name, 'store'=>$storefront_store, 'serial'=>$id)); + else if($what=='MENUITEM') sqladd('cfg_other_menuitems', array('serial'=>$id)); + else if($what=='AUTOSTART') sqladd('cfg_autostart', array('serial'=>$id)); +} + + +// GGF. SPEICHERN +if($_POST['do_upl']) +{ + function postarr($prefix) { - foreach($tabs as $t) mysql_query('UPDATE '.$t.' SET serial=-serial WHERE serial='.$id); - - echo ''; - echo '
'; + $prefix.='_'; + $prelen = strlen($prefix); - if($id<0) echo 'ACTIVATED #'.abs($id); - else echo 'DEACTIVATED #'.$id; + $arr = array(); + foreach($_POST as $k=>$v) + { + if((substr($k,0,$prelen)==$prefix) && ($v!='KEEPPASS')) + $arr[substr($k,$prelen)] = stripslashes($v); + } - echo '
'; - return true; + return $arr; } - // FELD-DEFINITIONEN (ARRAY=>DROPDOWN / HIDDEN / IGNORE / 1 / BOLD / PASSWORD / SHOW / SHOWTIME / MONITORID) - $drop = array(); - if($alxos >= '0.5.3') - { - $drop['cfg_graphic_module'] = array('vesa', 'ati', 'cirrus', 'i710', 'intel', 'nv', 'mach64', 'mga', 'openchrome', 'radeon', 's3', 's3virge', 'savage', 'sis', 'trident', 'tseng'); - } - else + foreach($tabs as $k=>$t) { - $drop['cfg_graphic_module'] = array('vesa', 'ati', 'cirrus', 'i810', 'i710', 'nv', 'mga', 'r128', 'radeon', 's3', 's3virge', 'savage', 'sis', 'trident', 'tseng', 'via'); + if(!$multi[$k]) mysql_query('UPDATE '.$t.' SET '.updatestr(postarr($t)).' WHERE serial='.$id); + else + { + $i=0; + while(isset($_POST[$t.'_'.$i.'_id'])) + { + if($_POST[$t.'_'.$i.'_delete']) + mysql_query('DELETE FROM '.$t.' WHERE serial='.$id.' AND id='.$_POST[$t.'_'.$i.'_id']); + else + mysql_query('UPDATE '.$t.' SET '.updatestr(postarr($t.'_'.$i)).' WHERE serial='.$id.' AND id='.$_POST[$t.'_'.$i.'_id']); + $i++; + } + } } - $drop['resolution'] = array('640x480', '800x600', '1024x768', '1280x960', '1280x1024', '1360x768', '1366x768', '1400x1050', '1440x900', '1600x1200', '1680x1050', '1280x720', '1920x1080'); - $drop['depth'] = array('24', '16', '8'); - $drop['mouse'] = array('Auto', 'IMPS/2', 'PS/2'); - $drop['keyboard'] = array('PC105'); - $drop['cfg_network_module'] = array('3c59x', '8139too', '8139cp', 'e100', 'ne2k-pci', 'pcnet32', 'sis900', 'via-rhine', 'zd1211', 'b44', 'bnx2', 'dl2k', 'e1000', 'forcedeth', 'r8169', 'sk98lin', 'tg3', 'via-velocity'); - $drop['networking'] = array('dhcp', 'static'); - $drop['port'] = array('lpt1', 'usb1', 'usb2', 'com1', 'com2', 'lpd', 'socket', 'ipp'); - $drop['location'] = sqlarr('SELECT location FROM client_locations', '', 'location'); - $drop['id'] = 'hidden'; - $drop['flg_modified'] = '1'; - $drop['serial'] = 'ignore'; - if($alxos>='0.5.3') - { - $drop['monitorid'] = 'ignore'; - $drop['refresh_rate'] = array('','60','75','85','100'); + + // reload site + header("location: show.php?id=".$id); +} + +// EINLESEN DER DATEN AUS SQL-TABELLEN +foreach($tabs as $k=>$t) +{ + if($multi[$k]) $data[$t] = sqlarr('SELECT * FROM '.$t.' WHERE serial='.$id); + else $data[$t] = sqlfirst('SELECT * FROM '.$t.' WHERE serial='.$id); +} + +// ANZEIGEN - KLAPPFUNKTIONEN +$absnames = array(); + +function openabs($heading, $helpfile='') +{ + global $absnames; + $absnames[] = $heading; + + //
+ + if( $_SESSION['openclose'][$heading] ) + { + echo ' ['.$heading.']'; + if($helpfile!='') echo ' [?]'; + echo '
'; } else { - $drop['monitorid'] = 'monitorid'; - $drop['refresh_rate'] = 'ignore'; + echo ' ['.$heading.']'; + if($helpfile!='') echo ' [?]'; + echo '

'; +} +// ANZEIGEN - // GGF. SPEICHERN - if($_POST['do_upl']) - { - function postarr($prefix) - { - $prefix.='_'; - $prelen = strlen($prefix); +function parsearr($name, $arr, $del=false, $wireless=false) +{ + global $drop; + global $id; + global $alxos; - $arr = array(); - foreach($_POST as $k=>$v) - if((substr($k,0,$prelen)==$prefix) && ($v!='KEEPPASS')) - $arr[substr($k,$prelen)] = stripslashes($v); + $parts = explode('_',$name); $helpfile='help.php?page='.$parts[1]; + openabs($name, $helpfile); + echo ''; - return $arr; - } + foreach($arr as $k=>$v) + { + if( (substr($k,0,9)=='wireless_') xor $wireless ) Continue; - foreach($tabs as $k=>$t) - { - if(!$multi[$k]) mysql_query('UPDATE '.$t.' SET '.updatestr(postarr($t)).' WHERE serial='.$id); - else - { - $i=0; - while(isset($_POST[$t.'_'.$i.'_id'])) - { - if($_POST[$t.'_'.$i.'_delete']) - mysql_query('DELETE FROM '.$t.' WHERE serial='.$id.' AND id='.$_POST[$t.'_'.$i.'_id']); - else - mysql_query('UPDATE '.$t.' SET '.updatestr(postarr($t.'_'.$i)).' WHERE serial='.$id.' AND id='.$_POST[$t.'_'.$i.'_id']); - $i++; - } - } - } - } + $d = $drop[$name.'_'.$k]; if($d==null) $d = $drop[$k]; + $k = str_replace('wireless_', '', $k); + $k2 = $k; + # tell something about vesa + if ($v == 'vesa') echo '
Warning: "vesa" graphic module doesn\'t support any resolutions higher than 1024x786x16@60hz!
'; - // EINLESEN DER DATEN AUS SQL-TABELLEN - foreach($tabs as $k=>$t) - { - if($multi[$k]) $data[$t] = sqlarr('SELECT * FROM '.$t.' WHERE serial='.$id); - else $data[$t] = sqlfirst('SELECT * FROM '.$t.' WHERE serial='.$id); - } - - // ANZEIGEN - KLAPPFUNKTIONEN - $absnames = array(); - - function openabs($heading, $helpfile='') - { - global $absnames; - $absnames[] = $heading; - - //
- - if( $_SESSION['openclose'][$heading] ) + if(is_array($d)) { - echo ' ['.$heading.']'; - if($helpfile!='') echo ' [?]'; - echo '
'; + echo '
'; } - else - { - echo ' ['.$heading.']'; - if($helpfile!='') echo ' [?]'; - echo '

'; - } - - - // ANZEIGEN - - function parsearr($name, $arr, $del=false, $wireless=false) - { - global $drop; - global $id; - global $alxos; - - $parts = explode('_',$name); $helpfile='help.php?page='.$parts[1]; - openabs($name, $helpfile); - echo '
'.$k2.'=
'; + else if($d=='hidden') echo ''; + else if($d=='1') echo ''; + else if($d=='monitorid') echo ''; + else if($d=='bold') echo ''; + else if($d=='filename') echo ''; + else if($d=='show') echo ''; + else if($d=='showtime') echo ''; + else if($d=='password' && $v=='') echo ''; + else if($d=='password') echo ''; + else if($d=='txt') echo ''; + else if($d!='ignore') echo ''; + } + + if($del) echo ''; + echo '
'.$k2.'=
'.$k2.'=
filename=
'.$k2.'= '.$v.'
'.$k2.'= '.date('d.m.y - H:i:s', $v).'
'.$k2.'=
'.$k2.'=
'.$k2.'=
delete=
'; + closeabs(); + + if($name=='cfg_network' && !$wireless) parsearr($name.'_wireless', $arr, $del, true); +} + +function parsearrs($name, $arr) +{ + foreach($arr as $k=>$a) + parsearr($name.'_'.$k, $a, true); +} + +?> +ALX Config + + + + - - - - '; - echo '
'; - echo ''; - echo ''; - - // ANZEIGEN => NON-MULTI TABELLEN - echo '
'; - - echo ''; - echo ' OPEN... '; - echo ' CLOSE... ALL'; - echo '

'; - - foreach($tabs as $k=>$t) if(!$multi[$k]) parsearr($t, $data[$t]); - - // ANZEIGEN => MULTI TABELLEN - echo '
'; - - foreach($tabs as $k=>$t) if($multi[$k]) parsearrs($t, $data[$t]); - - echo ''; - - // ANZEIGEN => NAVI - echo ''; - - // STATUS BESTIMMEN (ON/OFF) - $conn = sqlfirst('SELECT * FROM state_connected WHERE serial='.$id); - $state = 'Off'; - if(count($conn)>0) - { -// passthru($pingcmd." ".$conn['ip']." &> /dev/null && exit 0 || exit 1",$retval); - if($retval==0) $state = 'On'; - } + function showhelp(name) + { window.open(name, 'HelpWin', 'width=620,height=500,scrollbars=yes'); } + + - echo '

'; +

'; +echo ''; +echo ''; +echo ''; - echo '
'; - echo '
'; - echo '
'; - echo '
'; - echo '

'; +// ANZEIGEN => NON-MULTI TABELLEN +echo '
'; + echo ''; + echo ' OPEN... '; + echo ' CLOSE... ALL'; + echo '

'; - if($id>0) $KILLCAP='DEACTIVATE'; else $KILLCAP='ACTIVATE'; - echo '
'; - echo '
'; - echo '

'; + foreach($tabs as $k=>$t) if(!$multi[$k]) parsearr($t, $data[$t]); - $davor = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id-1),'mac')!=null; if($davor) $disdavor=''; else $disdavor = 'disabled=1'; - $danach = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id+1),'mac')!=null; if($danach) $disdanach=''; else $disdanach = 'disabled=1'; +// ANZEIGEN => MULTI TABELLEN +echo '
'; - echo ''; - echo ''; - echo ''; - echo '


'; + foreach($tabs as $k=>$t) if($multi[$k]) parsearrs($t, $data[$t]); - echo '

'; - echo '
'; - if($id<0) echo 'DEACTIVATED!

'; - echo 'Serial:  #'.$id.'
'; - echo 'Stand:  '.date('H:i:s').'
'; - echo 'Status: '.$state.'line
'; - if($state=='On') - { - echo 'IP: '.$conn['ip'].'

'; - $pubkey = mysql_query('select public_key from ssh_auth_clients where serial='.$id.''); - while ($row = mysql_fetch_row ($pubkey)) { - # schreiben der .ssh/known_hosts file mit dem public rsa key des client, - # um die "yes" abfrage zu vermeiden - $hostfile = fopen ($home."/.ssh/known_hosts","w"); - fwrite($hostfile,$conn['ip']." ".$row[0],strlen($row[0])+strlen($conn['ip'])+1); - fclose($hostfile); + echo ''; - } + foreach($absnames as $absname) + echo 'openclose("'.$absname.'", act); '; + + echo '}'; - echo 'OS: '.$osver[0].'
'; - echo 'Utils: '.$osver[1].'
'; +// ANZEIGEN => NAVI +echo '
'; - if($osver[0] <> 'unkown') + // STATUS BESTIMMEN (ON/OFF) + $conn = sqlfirst('SELECT * FROM state_connected WHERE serial='.$id); + $state = 'Off'; + if(count($conn)>0) + { + if($retval==0) + { + // first try mcore, then get ssh + $ping_retval = ping_host($conn['ip'],$mcore_port,$ping_timeout); + if($ping_retval==1) $ping_retval = ping_host($dat['ip'],$ssh_port,$ping_timeout); + if($ping_retval==0) { - //write them to database + $state = 'On'; } } + } - echo ''; - //echo '

'; + echo '

'; - if($state=='On') - { - echo '
'; - echo '
'; - echo '
'; - echo '
'; - echo 'Remote Shadow:
'; - echo '
'; - echo '
'; - echo '
'; - echo '
'; - echo 'Client Update:
'; - echo '
'; - echo '
'; - echo '
'; - } - else - echo '
'; + echo '

'; + + echo '
'; + echo '
'; + echo '
'; + echo '
'; + echo '
'; + echo '
'; + echo '
'; + echo '
'; + + if($id>0) $KILLCAP='DEACTIVATE'; else $KILLCAP='ACTIVATE'; + echo '
'; + echo '
'; + echo '

'; + + $davor = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id-1),'mac')!=null; if($davor) $disdavor=''; else $disdavor = 'disabled=1'; + $danach = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id+1),'mac')!=null; if($danach) $disdanach=''; else $disdanach = 'disabled=1'; + + echo ''; + echo ''; + echo ''; + echo '


'; + + echo '
'; + echo '
'; + if($id<0) echo 'DEACTIVATED!

'; + echo 'Serial:  #'.$id.'
'; + echo 'Stand:  '.date('H:i:s').'
'; + echo 'Status: '.$state.'line
'; + if($state=='On') + { + echo 'IP: '.$conn['ip'].'

'; + echo 'OS: '.$alxos.'
'; + echo 'Utils: '.$alxutils.'
'; + } + + echo '
'; + + if($state=='On') + { + echo '
'; + echo '
'; + echo '
'; + echo '
'; + echo 'Hardware Detection:
'; + echo ''; + echo ''; + echo ''; + echo '
'; + echo ''; + echo ''; + echo ''; + echo '

'; + echo '
'; + echo 'Remote Shadow:
'; + echo ''; + echo ''; + echo '

'; + echo '
'; + echo 'Client Update:
'; + echo '
'; + echo '
'; + echo '
'; + } + else + echo '
'; - echo '
[ChangeLog] [FAQs]
'; + echo '
[ChangeLog] [FAQs]
'; - echo '
'; - echo ''; +echo '
'; +echo ''; ?>