class Kontena::Plugin::Cloud::Platform::User::AddCommand
Public Instance Methods
add_users(platform, usernames)
click to toggle source
# File lib/kontena/plugin/cloud/platform/user/add_command.rb, line 37 def add_users(platform, usernames) users = [] usernames.each do |u| user = { type: 'users', id: u } user[:meta] = { role: role } if role users << user end spinner "Adding users to platform #{pastel.cyan(name)}" do data = {data: users} cloud_client.post("/organizations/#{current_organization}/platforms/#{platform.id}/relationships/users", data) end end
execute()
click to toggle source
# File lib/kontena/plugin/cloud/platform/user/add_command.rb, line 13 def execute require_platform(name) platform = find_platform_by_name(current_grid, current_organization) self.username_list = prompt_users(platform) if self.username_list.count == 0 add_users(platform, username_list) end
prompt_users(platform)
click to toggle source
# File lib/kontena/plugin/cloud/platform/user/add_command.rb, line 20 def prompt_users(platform) organization_members = cloud_client.get("/organizations/#{current_organization}/members")['data'] platform_members = cloud_client.get("/organizations/#{current_organization}/platforms/#{platform.id}/relationships/users")['data'] users = organization_members.map do |u| username = u.dig('attributes', 'username') if !platform_members.any?{|m| m['id'] == username } username end end.compact exit_with_error("All organization members are already added to platform") if users.size == 0 prompt.multi_select("Choose users:") do |menu| users.each do |username| menu.choice username, username end end end