Advertisement
Guest User

Untitled

a guest
Jul 31st, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.50 KB | None | 0 0
  1. ##user_controller.rb
  2. class UserController < ApplicationController
  3. before_filter :authorize, :except => :login
  4.  
  5. layout "frontend"
  6. def login
  7. if session[:user_id].nil?
  8. if request.get?
  9. @user = User.new
  10. else
  11. @user = User.new(params[:user])
  12. @authenticate = User.authentication(@user.name,@user.password) # => Add Remember Me?
  13. unless @authenticate == "Logged In"
  14. flash[:notice] = @authenticate
  15. end
  16. end
  17. else
  18. render :action => "action"
  19. end
  20. end
  21.  
  22. end
  23.  
  24. ##user.rb
  25. require "digest/sha1"
  26. class User < ActiveRecord::Base
  27. # User Levels [:level]
  28. # => 0 = Not loggedin
  29. # => 1 = Normal USer
  30. # => 90 = Admin
  31. # => 99 = Super Admin
  32.  
  33. attr_accessor :password
  34. attr_accessible :name, :password, :level, :message => 'is needed'
  35. validates_uniqueness_of :name
  36. validates_presence_of :name, :password
  37. validates_length_of :password, :in => 6..15
  38.  
  39. # => Before save or update
  40. def before_save
  41. self.password = self.hash_password(self.password || "")
  42. end
  43.  
  44. # => After save or update
  45. def after_save
  46. @password = nil
  47. end
  48.  
  49. def self.authentication(username,password)
  50. if (username.empty? || password.empty?)
  51. return "Please input username <strong>and</strong> password"
  52. end
  53. unless self.check_is_user?(username)
  54. return "Can't find this username?"
  55. end
  56.  
  57. @userinfo = self.password_belongs_to_user?(username,password)
  58. unless @userinfo
  59. return "That username and password do not match"
  60. end
  61.  
  62. return "Logged In"
  63. end
  64.  
  65. # => If the user is found, return TRUE, else FALSE
  66. def self.check_is_user?(username)
  67. return !User.find_by_name(username).nil?
  68. end
  69.  
  70. def self.password_belongs_to_user?(username, password)
  71. return self.find( :first,
  72. :conditions => ["name = ? and password = ?",
  73. username, hash_password(password)])
  74. end
  75.  
  76. def self.hash_password(password)
  77. return Digest::SHA1.hexdigest(password) # => SHA1 the password
  78. end
  79. end
  80.  
  81. ##Error
  82. undefined local variable or method `session' for User:Class
  83. RAILS_ROOT: /Users/zachinglis/Sites/rails/heroestheories/public/../config/..
  84.  
  85. Application Trace | Framework Trace | Full Trace
  86. /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/base.rb:1129:in `method_missing'
  87. #{RAILS_ROOT}/app/models/user.rb:35:in `authentication'
  88. #{RAILS_ROOT}/app/controllers/user_controller.rb:11:in `login'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement