fluke/devops-service/lib/users_permissions_updater.rb

56 lines
1.3 KiB
Ruby
Raw Normal View History

2015-09-08 15:45:34 +03:00
require "mongo"
2015-09-08 16:20:27 +03:00
require "../core/devops-config"
2015-09-08 15:45:34 +03:00
class UsersPermissionsUpdater
attr_reader :users_collection
2015-09-08 16:20:27 +03:00
def initialize
DevopsConfig.read
config = DevopsConfig.config
db = config[:mongo_db] || "devops"
host = config[:mongo_host] || "localhost"
port = config[:mongo_port] || 27017
user = config[:mongo_user]
password = config[:mongo_password]
puts
puts "Initialized updater for db '#{db}' located on host '#{host}'"
2015-09-08 15:45:34 +03:00
@db = Mongo::MongoClient.new(host, port).db(db)
@db.authenticate(user, password)
@users_collection = @db.collection('users')
end
def admins
users_collection.find('privileges.server' => 'rwx')
end
def readers
users_collection.find('privileges.server' => 'r')
end
2015-09-08 16:20:27 +03:00
def set_priveleges_to_users(users, privilege_value)
2015-09-08 15:45:34 +03:00
ids = users.to_a.map {|u| u['_id']}
2015-09-08 16:20:27 +03:00
puts "users: #{ids.join(', ')}"
2015-09-08 15:45:34 +03:00
users_collection.update(
{"_id" => {'$in' => ids}},
{
"$set" => {
2015-09-08 16:20:27 +03:00
"privileges.stack" => privilege_value,
"privileges.stack_template" => privilege_value
2015-09-08 15:45:34 +03:00
}
}
)
end
end
2015-09-08 16:20:27 +03:00
updater = UsersPermissionsUpdater.new
updater.set_priveleges_to_users(updater.admins, 'rwx')
puts "Admin privileges updated"
2015-09-08 15:45:34 +03:00
2015-09-08 16:20:27 +03:00
updater.set_priveleges_to_users(updater.readers, 'r')
puts "Readers privileges updated"