Changeset 1455
- Timestamp:
- 03/03/10 19:27:35 (2 years ago)
- Location:
- branches/newtoken/wifidog
- Files:
-
- 6 modified
-
auth/index.php (modified) (1 diff)
-
classes/Node.php (modified) (1 diff)
-
classes/Statistics.php (modified) (2 diffs)
-
classes/Token.php (modified) (2 diffs)
-
include/common.php (modified) (1 diff)
-
ws/classes/WifidogWS/V1.php (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/newtoken/wifidog/auth/index.php
r1446 r1455 118 118 } 119 119 else if ($info['token_status'] == TOKEN_INUSE && 120 $info['gw_id']&& isset($_REQUEST['gw_id']) && $info['gw_id'] == $_REQUEST['gw_id'] &&121 $info['user_mac']&& isset($_REQUEST['mac']) && $info['user_mac'] == $_REQUEST['mac'] &&122 $info['user_ip']&& isset($_REQUEST['ip']) && $info['user_ip'] == $_REQUEST['ip'])120 isset($info['gw_id']) && isset($_REQUEST['gw_id']) && $info['gw_id'] == $_REQUEST['gw_id'] && 121 isset($info['user_mac']) && isset($_REQUEST['mac']) && $info['user_mac'] == $_REQUEST['mac'] && 122 isset($info['user_ip']) && isset($_REQUEST['ip']) && $info['user_ip'] == $_REQUEST['ip']) 123 123 { 124 124 // This solves the bug where the user clicks twice before getting the portal page -
branches/newtoken/wifidog/classes/Node.php
r1446 r1455 1666 1666 1667 1667 private function getOnlineUsersSql() { 1668 return "SELECT users.user_id FROM users,connections JOIN tokens USING (token_id) WHERE tokens.token_status='".TOKEN_INUSE."' AND users.user_id=connections.user_id AND connections.node_id='{$this->id}'"; 1668 return "SELECT DISTINCT users.user_id FROM users,connections JOIN tokens USING (token_id) WHERE tokens.token_status='".TOKEN_INUSE."' AND users.user_id=connections.user_id AND connections.node_id='{$this->id}'"; 1669 1669 1670 } 1670 1671 /** -
branches/newtoken/wifidog/classes/Statistics.php
r1421 r1455 376 376 throw new Exception(_('Access denied!')); 377 377 } else 378 if ((!$user->DEPRECATEDisSuperAdmin())) {379 throw new Exception(_('Access denied!'));380 }378 //if ((!$user->DEPRECATEDisSuperAdmin())) { 379 // throw new Exception(_('Access denied!')); 380 //} 381 381 382 382 if ($user->DEPRECATEDisSuperAdmin()) { … … 384 384 } else { 385 385 $user_id = $db->escapeString($user->getId()); 386 $sql_join = " JOIN node_stakeholders ON (nodes.node_id=node_stakeholders. node_id AND user_id='$user_id') ";386 $sql_join = " JOIN node_stakeholders ON (nodes.node_id=node_stakeholders.object_id AND user_id='$user_id') "; 387 387 } 388 388 $selectedNodes = $this->getSelectedNodes(); 389 389 $sql = "SELECT nodes.node_id, nodes.name from nodes $sql_join WHERE 1=1 ORDER BY lower(nodes.node_id)"; 390 390 $userData['preSelectedObjects']=$selectedNodes; 391 $userData[' sqlJoin']=$sql_join;391 $userData['additionalJoin']=$sql_join; 392 392 $userData['typeInterface']="select_multiple"; 393 393 $html .= Node :: getSelectUI($name, $userData); -
branches/newtoken/wifidog/classes/Token.php
r1446 r1455 96 96 * Delete all unused tokens for this user, so we don't fill the database 97 97 * with them 98 * But make sure the unused token is not associated with previous successful connections, so when the incoming field is null 98 99 */ 99 $sql = "DELETE FROM connections USING tokens "."WHERE tokens.token_id=connections.token_id AND token_status='".TOKEN_UNUSED."' AND user_id = '".$user->getId()."';\n";100 $sql = "DELETE FROM connections USING tokens "."WHERE tokens.token_id=connections.token_id AND token_status='".TOKEN_UNUSED."' AND incoming is null AND user_id = '".$user->getId()."';\n"; 100 101 $db->execSqlUpdate($sql, false); 101 102 … … 116 117 // look for an existing token that can be reused 117 118 // get all unexpired tokens ordered by first used time 119 // TODO: The token may be owned by someone but be unused and have no connection associated with it 118 120 $sql = "SELECT t.token_id, tt.token_max_total_data, tt.token_max_incoming_data, tt.token_max_outgoing_data, 119 121 LEAST((c.first_used_time + tt.token_max_usage_duration - c.total_connection_duration), -
branches/newtoken/wifidog/include/common.php
r1446 r1455 182 182 $sql = null; 183 183 $sql .= "BEGIN;\n"; 184 $sql .= "UPDATE connections SET logout_reason=" . LOGOUT_REASON_GARBAGE_COLLECTED . ", timestamp_out=(CURRENT_TIMESTAMP - interval '$expiration') FROM tokens WHERE connections.token_id=tokens.token_id AND last_updated < (CURRENT_TIMESTAMP - interval '$expiration') AND token_status = '" . TOKEN_INUSE . "';";185 $sql .= "UPDATE tokens SET token_status='" . TOKEN_USED . "' FROM connections WHERE connections.token_id=tokens.token_id AND last_updated < (CURRENT_TIMESTAMP - interval '$expiration') AND token_status = '" . TOKEN_INUSE . "';";184 $sql .= "UPDATE connections SET logout_reason=" . LOGOUT_REASON_GARBAGE_COLLECTED . ", timestamp_out=(CURRENT_TIMESTAMP - interval '$expiration') FROM tokens WHERE connections.token_id=tokens.token_id AND timestamp_out is null AND last_updated < (CURRENT_TIMESTAMP - interval '$expiration') AND token_status = '" . TOKEN_INUSE . "';"; 185 $sql .= "UPDATE tokens SET token_status='" . TOKEN_USED . "' FROM (select token_id, max(last_updated) as last_updated from connections group by token_id) conn WHERE conn.token_id=tokens.token_id AND last_updated < (CURRENT_TIMESTAMP - interval '$expiration') AND token_status = '" . TOKEN_INUSE . "';"; 186 186 $sql .= "COMMIT;\n"; 187 187 $db->execSqlUpdate($sql, false); -
branches/newtoken/wifidog/ws/classes/WifidogWS/V1.php
r1446 r1455 103 103 'NumOnlineUsers' => 'NumOnlineUsers', 104 104 'CreationDate' => 'CreationDate', 105 'Status' => ' Status',105 'Status' => 'DeploymentStatus', 106 106 'OpeningDate' => 'CreationDate', 107 107 'Connected_users' => 'OnlineUsers'), … … 150 150 foreach($infields as $field) { 151 151 if (isset(self::$_allowedFields[$objectClass][$field])) 152 $fields[ ] = self::$_allowedFields[$objectClass][$field];152 $fields[$field] = self::$_allowedFields[$objectClass][$field]; 153 153 else 154 $fields[ ] = "$field.forbidden";154 $fields[$field] = "$field.forbidden"; 155 155 } 156 156 return $fields; … … 298 298 $fields = $this->mapFields($objectClass, $fields); 299 299 if (empty($fields)) { 300 $fields = array_keys(self::$_allowedFields[$objectClass]);300 $fields = self::$_allowedFields[$objectClass]; 301 301 } 302 302 $allowedFields = self::$_allowedFields[$objectClass]; … … 362 362 } 363 363 364 if (!isset($objectList)) { 365 throw new WSException("Object list for '{$objectClass}' is not supported.", WSException::GENERIC_EXCEPTION); 366 } 364 367 $this->_outputArr = self::filterRet($objectList, $fields); 365 368 } … … 389 392 } 390 393 $retFields = array(); 391 foreach ($fields as $f ield) {394 foreach ($fields as $fkey => $field) { 392 395 $forbiddenfield = explode(".", $field); 393 396 if (! (count($forbiddenfield) == 2)) { 394 397 $methodName = 'get'.$field; 395 398 if (method_exists($value, $methodName)) { 396 397 $retFields[$field] = self::filterRet($value->$methodName()); 399 $retFields[is_string($fkey)?$fkey:$field] = self::filterRet($value->$methodName()); 398 400 } else { 399 $retFields[ $field] = 'unknown';401 $retFields[is_string($fkey)?$fkey:$field] = 'unknown'; 400 402 } 401 403 } else
