From 6a46eb3c2f7d0c8a46c93ee337e0765340b59d18 Mon Sep 17 00:00:00 2001 From: Anton Chuchkalov Date: Mon, 12 Oct 2015 16:58:23 +0300 Subject: [PATCH 1/4] #778: return error on attempt of creating duplicating users --- devops-service/db/mongo/connectors/helpers/insert_command.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/devops-service/db/mongo/connectors/helpers/insert_command.rb b/devops-service/db/mongo/connectors/helpers/insert_command.rb index c00cc48..bc15efd 100644 --- a/devops-service/db/mongo/connectors/helpers/insert_command.rb +++ b/devops-service/db/mongo/connectors/helpers/insert_command.rb @@ -20,7 +20,8 @@ module Connectors collection.insert(record.to_mongo_hash) record rescue Mongo::OperationFailure => e - if e.message =~ /^11000/ + # exception's message doesn't always start from error code + if e.message =~ /11000/ resource_name = StringHelper.underscore_class(record.class) raise InvalidRecord.new("Duplicate key error: #{resource_name} with id '#{record.id}'") end From a9a70e83753d7c2c0982535535b5a0fba9b34b50 Mon Sep 17 00:00:00 2001 From: Anton Chuchkalov Date: Mon, 12 Oct 2015 17:21:16 +0300 Subject: [PATCH 2/4] fix bug with changing user password and email --- devops-service/app/api2/parsers/user.rb | 2 ++ devops-service/app/api2/routes/user.rb | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/devops-service/app/api2/parsers/user.rb b/devops-service/app/api2/parsers/user.rb index 33266fb..0102fc1 100644 --- a/devops-service/app/api2/parsers/user.rb +++ b/devops-service/app/api2/parsers/user.rb @@ -21,12 +21,14 @@ module Devops end def change_password + user = @request.path_info.match(/(?<=^\/user\/)\w+/)[0] raise InvalidPrivileges.new("Access denied for '#{current_user}'") if user == Devops::Model::User::ROOT_USER_NAME and current_user != Devops::Model::User::ROOT_USER_NAME body = create_object_from_json_body check_string(body["password"], "Parameter 'password' must be a not empty string") end def change_email + user = @request.path_info.match(/(?<=^\/user\/)\w+/)[0] raise InvalidPrivileges.new("Access denied for '#{current_user}'") if user == Devops::Model::User::ROOT_USER_NAME and current_user != Devops::Model::User::ROOT_USER_NAME body = create_object_from_json_body check_string(body["email"], "Parameter 'email' must be a not empty string") diff --git a/devops-service/app/api2/routes/user.rb b/devops-service/app/api2/routes/user.rb index e9ec0eb..393193e 100644 --- a/devops-service/app/api2/routes/user.rb +++ b/devops-service/app/api2/routes/user.rb @@ -112,7 +112,7 @@ module Devops # # * *Returns* : # 200 - Updated - app.put_with_headers %r{\A/user/#{DevopsConfig::OBJECT_NAME}/email\z}, :headers => [:accept, :content_type] do |user| + app.put_with_headers %r{\A/user/(#{DevopsConfig::OBJECT_NAME})/email\z}, :headers => [:accept, :content_type] do |user| check_privileges("user", "w") unless request.env['REMOTE_USER'] == user Devops::API2_0::Handler::User.new(request).change_email(user) create_response("Updated") @@ -132,7 +132,7 @@ module Devops # # * *Returns* : # 200 - Updated - app.put_with_headers %r{\A/user/#{DevopsConfig::OBJECT_NAME}/password\z}, :headers => [:accept, :content_type] do |user| + app.put_with_headers %r{\A/user/(#{DevopsConfig::OBJECT_NAME})/password\z}, :headers => [:accept, :content_type] do |user| check_privileges("user", "w") unless request.env['REMOTE_USER'] == user Devops::API2_0::Handler::User.new(request).change_password(user) create_response("Updated") From 4c4fac1e59f91569cf1076198eabf1a747a0f07c Mon Sep 17 00:00:00 2001 From: Anton Chuchkalov Date: Tue, 20 Oct 2015 13:54:59 +0300 Subject: [PATCH 3/4] #834: fix devops-client bin --- devops-client/bin/devops | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/devops-client/bin/devops b/devops-client/bin/devops index d8dfac0..92f45ad 100755 --- a/devops-client/bin/devops +++ b/devops-client/bin/devops @@ -1,7 +1,6 @@ #!/usr/bin/env ruby require 'rubygems' -require 'bundler' -Bundler.require(:default, :development) +require 'devops-client' DevopsClient.run From edbbe2baf43ff4b01886521968eb55956e08dcf3 Mon Sep 17 00:00:00 2001 From: Anton Martynov Date: Tue, 27 Oct 2015 14:00:28 +0300 Subject: [PATCH 4/4] fixed --- devops-service/db/mongo/connectors/project.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devops-service/db/mongo/connectors/project.rb b/devops-service/db/mongo/connectors/project.rb index ce2ce58..3f39485 100644 --- a/devops-service/db/mongo/connectors/project.rb +++ b/devops-service/db/mongo/connectors/project.rb @@ -93,7 +93,7 @@ module Connectors def check_project_auth(project_id, env, user_id) project = show(project_id) - raise InvalidPrivileges.new("User '#{user_id}' unauthorized to work with project '#{project_id}'") unless project.check_authorization(user_id, env) + raise InvalidPrivileges.new("User '#{user_id}' is unauthorized to work with project '#{project_id}' and environment '#{env}'") unless project.check_authorization(user_id, env) project end