187 lines
5.2 KiB
Plaintext
187 lines
5.2 KiB
Plaintext
@user
|
|
Feature: change user privileges and password
|
|
|
|
<% %w{password email}.each do |k| %>
|
|
<% val = (k == "email" ? "#{@config["user"]["name"]}@test.test" : @config["user"]["name"]) %>
|
|
Scenario: change user <%= k %> with user without privileges
|
|
When I send PUT '/v2.0/user/<%= @config["user"]["name"] %>/<%= k %>' query with JSON body with user without privileges
|
|
"""
|
|
{
|
|
"<%= k %>": "<%= val %>"
|
|
}
|
|
"""
|
|
Then response should be '401'
|
|
|
|
Scenario: change root <%= k %>
|
|
When I send PUT '/v2.0/user/root/<%= k %>' query with JSON body
|
|
"""
|
|
{
|
|
"<%= k %>": "<%= val %>"
|
|
}
|
|
"""
|
|
Then response should be '401'
|
|
|
|
Scenario: change user <%= k %> without header 'Content-Type'
|
|
When I send PUT '/v2.0/user/<%= @config["user"]["name"] %>/<%= k %>' query with JSON body without header 'Content-Type'
|
|
"""
|
|
{
|
|
"<%= k %>": "<%= val %>"
|
|
}
|
|
"""
|
|
Then response should be '415'
|
|
|
|
Scenario: change user <%= k %>, invalid body: empty
|
|
When I send PUT '/v2.0/user/<%= @config["user"]["name"] %>/<%= k %>' query with JSON body
|
|
"""
|
|
"""
|
|
Then response should be '400'
|
|
|
|
<% ["{}", "[]", ""].each do |body| %>
|
|
Scenario: change user <%= k %>, invalid body: body is a '<%= body %>'
|
|
When I send PUT '/v2.0/user/<%= @config["user"]["name"] %>/<%= k %>' query with JSON body
|
|
"""
|
|
<%= body %>
|
|
"""
|
|
Then response should be '400'
|
|
<% end %>
|
|
<% elements = ["{}", "[]", "null" ] %>
|
|
<% elements.each do |value| %>
|
|
Scenario: change user <%= k %>, invalid body: <%= k %> is a '<%= value %>'
|
|
When I send PUT '/v2.0/user/<%= @config["user"]["name"] %>/<%= k %>' query with JSON body
|
|
"""
|
|
{
|
|
"<%= k %>": <%= value %>
|
|
}
|
|
"""
|
|
Then response should be '400'
|
|
<% end %>
|
|
|
|
Scenario: change user <%= k %>
|
|
When I send PUT '/v2.0/user/<%= @config["user"]["name"] %>/<%= k %>' query with JSON body
|
|
"""
|
|
{
|
|
"<%= k %>": "<%= val %>"
|
|
}
|
|
"""
|
|
Then response should be '200'
|
|
And the Content-Type header should include 'application/json'
|
|
|
|
<% end %>
|
|
|
|
Scenario: change user privileges with user without privileges
|
|
When I send PUT '/v2.0/user/<%= @config["user"]["name"] %>' query with JSON body with user without privileges
|
|
"""
|
|
{}
|
|
"""
|
|
Then response should be '401'
|
|
|
|
Scenario: change root privileges
|
|
When I send PUT '/v2.0/user/root' query with JSON body
|
|
"""
|
|
{}
|
|
"""
|
|
Then response should be '401'
|
|
|
|
Scenario: change user privileges without header 'Content-Type'
|
|
When I send PUT '/v2.0/user/<%= @config["user"]["name"] %>' query with JSON body without header 'Content-Type'
|
|
"""
|
|
{}
|
|
"""
|
|
Then response should be '415'
|
|
|
|
<% ["[]", ""].each do |body| %>
|
|
Scenario: change user privileges, invalid body: body is a '<%= body %>'
|
|
When I send PUT '/v2.0/user/<%= @config["user"]["name"] %>' query with JSON body
|
|
"""
|
|
<%= body %>
|
|
"""
|
|
Then response should be '400'
|
|
<% end %>
|
|
<% elements = ["{}", "[]" ] %>
|
|
<% elements.each do |value| %>
|
|
Scenario: change user privileges, invalid body: cmd is a '<%= value %>'
|
|
When I send PUT '/v2.0/user/<%= @config["user"]["name"] %>' query with JSON body
|
|
"""
|
|
{
|
|
"cmd": "<%= value %>",
|
|
"privileges": "r"
|
|
}
|
|
"""
|
|
Then response should be '400'
|
|
|
|
Scenario: change user privileges, invalid body: privileges is a '<%= value %>'
|
|
When I send PUT '/v2.0/user/<%= @config["user"]["name"] %>' query with JSON body
|
|
"""
|
|
{
|
|
"cmd": "all",
|
|
"privileges": "<%= value %>"
|
|
}
|
|
"""
|
|
Then response should be '400'
|
|
<% end %>
|
|
|
|
Scenario: change user privileges: foo - r
|
|
When I send PUT '/v2.0/user/<%= @config["user"]["name"] %>' query with JSON body
|
|
"""
|
|
{
|
|
"cmd": "foo",
|
|
"privileges": "r"
|
|
}
|
|
"""
|
|
Then response should be '400'
|
|
<% %w{foo, rr, rwwww, rwxxx, rwf}.each do |priv| %>
|
|
Scenario: change user privileges: all - <%= priv %>
|
|
When I send PUT '/v2.0/user/<%= @config["user"]["name"] %>' query with JSON body
|
|
"""
|
|
{
|
|
"cmd": "all",
|
|
"privileges": "<%= priv %>"
|
|
}
|
|
"""
|
|
Then response should be '400'
|
|
<% end %>
|
|
|
|
<% privs = %w{r w x rw rx wx rwx} %>
|
|
|
|
<% %w{flavor group image project server key user filter network provider script templates all}.each do |cmd| %>
|
|
<% privs.each do |priv| %>
|
|
Scenario: change user privileges: <%= cmd %> - <%= priv %>
|
|
When I send PUT '/v2.0/user/<%= @config["user"]["name"] %>' query with JSON body
|
|
"""
|
|
{
|
|
"cmd": "<%= cmd %>",
|
|
"privileges": "<%= priv %>"
|
|
}
|
|
"""
|
|
Then response should be '200'
|
|
<% end %>
|
|
Scenario: change user privileges: <%= cmd %> - without privileges
|
|
When I send PUT '/v2.0/user/<%= @config["user"]["name"] %>' query with JSON body
|
|
"""
|
|
{
|
|
"cmd": "<%= cmd %>"
|
|
}
|
|
"""
|
|
Then response should be '200'
|
|
|
|
Scenario: change user privileges: <%= cmd %> - ' '
|
|
When I send PUT '/v2.0/user/<%= @config["user"]["name"] %>' query with JSON body
|
|
"""
|
|
{
|
|
"cmd": "<%= cmd %>",
|
|
"privileges": " "
|
|
}
|
|
"""
|
|
Then response should be '400'
|
|
|
|
<% end %>
|
|
|
|
Scenario: change user privileges: set default privileges
|
|
When I send PUT '/v2.0/user/<%= @config["user"]["name"] %>' query with JSON body
|
|
"""
|
|
{
|
|
}
|
|
"""
|
|
Then response should be '200'
|
|
|