summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-02-12 20:31:55 -0800
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-03-09 20:58:28 -0700
commit345fd545bf6d5f161686a09c4583a1e7488fd9c6 (patch)
treee103fc9da89da300adf6106a4b387e748850e9a1
parentf5eb5fdd5e6d8bcf3ad52749e99a378e411ff8ad (diff)
downloadgitlab-ce-345fd545bf6d5f161686a09c4583a1e7488fd9c6.tar.gz
Add version check badge to admin area
-rw-r--r--app/helpers/version_check_helper.rb5
-rw-r--r--app/views/admin/dashboard/index.html.haml6
-rw-r--r--lib/version_check.rb30
3 files changed, 40 insertions, 1 deletions
diff --git a/app/helpers/version_check_helper.rb b/app/helpers/version_check_helper.rb
new file mode 100644
index 00000000000..63d8eaeb2bd
--- /dev/null
+++ b/app/helpers/version_check_helper.rb
@@ -0,0 +1,5 @@
+module VersionCheckHelper
+ def version_status_badge
+ image_tag VersionCheck.new.url
+ end
+end
diff --git a/app/views/admin/dashboard/index.html.haml b/app/views/admin/dashboard/index.html.haml
index d1c586328a2..6b4ff4b330d 100644
--- a/app/views/admin/dashboard/index.html.haml
+++ b/app/views/admin/dashboard/index.html.haml
@@ -56,7 +56,11 @@
%span.light.pull-right
= boolean_to_icon Gitlab.config.omniauth.enabled
.col-md-4
- %h4 Components
+ %h4
+ Components
+ .pull-right
+ = version_status_badge
+
%hr
%p
GitLab
diff --git a/lib/version_check.rb b/lib/version_check.rb
new file mode 100644
index 00000000000..ada5e0db7a9
--- /dev/null
+++ b/lib/version_check.rb
@@ -0,0 +1,30 @@
+# This class is used to encrypt GitLab version and URL
+# with public key when we send it to version.gitlab.com to
+# check if it is a new version for update
+class VersionCheck
+ include SimpleEncrypt
+
+ def public_key
+ public_key_file = Rails.root.join('safe', 'public.pem').to_s
+ File.read(public_key_file)
+ end
+
+ def data
+ {
+ version: Gitlab::VERSION,
+ url: Gitlab.config.gitlab.url
+ }
+ end
+
+ def encrypt(string)
+ encrypt_with_public_key(string, public_key)
+ end
+
+ def url
+ "#{host}?gitlab_info=#{encrypt(data.to_json)}"
+ end
+
+ def host
+ 'http://localhost:9090/check.png'
+ end
+end