Class/Module Index [+]

Quicksearch

PolKit1

Constants

POLKIT_PATH
VERSION

Public Class Methods

polkit1_check(perm, user_name) click to toggle source
# File lib/polkit1.rb, line 9
def self.polkit1_check(perm, user_name)
  raise "invalid user name" if (user_name =~ /\\$/ or user_name.include? "'")
  polkit1_check_uid perm, Etc.getpwnam(user_name).uid
end
polkit1_write(section, perm, granted, user_name) click to toggle source
# File lib/polkit1.rb, line 14
def self.polkit1_write(section, perm, granted, user_name)
  raise "invalid user name" if (user_name =~ /\\$/ or user_name.include? "'")
  raise "section name required" if section.empty?
  raise "user name required" if user_name.empty?
  Dir.mkdir(POLKIT_PATH) unless File.directory?(POLKIT_PATH)
  path_name = POLKIT_PATH + section
  Dir.mkdir(path_name) unless File.directory?(path_name)
  file = File.join(path_name, perm + ".pkla" )
  if File.exists?(file)
    ini_file = IniFile.load(file,:comment => '#') 
  else
    ini_file = IniFile.new(file,:comment => '#')
    ini_file[perm]["Action"] = perm
    ini_file[perm]["ResultAny"] = "yes"
    ini_file[perm]["ResultInactive"] = "yes"
    ini_file[perm]["ResultActive"] = "yes"
  end
  permissions = []
  permission_string = "unix-user:"+user_name
  if ini_file[perm].has_key? "Identity"
    permissions = ini_file[perm]["Identity"].split(";")
    unless granted
      permissions = permissions.delete_if { |pe| pe == permission_string }
    else
      permissions << permission_string unless permissions.include?(permission_string)
    end
  else 
     permissions << permission_string
  end
  unless permissions.empty?
    ini_file[perm]["Identity"] = permissions.join(";")
  else
    ini_file.delete_section(perm)
  end
  ini_file.save     
  File.delete(file) if File.size(file) == 0
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.