chef-server-api 0.8.10 → 0.8.14

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -5,7 +5,7 @@ require 'merb-core'
5
5
  require 'merb-core/tasks/merb'
6
6
 
7
7
  GEM_NAME = "chef-server-api"
8
- CHEF_SERVER_VERSION="0.8.10"
8
+ CHEF_SERVER_VERSION="0.8.14"
9
9
  AUTHOR = "Opscode"
10
10
  EMAIL = "chef@opscode.com"
11
11
  HOMEPAGE = "http://wiki.opscode.com/display/chef"
@@ -22,16 +22,18 @@ spec = Gem::Specification.new do |s|
22
22
  s.author = AUTHOR
23
23
  s.email = EMAIL
24
24
  s.homepage = HOMEPAGE
25
-
25
+
26
26
  s.add_dependency "merb-core", "~> 1.0.0"
27
27
  s.add_dependency "merb-slices", "~> 1.0.0"
28
28
  s.add_dependency "merb-assets", "~> 1.0.0"
29
29
  s.add_dependency "merb-helpers", "~> 1.0.0"
30
- ["thin",
31
- "json",
32
- "uuidtools"
33
- ].each { |g| s.add_dependency g}
34
-
30
+
31
+ s.add_dependency "json", "<= 1.4.2"
32
+
33
+ s.add_dependency "uuidtools", "~> 2.1.1"
34
+
35
+ s.add_dependency "thin"
36
+
35
37
  s.require_path = 'lib'
36
38
  s.files = %w(LICENSE README.rdoc Rakefile) + Dir.glob("{config,lib,spec,app,public,stubs}/**/*")
37
39
  end
@@ -88,6 +88,14 @@ class ChefServerApi::Application < Merb::Controller
88
88
  end
89
89
  end
90
90
 
91
+ def is_admin_or_validator
92
+ if @auth_user.admin || @auth_user.name == Chef::Config[:validation_client_name]
93
+ true
94
+ else
95
+ raise Unauthorized, "You are not allowed to take this action."
96
+ end
97
+ end
98
+
91
99
  def is_correct_node
92
100
  if @auth_user.admin || @auth_user.name == params[:id]
93
101
  true
@@ -23,8 +23,9 @@ class ChefServerApi::Clients < ChefServerApi::Application
23
23
  provides :json
24
24
 
25
25
  before :authenticate_every
26
- before :is_admin, :only => :index
27
- before :is_correct_node, :only => [ :show, :create, :update, :destroy ]
26
+ before :is_admin, :only => [ :index, :update, :destroy ]
27
+ before :is_admin_or_validator, :only => [ :create ]
28
+ before :is_correct_node, :only => [ :show ]
28
29
 
29
30
  # GET /clients
30
31
  def index
@@ -48,7 +49,13 @@ class ChefServerApi::Clients < ChefServerApi::Application
48
49
  exists = true
49
50
  if params.has_key?(:inflated_object)
50
51
  params[:name] ||= params[:inflated_object].name
51
- params[:admin] ||= params[:inflated_object].admin
52
+ # We can only get here if we're admin or the validator. Only
53
+ # allow creating admin clients if we're already an admin.
54
+ if @auth_user.admin
55
+ params[:admin] ||= params[:inflated_object].admin
56
+ else
57
+ params[:admin] = false
58
+ end
52
59
  end
53
60
 
54
61
  begin
@@ -75,7 +75,7 @@ if defined?(Merb::Plugins)
75
75
  Chef::Certificate.gen_validation_key
76
76
 
77
77
  # Generate the Web UI Key
78
- Chef::Certificate.gen_validation_key(Chef::Config[:web_ui_client_name], Chef::Config[:web_ui_key])
78
+ Chef::Certificate.gen_validation_key(Chef::Config[:web_ui_client_name], Chef::Config[:web_ui_key], true)
79
79
 
80
80
  Chef::Log.info('Loading roles')
81
81
  Chef::Role.sync_from_disk_to_couchdb
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 8
8
- - 10
9
- version: 0.8.10
8
+ - 14
9
+ version: 0.8.14
10
10
  platform: ruby
11
11
  authors:
12
12
  - Opscode
@@ -14,13 +14,14 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-04-01 00:00:00 -07:00
17
+ date: 2010-05-07 00:00:00 -07:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: merb-core
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
24
25
  requirements:
25
26
  - - ~>
26
27
  - !ruby/object:Gem::Version
@@ -35,6 +36,7 @@ dependencies:
35
36
  name: merb-slices
36
37
  prerelease: false
37
38
  requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
38
40
  requirements:
39
41
  - - ~>
40
42
  - !ruby/object:Gem::Version
@@ -49,6 +51,7 @@ dependencies:
49
51
  name: merb-assets
50
52
  prerelease: false
51
53
  requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
52
55
  requirements:
53
56
  - - ~>
54
57
  - !ruby/object:Gem::Version
@@ -63,6 +66,7 @@ dependencies:
63
66
  name: merb-helpers
64
67
  prerelease: false
65
68
  requirement: &id004 !ruby/object:Gem::Requirement
69
+ none: false
66
70
  requirements:
67
71
  - - ~>
68
72
  - !ruby/object:Gem::Version
@@ -74,33 +78,40 @@ dependencies:
74
78
  type: :runtime
75
79
  version_requirements: *id004
76
80
  - !ruby/object:Gem::Dependency
77
- name: thin
81
+ name: json
78
82
  prerelease: false
79
83
  requirement: &id005 !ruby/object:Gem::Requirement
84
+ none: false
80
85
  requirements:
81
- - - ">="
86
+ - - <=
82
87
  - !ruby/object:Gem::Version
83
88
  segments:
84
- - 0
85
- version: "0"
89
+ - 1
90
+ - 4
91
+ - 2
92
+ version: 1.4.2
86
93
  type: :runtime
87
94
  version_requirements: *id005
88
95
  - !ruby/object:Gem::Dependency
89
- name: json
96
+ name: uuidtools
90
97
  prerelease: false
91
98
  requirement: &id006 !ruby/object:Gem::Requirement
99
+ none: false
92
100
  requirements:
93
- - - ">="
101
+ - - ~>
94
102
  - !ruby/object:Gem::Version
95
103
  segments:
96
- - 0
97
- version: "0"
104
+ - 2
105
+ - 1
106
+ - 1
107
+ version: 2.1.1
98
108
  type: :runtime
99
109
  version_requirements: *id006
100
110
  - !ruby/object:Gem::Dependency
101
- name: uuidtools
111
+ name: thin
102
112
  prerelease: false
103
113
  requirement: &id007 !ruby/object:Gem::Requirement
114
+ none: false
104
115
  requirements:
105
116
  - - ">="
106
117
  - !ruby/object:Gem::Version
@@ -177,6 +188,7 @@ rdoc_options: []
177
188
  require_paths:
178
189
  - lib
179
190
  required_ruby_version: !ruby/object:Gem::Requirement
191
+ none: false
180
192
  requirements:
181
193
  - - ">="
182
194
  - !ruby/object:Gem::Version
@@ -184,6 +196,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
184
196
  - 0
185
197
  version: "0"
186
198
  required_rubygems_version: !ruby/object:Gem::Requirement
199
+ none: false
187
200
  requirements:
188
201
  - - ">="
189
202
  - !ruby/object:Gem::Version
@@ -193,7 +206,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
193
206
  requirements: []
194
207
 
195
208
  rubyforge_project:
196
- rubygems_version: 1.3.6
209
+ rubygems_version: 1.3.6.1
197
210
  signing_key:
198
211
  specification_version: 3
199
212
  summary: A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.