chef-server-api 0.8.10 → 0.8.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +9 -7
- data/app/controllers/application.rb +8 -0
- data/app/controllers/clients.rb +10 -3
- data/lib/chef-server-api.rb +1 -1
- metadata +26 -13
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.
|
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
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
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
|
data/app/controllers/clients.rb
CHANGED
@@ -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 :
|
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
|
-
|
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
|
data/lib/chef-server-api.rb
CHANGED
@@ -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
|
-
-
|
9
|
-
version: 0.8.
|
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-
|
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:
|
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
|
-
-
|
85
|
-
|
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:
|
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
|
-
-
|
97
|
-
|
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:
|
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.
|