chef-server-webui 0.9.10.rc.2 → 0.9.10.rc.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -29,7 +29,7 @@ class Application < Merb::Controller
29
29
  def login_required
30
30
  if session[:user]
31
31
  begin
32
- Chef::WebUIUser.load(session[:user]) rescue (raise NotFound, "Cannot find User #{session[:user]}, maybe it got deleted by an Administrator.")
32
+ load_session_user
33
33
  rescue
34
34
  logout_and_redirect_to_login
35
35
  else
@@ -41,6 +41,12 @@ class Application < Merb::Controller
41
41
  end
42
42
  end
43
43
 
44
+ def load_session_user
45
+ Chef::WebUIUser.load(session[:user])
46
+ rescue
47
+ raise NotFound, "Cannot find User #{session[:user]}, maybe it got deleted by an Administrator."
48
+ end
49
+
44
50
  def cleanup_session
45
51
  [:user,:level].each { |n| session.delete(n) }
46
52
  end
@@ -214,6 +220,25 @@ class Application < Merb::Controller
214
220
  highlighted_file
215
221
  end
216
222
 
223
+ def show_plain_file(file_url)
224
+ Chef::Log.debug("fetching file from '#{file_url}' for highlighting")
225
+ r = Chef::REST.new(Chef::Config[:chef_server_url])
226
+ r.fetch(file_url) do |tempfile|
227
+ if binary?(tempfile.path)
228
+ return "Binary file not shown"
229
+ elsif ((File.size(tempfile.path) / (1048576)) > 5)
230
+ return "File too large to display"
231
+ else
232
+ return IO.read(tempfile.path)
233
+ end
234
+ end
235
+ end
236
+
237
+ def binary?(file)
238
+ s = (File.read(file, File.stat(file).blksize) || "")
239
+ s.empty? || ( s.count( "^ -~", "^\r\n" ).fdiv(s.size) > 0.3 || s.index( "\x00" ))
240
+ end
241
+
217
242
  def str_to_bool(str)
218
243
  str =~ /true/ ? true : false
219
244
  end
@@ -46,4 +46,11 @@
46
46
  - @manifest["templates"].each do |f|
47
47
  .code
48
48
  %h4.head= link_to File.basename(f["name"]), "JavaScript:void(0);"
49
- %pre.ruby= syntax_highlight(f["url"])
49
+ %pre.ruby= syntax_highlight(f["url"])
50
+ - unless @manifest["files"].empty?
51
+ %h2.head= link_to "Cookbook Files", "JavaScript:void(0);"
52
+ .files
53
+ - @manifest["files"].each do |f|
54
+ .code
55
+ %h4.head= link_to File.basename(f["name"]), "JavaScript:void(0);"
56
+ %pre= show_plain_file(f["url"])
@@ -1,3 +1,3 @@
1
1
  module ChefServerWebui
2
- VERSION = '0.9.10.rc.2'
2
+ VERSION = '0.9.10.rc.3'
3
3
  end
metadata CHANGED
@@ -7,8 +7,8 @@ version: !ruby/object:Gem::Version
7
7
  - 9
8
8
  - 10
9
9
  - rc
10
- - 2
11
- version: 0.9.10.rc.2
10
+ - 3
11
+ version: 0.9.10.rc.3
12
12
  platform: ruby
13
13
  authors:
14
14
  - Opscode
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2010-10-08 00:00:00 -07:00
19
+ date: 2010-10-12 00:00:00 -07:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency