class Wdmc::Acl

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/wdmc/acl.rb, line 7
def initialize(*args)
  @wdmc = Wdmc::Client.new
  super
end

Public Instance Methods

delete( name ) click to toggle source
# File lib/wdmc/acl.rb, line 74
def delete( name )
  share_exists = @wdmc.share_exists?( name )
  abort "\nShare does not exist: ".color(:yellow) + "#{name}".color(:cyan) unless share_exists.include?( name )
  begin
    data = {
      :share_name => name,
      :username => options['user']
    }
    unless options['force']
      puts "\nYou are going to delete #{options['access']} access for user #{options['user']} to #{name}".color(:orange)
      return unless yes?("DELETE? (yes/no): ")
    end
    puts "Remove ACL:\s".color(:whitesmoke) + "OK".color(:green) if @wdmc.delete_acl( data )
    share = @wdmc.get_acl( name )
    share[:share_access].map do |access|
      puts "\s- Username\t:\s".color(:whitesmoke) + access[:username]
      puts "\s- User ID\t:\s".color(:whitesmoke) + access[:user_id]
      puts "\s- Access\t:\s".color(:whitesmoke) + access[:access].color(:green) if access[:access] == 'RW'
      puts "\s- Access\t:\s".color(:whitesmoke) + access[:access].color(:yellow) if access[:access] == 'RO'
      puts
    end
  rescue RestClient::ExceptionWithResponse => e
    puts e.response
  end
end
edit( name ) click to toggle source
# File lib/wdmc/acl.rb, line 48
def edit( name )
  share_exists = @wdmc.share_exists?( name )
  abort "\nShare does not exist: ".color(:yellow) + "#{name}".color(:cyan) unless share_exists.include?( name )
  begin
    data = {
      :share_name => name,
      :username => options['user'],
      :access => options['access']
    }
    puts "Modify ACL:\s".color(:whitesmoke) + "OK".color(:green) if @wdmc.modify_acl( data )
    share = @wdmc.get_acl( name )
    share[:share_access].map do |access|
      puts "\s- Username\t:\s".color(:whitesmoke) + access[:username]
      puts "\s- User ID\t:\s".color(:whitesmoke) + access[:user_id]
      puts "\s- Access\t:\s".color(:whitesmoke) + access[:access].color(:green) if access[:access] == 'RW'
      puts "\s- Access\t:\s".color(:whitesmoke) + access[:access].color(:yellow) if access[:access] == 'RO'
      puts
    end
  rescue RestClient::ExceptionWithResponse => e
    puts e.response
  end
end
get( name ) click to toggle source
# File lib/wdmc/acl.rb, line 13
def get( name )
  share_exists = @wdmc.share_exists?( name )
  abort "\nShare does not exist: ".color(:yellow) + "#{name}".color(:cyan) unless share_exists.include?( name )
  Wdmc::Share.new.show( name )
end
set( name ) click to toggle source
# File lib/wdmc/acl.rb, line 22
def set( name )
  share_exists = @wdmc.share_exists?( name )
  abort "\nShare does not exist: ".color(:yellow) + "#{name}".color(:cyan) unless share_exists.include?( name )
  begin
    data = {
      :share_name => name,
      :username => options['user'],
      :access => options['access']
    }
    puts "Set ACL:\s".color(:whitesmoke) + "OK".color(:green) if @wdmc.set_acl( data )
    share = @wdmc.get_acl( name )
    share[:share_access].map do |access|
      puts "\s- Username\t:\s".color(:whitesmoke) + access[:username]
      puts "\s- User ID\t:\s".color(:whitesmoke) + access[:user_id]
      puts "\s- Access\t:\s".color(:whitesmoke) + access[:access].color(:green) if access[:access] == 'RW'
      puts "\s- Access\t:\s".color(:whitesmoke) + access[:access].color(:yellow) if access[:access] == 'RO'
      puts
    end
  rescue RestClient::ExceptionWithResponse => e
    puts e.response
  end
end