Sha256: 2cd4cc84cf7a8141f83bfa8622daac14b9a24da916bf280cce946ffefb49abf2

Contents?: true

Size: 1.15 KB

Versions: 7

Compression:

Stored size: 1.15 KB

Contents

module Ramaze
  module Helper
    # Provides authentication services
    module Auth
      # Is the current user an admin?
      def admin?
        u = session[:user] and u.admin?
      end

      # Tries to log in a user by login and password. If successful, sets
      # session[:user] to the user and returns that user. Otherwise returns
      # false.
      def do_login(login, password)
        if user = CortexReaver::User.authenticate(login, password)
          # Successful login
          session[:user] = user
        else
          false
        end
      end

      # Log out the current user, and returns the user object.
      def do_logout
        session.delete :user
      end

      def require_admin
        if session[:user] and session[:user].admin?
          true
        elsif session[:user]
          flash[:error] = "You must have administrative privileges to do this."
          redirect :/
        else
          flash[:notice] = "Please log in first."
          session[:target_uri] = request.request_uri
          redirect R('/users', :login)
        end
      end

      def error_403
        respond 'Forbidden', 403
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
cortex-reaver-0.0.1 lib/cortex_reaver/helper/auth.rb
cortex-reaver-0.0.4 lib/cortex_reaver/helper/auth.rb
cortex-reaver-0.0.2 lib/cortex_reaver/helper/auth.rb
cortex-reaver-0.0.3 lib/cortex_reaver/helper/auth.rb
cortex-reaver-0.0.5 lib/cortex_reaver/helper/auth.rb
cortex-reaver-0.0.6 lib/cortex_reaver/helper/auth.rb
cortex-reaver-0.0.7 lib/cortex_reaver/helper/auth.rb