Skip to content

Instantly share code, notes, and snippets.

@voldern
Created November 10, 2008 22:22
Show Gist options
  • Save voldern/23663 to your computer and use it in GitHub Desktop.
Save voldern/23663 to your computer and use it in GitHub Desktop.
# This file is specifically setup for use with the merb-auth plugin.
# This file should be used to setup and configure your authentication stack.
# It is not required and may safely be deleted.
#
# To change the parameter names for the password or login field you may set either of these two options
#
# Merb::Plugins.config[:"merb-auth"][:login_param] = :email
# Merb::Plugins.config[:"merb-auth"][:password_param] = :my_password_field_name
begin
# Sets the default class ofr authentication. This is primarily used for
# Plugins and the default strategies
Merb::Authentication.user_class = User
# Mixin the salted user mixin
#require 'merb-auth-more/mixins/salted_user'
#Merb::Authentication.user_class.class_eval{ include Merb::Authentication::Mixins::SaltedUser }
# Setup the session serialization
class Merb::Authentication
def fetch_user(session_user_id)
Merb::Authentication.user_class.get(session_user_id)
end
def store_user(user)
user.nil? ? user : user.id
end
end
rescue
Merb.logger.error <<-TEXT
You need to setup some kind of user class with merb-auth.
Merb::Authentication.user_class = User
If you want to fully customize your authentication you should use merb-core directly.
See merb/merb-auth/setup.rb and strategies.rb to customize your setup
TEXT
end
#
# You should declare you strategies directly and/or use
# Merb::Authentication.activate!(:label_of_strategy)
#
# To load and set the order of strategy processing
# This file is specifically for you to define your strategies
#
# You should declare you strategies directly and/or use
# Merb::Authentication.activate!(:label_of_strategy)
#
# To load and set the order of strategy processing
# This file is specifically for you to define your strategies
#
# You should declare you strategies directly and/or use
# Merb::Authentication.activate!(:label_of_strategy)
#
# To load and set the order of strategy processing
Merb::Slices::config[:"merb-auth-slice-password"][:no_default_strategies] = true
module Merb::Authentication::Strategies
class UserAuthentication < Merb::Authentication::Strategy
def run!
if params[:username] and params[:password]
user = User.auth(params[:username], params[:password])
if !user
request.session.authentication.errors.add('username',
"Brukernavn og/eller password var feil")
end
user
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment