# Copyright 2016 Luke Shumaker . # # This is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # This software is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public # License along with this manual; if not, see # . require 'yaml' def cfg if @cfg.nil? @cfg = YAML::load(open("@conf_file@")) if ENV['PARABOLA_HACKERS_YAMLDIR'] @cfg["yamldir"] = ENV['PARABOLA_HACKERS_YAMLDIR'] end end return @cfg end def load_user_yaml(filename) user = YAML::load(open(filename)) groups = user["groups"] || [] user["groups"] = groups.concat((groups & cfg["groupgroups"].keys).map{|g|cfg["groupgroups"][g]}.flatten) return user end def load_all_users users = {} Dir.glob("#{cfg["yamldir"]}/*.yml").map{|filename| uid = File.basename(filename).sub(/^([0-9]*)\.yml$/, "\\1").to_i user = load_user_yaml(filename) users[uid] = user } return users end