From 81fbbd3da1df8a343262c0ba0aa5f051b65e6aac Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Fri, 15 Feb 2013 12:58:50 -0500 Subject: [PATCH] Digibug went away, move the module out of the main repo into contrib. --- 3.0/modules/digibug/config/digibug.php | 29 +++++ .../digibug/controllers/admin_digibug.php | 27 ++++ 3.0/modules/digibug/controllers/digibug.php | 121 ++++++++++++++++++ 3.0/modules/digibug/helpers/digibug_event.php | 52 ++++++++ .../digibug/helpers/digibug_installer.php | 51 ++++++++ 3.0/modules/digibug/helpers/digibug_theme.php | 24 ++++ 3.0/modules/digibug/images/digibug_logo.png | Bin 0 -> 17296 bytes 3.0/modules/digibug/js/digibug.js | 43 +++++++ 3.0/modules/digibug/models/digibug_proxy.php | 22 ++++ 3.0/modules/digibug/module.info | 7 + .../digibug/tests/Digibug_Controller_Test.php | 74 +++++++++++ .../digibug/views/admin_digibug.html.php | 20 +++ .../digibug/views/digibug_form.html.php | 13 ++ 13 files changed, 483 insertions(+) create mode 100644 3.0/modules/digibug/config/digibug.php create mode 100644 3.0/modules/digibug/controllers/admin_digibug.php create mode 100644 3.0/modules/digibug/controllers/digibug.php create mode 100644 3.0/modules/digibug/helpers/digibug_event.php create mode 100644 3.0/modules/digibug/helpers/digibug_installer.php create mode 100644 3.0/modules/digibug/helpers/digibug_theme.php create mode 100644 3.0/modules/digibug/images/digibug_logo.png create mode 100644 3.0/modules/digibug/js/digibug.js create mode 100644 3.0/modules/digibug/models/digibug_proxy.php create mode 100644 3.0/modules/digibug/module.info create mode 100644 3.0/modules/digibug/tests/Digibug_Controller_Test.php create mode 100644 3.0/modules/digibug/views/admin_digibug.html.php create mode 100644 3.0/modules/digibug/views/digibug_form.html.php diff --git a/3.0/modules/digibug/config/digibug.php b/3.0/modules/digibug/config/digibug.php new file mode 100644 index 00000000..9412ca96 --- /dev/null +++ b/3.0/modules/digibug/config/digibug.php @@ -0,0 +1,29 @@ + email address that appears as the from address + * line-length => word wrap length (PHP documentations suggest no larger tha 70 characters + * reply-to => what goes into the reply to header + */ +$config["ranges"] = array( + "Digibug1" => array("low" => "65.249.152.0", "high" => "65.249.159.255"), + "Digibug2" => array("low" => "208.122.55.0", "high" => "208.122.55.255") +); diff --git a/3.0/modules/digibug/controllers/admin_digibug.php b/3.0/modules/digibug/controllers/admin_digibug.php new file mode 100644 index 00000000..50f6f832 --- /dev/null +++ b/3.0/modules/digibug/controllers/admin_digibug.php @@ -0,0 +1,27 @@ +page_title = t("Digibug"); + $v->content = new View("admin_digibug.html"); + print $v; + } +} \ No newline at end of file diff --git a/3.0/modules/digibug/controllers/digibug.php b/3.0/modules/digibug/controllers/digibug.php new file mode 100644 index 00000000..19199188 --- /dev/null +++ b/3.0/modules/digibug/controllers/digibug.php @@ -0,0 +1,121 @@ +file_url(true); + $thumb_url = $item->thumb_url(true); + } else { + $proxy = ORM::factory("digibug_proxy"); + $proxy->uuid = random::hash(); + $proxy->item_id = $item->id; + $proxy->save(); + $full_url = url::abs_site("digibug/print_proxy/full/$proxy->uuid/$item->id"); + $thumb_url = url::abs_site("digibug/print_proxy/thumb/$proxy->uuid/$item->id"); + } + + $v = new View("digibug_form.html"); + $v->order_params = array( + "digibug_api_version" => "100", + "company_id" => module::get_var("digibug", "company_id"), + "event_id" => module::get_var("digibug", "event_id"), + "cmd" => "addimg", + "partner_code" => "69", + "return_url" => url::abs_site("digibug/close_window"), + "num_images" => "1", + "image_1" => $full_url, + "thumb_1" => $thumb_url, + "image_height_1" => $item->height, + "image_width_1" => $item->width, + "thumb_height_1" => $item->thumb_height, + "thumb_width_1" => $item->thumb_width, + "title_1" => html::purify($item->title)); + + print $v; + } + + public function print_proxy($type, $uuid) { + // If its a request for the full size then make sure we are coming from an + // authorized address + if ($type == "full") { + $remote_addr = ip2long(Input::instance()->server("REMOTE_ADDR")); + if ($remote_addr === false) { + throw new Kohana_404_Exception(); + } + $config = Kohana::config("digibug"); + + $authorized = false; + foreach ($config["ranges"] as $ip_range) { + $low = ip2long($ip_range["low"]); + $high = ip2long($ip_range["high"]); + $authorized = $low !== false && $high !== false && + $low <= $remote_addr && $remote_addr <= $high; + if ($authorized) { + break; + } + } + if (!$authorized) { + throw new Kohana_404_Exception(); + } + } + + $proxy = ORM::factory("digibug_proxy")->where("uuid", "=", $uuid)->find(); + if (!$proxy->loaded() || !$proxy->item->loaded()) { + throw new Kohana_404_Exception(); + } + + $file = $type == "full" ? $proxy->item->file_path() : $proxy->item->thumb_path(); + if (!file_exists($file)) { + throw new Kohana_404_Exception(); + } + + // We don't need to save the session for this request + Session::instance()->abort_save(); + + if (!TEST_MODE) { + // Dump out the image + header("Content-Type: {$proxy->item->mime_type}"); + Kohana::close_buffers(false); + $fd = fopen($file, "rb"); + fpassthru($fd); + fclose($fd); + } + + $this->_clean_expired(); + } + + public function close_window() { + print ""; + } + + private function _clean_expired() { + db::build() + ->delete("digibug_proxies") + ->where("request_date", "<=", db::expr("(CURDATE() - INTERVAL 90 DAY)")) + ->limit(20) + ->execute(); + } +} \ No newline at end of file diff --git a/3.0/modules/digibug/helpers/digibug_event.php b/3.0/modules/digibug/helpers/digibug_event.php new file mode 100644 index 00000000..eaebc87b --- /dev/null +++ b/3.0/modules/digibug/helpers/digibug_event.php @@ -0,0 +1,52 @@ +get("settings_menu") + ->append(Menu::factory("link") + ->id("digibug_menu") + ->label(t("Digibug")) + ->url(url::site("admin/digibug"))); + } + + static function site_menu($menu, $theme) { + $item = $theme->item(); + if ($item && $item->type == "photo") { + $menu->get("options_menu") + ->append(Menu::factory("link") + ->id("digibug") + ->label(t("Print with Digibug")) + ->url(url::site("digibug/print_photo/$item->id?csrf=$theme->csrf")) + ->css_id("g-print-digibug-link") + ->css_class("g-print-digibug-link ui-icon-print")); + } + } + + static function context_menu($menu, $theme, $item) { + if ($item->type == "photo") { + $menu->get("options_menu") + ->append(Menu::factory("link") + ->id("digibug") + ->label(t("Print with Digibug")) + ->url(url::site("digibug/print_photo/$item->id?csrf=$theme->csrf")) + ->css_class("g-print-digibug-link ui-icon-print")); + } + } +} diff --git a/3.0/modules/digibug/helpers/digibug_installer.php b/3.0/modules/digibug/helpers/digibug_installer.php new file mode 100644 index 00000000..be88b5ec --- /dev/null +++ b/3.0/modules/digibug/helpers/digibug_installer.php @@ -0,0 +1,51 @@ +query("CREATE TABLE {digibug_proxies} ( + `id` int(9) NOT NULL AUTO_INCREMENT, + `uuid` char(32) NOT NULL, + `request_date` TIMESTAMP NOT NULL DEFAULT current_timestamp, + `item_id` int(9) NOT NULL, + PRIMARY KEY (`id`)) + DEFAULT CHARSET=utf8;"); + + module::set_var("digibug", "company_id", "3153"); + module::set_var("digibug", "event_id", "8491"); + } + + static function upgrade($version) { + if ($version == 1) { + module::clear_var("digibug", "default_company_id"); + module::clear_var("digibug", "default_event_id"); + module::clear_var("digibug", "basic_default_company_id"); + module::clear_var("digibug", "basic_event_id"); + module::set_var("digibug", "company_id", "3153"); + module::set_var("digibug", "event_id", "8491"); + module::set_version("digibug", $version = 2); + } + } + + static function uninstall() { + Database::instance()->query("DROP TABLE IF EXISTS {digibug_proxies}"); + module::delete("digibug"); + } +} diff --git a/3.0/modules/digibug/helpers/digibug_theme.php b/3.0/modules/digibug/helpers/digibug_theme.php new file mode 100644 index 00000000..e3795c3b --- /dev/null +++ b/3.0/modules/digibug/helpers/digibug_theme.php @@ -0,0 +1,24 @@ +script("digibug.js"); + } +} diff --git a/3.0/modules/digibug/images/digibug_logo.png b/3.0/modules/digibug/images/digibug_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..5eac2c7d204112ec3cd9967e024a921e3477b31c GIT binary patch literal 17296 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 literal 0 HcmV?d00001 diff --git a/3.0/modules/digibug/js/digibug.js b/3.0/modules/digibug/js/digibug.js new file mode 100644 index 00000000..46ddac52 --- /dev/null +++ b/3.0/modules/digibug/js/digibug.js @@ -0,0 +1,43 @@ +$(document).ready(function() { + $(".g-print-digibug-link").click(function(e) { + e.preventDefault(); + return digibug_popup(e.currentTarget.href, { width: 800, height: 600 } ); + }); +}); + +function digibug_popup(url, options) { + options = $.extend({ + /* default options */ + width: '800', + height: '600', + target: 'dbPopWin', + scrollbars: 'yes', + resizable: 'no', + menuBar: 'no', + addressBar: 'yes' + }, options); + + // center the window by default. + if (!options.winY) { + options.winY = screen.height / 2 - options.height / 2; + }; + if (!options.winX) { + options.winX = screen.width / 2 - options.width / 2; + }; + + open( + url, + options['target'], + 'width= ' + options.width + + ',height=' + options.height + + ',top=' + options.winY + + ',left=' + options.winX + + ',scrollbars=' + options.scrollbars + + ',resizable=' + options.resizable + + ',menubar=' + options.menuBar + + ',location=' + options.addressBar + ); + + return false; + +} diff --git a/3.0/modules/digibug/models/digibug_proxy.php b/3.0/modules/digibug/models/digibug_proxy.php new file mode 100644 index 00000000..18c77d49 --- /dev/null +++ b/3.0/modules/digibug/models/digibug_proxy.php @@ -0,0 +1,22 @@ +_server = $_SERVER; + } + + public function teardown() { + $_SERVER = $this->_server; + } + + private function _get_proxy() { + $album = test::random_album(); + $photo = test::random_photo($album); + + access::deny(identity::everybody(), "view_full", $album); + access::deny(identity::registered_users(), "view_full", $album); + + $proxy = ORM::factory("digibug_proxy"); + $proxy->uuid = random::hash(); + $proxy->item_id = $photo->id; + return $proxy->save(); + } + + public function digibug_request_thumb_test() { + $proxy = $this->_get_proxy(); + + $controller = new Digibug_Controller(); + $controller->print_proxy("thumb", $proxy->uuid); + } + + public function digibug_request_full_malicious_ip_test() { + $_SERVER["REMOTE_ADDR"] = "123.123.123.123"; + try { + $controller = new Digibug_Controller(); + $controller->print_proxy("full", $this->_get_proxy()->uuid); + $this->assert_true(false, "Should have failed with an 404 exception"); + } catch (Kohana_404_Exception $e) { + // expected behavior + } + } + + public function digibug_request_full_authorized_ip_test() { + $config = Kohana::config("digibug"); + $this->assert_true(!empty($config), "The Digibug config is empty"); + + $ranges = array_values($config["ranges"]); + $low = ip2long($ranges[0]["low"]); + $high = ip2long($ranges[0]["high"]); + + $_SERVER["REMOTE_ADDR"] = long2ip(rand($low, $high)); + $controller = new Digibug_Controller(); + $controller->print_proxy("full", $this->_get_proxy()->uuid); + } +} diff --git a/3.0/modules/digibug/views/admin_digibug.html.php b/3.0/modules/digibug/views/admin_digibug.html.php new file mode 100644 index 00000000..d673b116 --- /dev/null +++ b/3.0/modules/digibug/views/admin_digibug.html.php @@ -0,0 +1,20 @@ + +
+ " alt="Digibug logo" class="g-right"/> +

+
+

+ +

+
    +
  • + +
  • +
+

+ register with Digibug and enter your Digibug id in the Advanced Settings page you can make money off of your photos!", + array("signup_url" => "http://www.digibug.com/signup.php", + "advanced_settings_url" => html::mark_clean(url::site("admin/advanced_settings")))) ?> +

+
+
diff --git a/3.0/modules/digibug/views/digibug_form.html.php b/3.0/modules/digibug/views/digibug_form.html.php new file mode 100644 index 00000000..af5a88b4 --- /dev/null +++ b/3.0/modules/digibug/views/digibug_form.html.php @@ -0,0 +1,13 @@ + + + + + $value): ?> + + + + + +