Sha256: 4d00c4d8619e2c8379cf171d1fc96d02a57e69a77b3947b48e96fc3f47f8cd4a
Contents?: true
Size: 1.31 KB
Versions: 1
Compression:
Stored size: 1.31 KB
Contents
require 'auth_assistant/role_strategies/all' require 'singleton' module AuthAssistant def self.configure(&block) block.arity < 1 ? AuthAssistant::Configuration.instance.class_eval(&block) : block.call(AuthAssistant::Configuration.instance) end class Configuration include Singleton attr_accessor :role_strategy attr_accessor :available_roles def available_strategies [:admin_field, :role_field, :roles_field, :roles_mask, :role_assignment, :multi_role_assignment] end def strategy(name) n = name.to_s available_strategies.include?(n.to_sym) ? n.to_sym : :roles_field end def role_strategy=(strategy_name) # puts "Applying role strategy: #{strategy_name}" if !available_strategies.include? strategy_name.to_sym raise UnknownStrategy, "unknown strategy: #{strategy_name.inspect}, must be one of: #{available_strategies.inspect}" end @role_strategy = strategy(strategy_name) camel = @role_strategy.to_s.camelize User.class_eval do include AuthAssistant::RoleStrategy::Shared include "AuthAssistant::RoleStrategy::#{camel}".constantize set_scope if respond_to? :set_scope set_relationships if respond_to? :set_relationships end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
auth-assistant-0.4.0 | lib/auth_assistant/model/user_config.rb |