module ActivateMyDirectory

Constants

VERSION

Public Class Methods

authenticate(username, password) click to toggle source
# File lib/activate_my_directory.rb, line 34
def authenticate(username, password)
  setup
  user = ActiveDirectory::User.find(:first, userprincipalname: "#{username}@#{yaml['domain']}")
  return false unless user
  user.authenticate(password)
end
authenticate_and_is_in_group?(username, password, groupname) click to toggle source
# File lib/activate_my_directory.rb, line 49
def authenticate_and_is_in_group?(username, password, groupname)
  authenticate(username, password) && user_is_in_group?(username, groupname)
end
config_path() click to toggle source
# File lib/activate_my_directory.rb, line 7
def config_path
  ENV['ACTIVATE_MY_DIRECTORY_CONFIG'] || 
    File.join(Dir.home, '.activate_my_directory', 'config.yml')
end
settings() click to toggle source
# File lib/activate_my_directory.rb, line 16
def settings
  @settings ||= {
    host: yaml['host'],
    port: yaml['port'],
    base: yaml['base'],
    auth: { method: :simple,
            username: "#{yaml['username']}@#{yaml['domain']}",
            password: yaml['password']
    },
    encryption: { method: :simple_tls }
  }
end
setup() click to toggle source
# File lib/activate_my_directory.rb, line 29
def setup
  ActiveDirectory::Base.setup(settings) unless @setup
  @setup = true
end
user_is_in_group?(username, groupname) click to toggle source
# File lib/activate_my_directory.rb, line 41
def user_is_in_group?(username, groupname)
  setup
  user = ActiveDirectory::User.find(:first, userprincipalname: "#{username}@#{yaml['domain']}")
  group = ActiveDirectory::Group.find(:first, cn: groupname)
  return false unless user && group
  user.groups.include?(group)
end
yaml() click to toggle source
# File lib/activate_my_directory.rb, line 12
def yaml
  @yaml ||= YAML::load_file(config_path)
end