#743: fixed
This commit is contained in:
parent
c98b418552
commit
8598c98a92
@ -119,12 +119,9 @@ module Devops
|
||||
def update_project_users id
|
||||
deploy_env, users = parser.project_users
|
||||
project = Devops::Db.connector.project(id)
|
||||
dbusers = Devops::Db.connector.users(users).map{|u| u.id}
|
||||
buf = dbusers - users
|
||||
Validators::Helpers::Users.new(run_list).validate!
|
||||
project.add_authorized_user users, deploy_env
|
||||
Devops::Db.connector.project_update(project)
|
||||
info = "Users '#{dbusers.join("', '")}' has been added to '#{id}' project's authorized users"
|
||||
info << ", invalid users: '#{buf.join("', '")}'" unless buf.empty?
|
||||
info = "Users '#{users.join("', '")}' has been added to '#{id}' project's authorized users."
|
||||
info
|
||||
end
|
||||
|
||||
@ -133,7 +130,6 @@ module Devops
|
||||
deploy_env, users = parser.project_users
|
||||
project = Devops::Db.connector.project(id)
|
||||
project.remove_authorized_user users, deploy_env
|
||||
Devops::Db.connector.project_update project
|
||||
"Users '#{users.join("', '")}' have been removed from '#{id}' project's authorized users"
|
||||
end
|
||||
|
||||
|
||||
@ -97,9 +97,13 @@ module Connectors
|
||||
project
|
||||
end
|
||||
|
||||
def set_project_deploy_env_field(project_id, env, field, value)
|
||||
@collection.update({"_id" => project_id, "deploy_envs.identifier" => env}, {"$set" => {"deploy_envs.$.#{field}" => value}})
|
||||
end
|
||||
|
||||
def set_project_env_run_list(project_id, env, run_list)
|
||||
Helpers::RunList.new(run_list).validate!
|
||||
@collection.update({"_id" => project_id, "deploy_envs.identifier" => env}, {"$set" => {"deploy_envs.$.run_list" => run_list}})
|
||||
set_project_deploy_env_field(project_id, env, "run_list", run_list)
|
||||
end
|
||||
|
||||
def set_project_run_list(project_id, env, run_list)
|
||||
|
||||
@ -73,11 +73,13 @@ module Devops
|
||||
self.deploy_envs.each do |e|
|
||||
return unless e.users.is_a?(Array)
|
||||
e.users = (e.users + new_users).uniq
|
||||
Devops::Db.connector.set_project_deploy_env_field(self.id, e.identifier, "users", e.users)
|
||||
end
|
||||
else
|
||||
e = self.deploy_env(env)
|
||||
return unless e.users.is_a?(Array)
|
||||
e.users = (e.users + new_users).uniq
|
||||
Devops::Db.connector.set_project_deploy_env_field(self.id, e.identifier, "users", e.users)
|
||||
end
|
||||
end
|
||||
|
||||
@ -88,11 +90,13 @@ module Devops
|
||||
self.deploy_envs.each do |e|
|
||||
return unless e.users.is_a?(Array)
|
||||
e.users = e.users - users
|
||||
Devops::Db.connector.set_project_deploy_env_field(self.id, e.identifier, "users", e.users)
|
||||
end
|
||||
else
|
||||
e = self.deploy_env(env)
|
||||
return unless e.users.is_a?(Array)
|
||||
e.users = e.users - users
|
||||
Devops::Db.connector.set_project_deploy_env_field(self.id, e.identifier, "users", e.users)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@ class MongoConnector
|
||||
[:available_images, :add_available_images, :delete_available_images] => :filters_connector,
|
||||
[:project, :projects_all, :projects, :project_names_with_envs,
|
||||
:projects_by_image, :projects_by_user, :project_insert, :project_update,
|
||||
:project_delete, :is_project_exists?, :check_project_auth, :set_project_run_list, :set_project_env_run_list, :add_deploy_env_to_project, :remove_deploy_env_from_project, :project_update_field] => :projects_connector,
|
||||
:project_delete, :is_project_exists?, :check_project_auth, :set_project_run_list, :set_project_deploy_env_field, :set_project_env_run_list, :add_deploy_env_to_project, :remove_deploy_env_from_project, :project_update_field] => :projects_connector,
|
||||
[:project_templates, :project_template_insert, :project_template_update,
|
||||
:project_template_delete] => :projects_templates_connector,
|
||||
[:servers_find, :servers, :stack_servers, :servers_by_names, :server_by_instance_id,
|
||||
|
||||
@ -1,14 +1,5 @@
|
||||
module Validators
|
||||
class DeployEnv::Users < Base
|
||||
|
||||
def valid?
|
||||
mongo_users = ::Devops::Db.connector.users_names(@model.users)
|
||||
@nonexistent_users = @model.users - mongo_users
|
||||
@nonexistent_users.empty?
|
||||
end
|
||||
|
||||
def message
|
||||
Devops::Messages.t("project.deploy_env.validation.users.not_exist", users: @nonexistent_users.join("', '"))
|
||||
end
|
||||
delegate_to_helper_validator { Helpers::Users.new(@model.users) }
|
||||
end
|
||||
end
|
||||
|
||||
14
devops-service/db/validators/helpers/users.rb
Normal file
14
devops-service/db/validators/helpers/users.rb
Normal file
@ -0,0 +1,14 @@
|
||||
module Validators
|
||||
class Helpers::Users < Base
|
||||
|
||||
def valid?
|
||||
mongo_users = ::Devops::Db.connector.users_names(@model)
|
||||
@nonexistent_users = @model - mongo_users
|
||||
@nonexistent_users.empty?
|
||||
end
|
||||
|
||||
def message
|
||||
Devops::Messages.t("project.deploy_env.validation.users.not_exist", users: @nonexistent_users.join("', '"))
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
Reference in New Issue
Block a user