diff options
Diffstat (limited to 'application/models')
-rw-r--r-- | application/models/file_mod.php | 12 | ||||
-rw-r--r-- | application/models/muser.php | 6 |
2 files changed, 16 insertions, 2 deletions
diff --git a/application/models/file_mod.php b/application/models/file_mod.php index 2b4142890..f804ede9b 100644 --- a/application/models/file_mod.php +++ b/application/models/file_mod.php @@ -175,6 +175,18 @@ class File_mod extends CI_Model { return true; } + function is_cli_client() + { + // official client uses "fb-client/$version" as useragent + $clients = array("fb-client", "libcurl", "pyfb"); + foreach ($clients as $client) { + if (isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], $client) !== false) { + return true; + } + } + return false; + } + // download a given ID // TODO: make smaller function download() diff --git a/application/models/muser.php b/application/models/muser.php index 5ba4b4922..0fc99ab85 100644 --- a/application/models/muser.php +++ b/application/models/muser.php @@ -56,13 +56,15 @@ class Muser extends CI_Model { if ($this->logged_in()) { return true; } else { - if ($this->file->var->cli_client) { - echo "FileBin requires you to have an account, please go to the homepage for more information."; + if ($this->file_mod->is_cli_client()) { + echo "FileBin requires you to have an account, please go to the homepage for more information.\n"; + exit(); } else { $this->session->set_flashdata("uri", $this->uri->uri_string()); redirect('user/login'); } } + exit(); } function hash_password($password) |