Changeset 267

Show
Ignore:
Timestamp:
11/03/04 13:38:31 (4 years ago)
Author:
benoitg
Message:

2004-11-03 Benoit Gr�goire <bock@step.polymtl.ca>

  • wifidog/ping/index.php: Log user-agent
  • extensive statistics work
  • sql/wifidog-postgres-schema.sql: Add description field for hotspots and log user-agent
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/wifidog-auth/ChangeLog

    r254 r267  
    11# $Header$ 
     22004-11-03 Benoit Gr�ire  <bock@step.polymtl.ca> 
     3        * wifidog/ping/index.php: Log user-agent 
     4        * extensive statistics work 
     5        * sql/wifidog-postgres-schema.sql: Add description field for hotspots and log user-agent 
     6 
    272004-10-28 Benoit Gr�ire  <bock@step.polymtl.ca> 
    38        * sql/wifidog-postgres-schema.sql:  Add constraints to avoid empty string in email or user_id. 
  • trunk/wifidog-auth/sql/wifidog-postgres-initial-data.sql

    r223 r267  
    77-- 
    88 
     9SET client_encoding = 'LATIN1'; 
     10SET check_function_bodies = false; 
     11 
    912SET SESSION AUTHORIZATION 'wifidog'; 
    1013 
     
    1215 
    1316-- 
    14 -- Data for TOC entry 1 (OID 299872) 
     17-- Data for TOC entry 2 (OID 299872) 
    1518-- Name: token_status; Type: TABLE DATA; Schema: public; Owner: wifidog 
    1619-- 
  • trunk/wifidog-auth/sql/wifidog-postgres-schema.sql

    r254 r267  
    33-- 
    44 
    5 -- 
    6 -- TOC entry 1 (OID 0) 
     5SET client_encoding = 'LATIN1'; 
     6SET check_function_bodies = false; 
     7 
     8-- 
     9-- TOC entry 2 (OID 0) 
    710-- Name: wifidog; Type: DATABASE; Schema: -; Owner: wifidog 
    811-- 
     
    1316\connect wifidog wifidog 
    1417 
     18SET client_encoding = 'LATIN1'; 
     19SET check_function_bodies = false; 
     20 
    1521SET search_path = public, pg_catalog; 
    1622 
    1723-- 
    18 -- TOC entry 3 (OID 299867) 
     24-- TOC entry 4 (OID 299867) 
    1925-- Name: administrators; Type: TABLE; Schema: public; Owner: wifidog 
    2026-- 
     
    2632 
    2733-- 
    28 -- TOC entry 4 (OID 299872) 
     34-- TOC entry 5 (OID 299872) 
    2935-- Name: token_status; Type: TABLE; Schema: public; Owner: wifidog 
    3036-- 
     
    3642 
    3743-- 
    38 -- TOC entry 5 (OID 299881) 
     44-- TOC entry 6 (OID 299881) 
    3945-- Name: connections; Type: TABLE; Schema: public; Owner: wifidog 
    4046-- 
     
    5864 
    5965-- 
    60 -- TOC entry 6 (OID 299895) 
     66-- TOC entry 7 (OID 299895) 
    6167-- Name: nodes; Type: TABLE; Schema: public; Owner: wifidog 
    6268-- 
     
    6975    last_heartbeat_timestamp timestamp without time zone DEFAULT now(), 
    7076    creation_date date DEFAULT now(), 
    71     home_page_url text 
    72 ); 
    73  
    74  
    75 -- 
    76 -- TOC entry 7 (OID 299906) 
     77    home_page_url text, 
     78    last_heartbeat_user_agent text, 
     79    description text 
     80); 
     81 
     82 
     83-- 
     84-- TOC entry 8 (OID 299906) 
    7785-- Name: users; Type: TABLE; Schema: public; Owner: wifidog 
    7886-- 
     
    9199 
    92100-- 
    93 -- TOC entry 8 (OID 300988) 
     101-- TOC entry 9 (OID 300988) 
    94102-- Name: node_owners; Type: TABLE; Schema: public; Owner: wifidog 
    95103-- 
     
    102110 
    103111-- 
    104 -- TOC entry 12 (OID 300919) 
     112-- TOC entry 13 (OID 300919) 
    105113-- Name: idx_token; Type: INDEX; Schema: public; Owner: wifidog 
    106114-- 
     
    110118 
    111119-- 
    112 -- TOC entry 13 (OID 300920) 
     120-- TOC entry 14 (OID 300920) 
    113121-- Name: idx_token_status_and_user_id; Type: INDEX; Schema: public; Owner: wifidog 
    114122-- 
     
    118126 
    119127-- 
    120 -- TOC entry 9 (OID 299870) 
     128-- TOC entry 10 (OID 299870) 
    121129-- Name: administrators_pkey; Type: CONSTRAINT; Schema: public; Owner: wifidog 
    122130-- 
     
    127135 
    128136-- 
    129 -- TOC entry 10 (OID 299874) 
     137-- TOC entry 11 (OID 299874) 
    130138-- Name: token_status_pkey; Type: CONSTRAINT; Schema: public; Owner: wifidog 
    131139-- 
     
    136144 
    137145-- 
    138 -- TOC entry 11 (OID 299889) 
     146-- TOC entry 12 (OID 299889) 
    139147-- Name: connections_pkey; Type: CONSTRAINT; Schema: public; Owner: wifidog 
    140148-- 
     
    145153 
    146154-- 
    147 -- TOC entry 14 (OID 299901) 
     155-- TOC entry 15 (OID 299901) 
    148156-- Name: nodes_pkey; Type: CONSTRAINT; Schema: public; Owner: wifidog 
    149157-- 
     
    154162 
    155163-- 
    156 -- TOC entry 15 (OID 299912) 
     164-- TOC entry 16 (OID 299912) 
    157165-- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: wifidog 
    158166-- 
     
    163171 
    164172-- 
    165 -- TOC entry 16 (OID 310107) 
     173-- TOC entry 17 (OID 310107) 
    166174-- Name: node_owners_pkey; Type: CONSTRAINT; Schema: public; Owner: wifidog 
    167175-- 
     
    172180 
    173181-- 
    174 -- TOC entry 18 (OID 299891) 
     182-- TOC entry 19 (OID 299891) 
    175183-- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: wifidog 
    176184-- 
     
    181189 
    182190-- 
    183 -- TOC entry 17 (OID 299914) 
     191-- TOC entry 18 (OID 299914) 
    184192-- Name: administrators_ibfk_1; Type: FK CONSTRAINT; Schema: public; Owner: wifidog 
    185193-- 
     
    190198 
    191199-- 
    192 -- TOC entry 19 (OID 300909) 
     200-- TOC entry 20 (OID 300909) 
    193201-- Name: fk_users; Type: FK CONSTRAINT; Schema: public; Owner: wifidog 
    194202-- 
     
    199207 
    200208-- 
    201 -- TOC entry 20 (OID 300913) 
     209-- TOC entry 21 (OID 300913) 
    202210-- Name: fk_nodes; Type: FK CONSTRAINT; Schema: public; Owner: wifidog 
    203211-- 
     
    208216 
    209217-- 
    210 -- TOC entry 21 (OID 310097) 
     218-- TOC entry 22 (OID 310097) 
    211219-- Name: fk_users; Type: FK CONSTRAINT; Schema: public; Owner: wifidog 
    212220-- 
     
    217225 
    218226-- 
    219 -- TOC entry 22 (OID 310101) 
     227-- TOC entry 23 (OID 310101) 
    220228-- Name: fk_nodes; Type: FK CONSTRAINT; Schema: public; Owner: wifidog 
    221229-- 
  • trunk/wifidog-auth/wifidog/admin/index.php

    r236 r267  
    3333    echo "<ul>\n"; 
    3434    echo "<li><a href='user_log.php'>"._('User logs')."</a></li>\n"; 
    35     echo "<li><a href='import_user_database.php'>"._('Import user database')."</a></li>\n"; 
     35    //echo "<li><a href='hotspot_log.php'>"._('Hotspot logs')."</a></li>\n"; 
     36    echo "<li><a href='import_user_database.php'>"._('Import NoCat user database')."</a></li>\n"; 
    3637    echo "</ul>\n"; 
    3738 
  • trunk/wifidog-auth/wifidog/classes/Security.php

    r216 r267  
    4141  function login($username, $hash) 
    4242  { 
     43      global $db; 
     44  $username = $db->EscapeString($username); 
     45  $hash = $db->EscapeString($hash); 
     46      $db->ExecSqlUniqueRes("SELECT * FROM users WHERE (user_id='$username' OR email='$username') AND pass='$hash'", $user_info, false); 
     47    if(empty($user_info)) 
     48      { 
     49        echo '<p class=error>'._("Your username and password do not match")."</p>\n"; 
     50        exit; 
     51      } 
     52    else 
     53      { 
     54        /* Access granted */ 
    4355    $this->session->set(SESS_USERNAME_VAR, $username); 
    4456    $this->session->set(SESS_PASSWORD_HASH_VAR, $hash); 
     57      } 
    4558  } 
    4659 
     
    5164    $user = $this->session->get(SESS_USERNAME_VAR); 
    5265    $password_hash = $this->session->get(SESS_PASSWORD_HASH_VAR); 
    53     $db->ExecSqlUniqueRes("SELECT * FROM users NATURAL JOIN administrators WHERE (user_id='$user' OR email='$user') AND pass='$password_hash'", $user_info, false); 
     66    $db->ExecSqlUniqueRes("SELECT * FROM users NATURAL JOIN administrators WHERE user_id='$user' AND pass='$password_hash'", $user_info, false); 
    5467    if(empty($user_info)) 
    5568      { 
     
    7184    $user = $this->session->get(SESS_USERNAME_VAR); 
    7285    $password_hash = $this->session->get(SESS_PASSWORD_HASH_VAR); 
    73     //$db->ExecSqlUniqueRes("SELECT * FROM users NATURAL JOIN administrators WHERE (user_id='$user' OR email='$user') AND pass='$password_hash'", $user_info, false); 
     86    //$db->ExecSqlUniqueRes("SELECT * FROM users NATURAL JOIN administrators WHERE user_id='$user' AND pass='$password_hash'", $user_info, false); 
    7487    if(empty($user_info)) 
    7588      { 
  • trunk/wifidog-auth/wifidog/index.php

    r227 r267  
    2626require_once BASEPATH.'include/common.php'; 
    2727require_once BASEPATH.'classes/Style.php'; 
     28require_once BASEPATH.'classes/Statistics.php'; 
    2829 
    2930$style = new Style(); 
     
    3637$db->ExecSqlUniqueRes("SELECT COUNT(user_id) FROM users WHERE account_status = ".ACCOUNT_STATUS_ALLOWED, $row, false); 
    3738$num_valid_users=$row['count']; 
    38 $row = null; 
    39 $db->ExecSqlUniqueRes("SELECT COUNT(user_id) FROM ( SELECT DISTINCT user_id FROM connections " . 
    40              "WHERE token_status='" . TOKEN_INUSE . "') AS online_users"              
    41              ,$row, false); 
    42 $num_online_users=$row['count']; 
    4339 
     40$stats=new Statistics(); 
     41$num_online_users=$stats->getNumOnlineUsers($node_id=null); 
    4442 
    4543echo "<p>"._("The network currently has ").$num_valid_users._(" valid users.")." ".$num_online_users._(" user(s) are currently online")."</p>\n"; 
  • trunk/wifidog-auth/wifidog/node_list.php

    r227 r267  
    2828require_once BASEPATH.'classes/Style.php'; 
    2929require_once (BASEPATH.'include/user_management_menu.php'); 
     30require_once BASEPATH.'classes/Statistics.php'; 
    3031 
    3132$style = new Style(); 
     33$stats=new Statistics(); 
     34 
    3235echo $style->GetHeader(HOTSPOT_NETWORK_NAME.' node list'); 
    3336    echo "<div id='head'><h1>". HOTSPOT_NETWORK_NAME ." node list</h1></div>\n";     
     
    3841echo "<div id='content'>\n"; 
    3942 
    40 $db->ExecSql("SELECT node_id, name, (NOW()-last_heartbeat_timestamp) AS since_last_heartbeat, last_heartbeat_ip, 
     43$db->ExecSql("SELECT node_id, name, last_heartbeat_user_agent, (NOW()-last_heartbeat_timestamp) AS since_last_heartbeat, last_heartbeat_ip, 
    4144 CASE WHEN ((NOW()-last_heartbeat_timestamp) < interval '5 minutes') THEN true ELSE false END AS is_up, creation_date FROM nodes ORDER BY node_id",$node_results, false); 
    4245echo "<table class='spreadsheet'>\n"; 
    43         echo "<thead><tr class='spreadsheet'><th class='spreadsheet' colspan=5>Status of all nodes of the ".HOTSPOT_NETWORK_NAME." network</th></tr>\n"; 
     46        echo "<thead><tr class='spreadsheet'><th class='spreadsheet' colspan=6>Status of all nodes of the ".HOTSPOT_NETWORK_NAME." network</th></tr>\n"; 
    4447        echo "<tr class='spreadsheet'><th class='spreadsheet'>Status</th>\n"; 
    4548        echo "<th class='spreadsheet'>Id</th>\n"; 
     
    4750        echo "<th class='spreadsheet'>Local content demo</th>\n"; 
    4851        echo "<th class='spreadsheet'>Opened on</th>\n"; 
    49         echo "</tr></thead\n"; 
     52        echo "<th class='spreadsheet'>Online users</th>\n";      
     53        echo "</tr></thead>\n"; 
    5054        foreach($node_results as $node_row) 
    5155        { 
     
    5458                if($node_row['is_up']=='t') 
    5559                { 
    56                 echo "<img src='".BASE_URL_PATH . "images/hotspot_status_up.png'>"; 
     60                echo "<img src='".BASE_URL_PATH . "images/hotspot_status_up.png'> "; 
    5761                } 
    5862                else 
    5963                { 
    60                 echo "<img src='".BASE_URL_PATH . "images/hotspot_status_down.png'>"; 
     64                echo "<img src='".BASE_URL_PATH . "images/hotspot_status_down.png'> "; 
    6165                $duration = $db->GetDurationArrayFromIntervalStr($node_row['since_last_heartbeat']); 
    62                 echo $duration['days'].'days '.$duration['hours'].'h '.$duration['minutes'].'min'; 
     66                echo $duration['days'].'days '.$duration['hours'].'h '.$duration['minutes'].'min<br />'; 
    6367                } 
     68                echo "$node_row[last_heartbeat_user_agent]"; 
    6469                echo "</td>\n"; 
    6570                echo "<td class='spreadsheet'>$node_row[node_id]</td>\n"; 
     
    7075                echo "</td>\n"; 
    7176                echo "<td class='spreadsheet'>$node_row[creation_date]</td>\n"; 
     77                $num_online_users = $stats->getNumOnlineUsers($node_row['node_id']); 
     78                if($num_online_users==0) 
     79                { 
     80                $num_online_users=null; 
     81                } 
     82                echo "<td class='spreadsheet'>$num_online_users</td>\n"; 
    7283                echo "</tr>\n"; 
    7384} 
  • trunk/wifidog-auth/wifidog/ping/index.php

    r222 r267  
    2929echo "Pong"; 
    3030    $node_id = $db->EscapeString($_REQUEST['gw_id']); 
    31 $db->ExecSqlUpdate("UPDATE nodes SET last_heartbeat_ip='$_SERVER[REMOTE_ADDR]', last_heartbeat_timestamp=NOW() WHERE node_id='$node_id'"); 
     31    $user_agent =  $db->EscapeString($_SERVER['HTTP_USER_AGENT']); 
     32$db->ExecSqlUpdate("UPDATE nodes SET last_heartbeat_ip='$_SERVER[REMOTE_ADDR]', last_heartbeat_timestamp=NOW(), last_heartbeat_user_agent='$user_agent' WHERE node_id='$node_id'"); 
    3233         
    3334?>