Guest User

Untitled

a guest
Mar 15th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.26 KB | None | 0 0
  1. class BabySittersController < ApplicationController
  2.  
  3. def index
  4. @baby_sitters = BabySitter.find(:all)
  5.  
  6. respond_to do |format|
  7. format.html # index.html.erb
  8. format.xml { render :xml => @baby_sitters }
  9. end
  10. end
  11.  
  12. def show
  13. @baby_sitter = BabySitter.find(params[:id])
  14. respond_to do |format|
  15. format.html # index.html.erb
  16. format.xml { render :xml => @baby_sitter }
  17. end
  18. end
  19.  
  20. # GET /baby_sitters/new
  21. # GET /baby_sitters/new.xml
  22. def new
  23. @baby_sitter = BabySitter.new
  24. @place = Place.new
  25. @service = Service.new
  26.  
  27. respond_to do |format|
  28. format.html # new.html.erb
  29. format.xml { render :xml => @baby_sitter }
  30. end
  31. end
  32.  
  33. # GET /baby_sitters/1/edit
  34. def edit
  35. @baby_sitter = BabySitter.find(params[:id])
  36. end
  37.  
  38. # POST /baby_sitters
  39. # POST /baby_sitters.xml
  40. def create
  41. @baby_sitter = BabySitter.new(params[:baby_sitter])
  42. @baby_sitter.user = current_user
  43. @place = @baby_sitter.build_place(params[:place])
  44. @service = @baby_sitter.build_service(params[:service])
  45.  
  46. respond_to do |format|
  47. if @baby_sitter.save
  48. flash[:notice] = 'BabySitter was successfully created.'
  49. format.html { redirect_to(@baby_sitter) }
  50. format.xml { render :xml => @baby_sitter, :status => :created, :location => @baby_sitter }
  51. else
  52. format.html { render :action => "new" }
  53. format.xml { render :xml => @baby_sitter.errors, :status => :unprocessable_entity }
  54. end
  55. end
  56. end
  57.  
  58. # PUT /baby_sitters/1
  59. # PUT /baby_sitters/1.xml
  60. def update
  61. @baby_sitter = BabySitter.find(params[:id])
  62.  
  63. respond_to do |format|
  64. if @baby_sitter.update_attributes(params[:baby_sitter])
  65. flash[:notice] = 'BabySitter was successfully updated.'
  66. format.html { redirect_to(@baby_sitter) }
  67. format.xml { head :ok }
  68. else
  69. format.html { render :action => "edit" }
  70. format.xml { render :xml => @baby_sitter.errors, :status => :unprocessable_entity }
  71. end
  72. end
  73. end
  74.  
  75. # DELETE /baby_sitters/1
  76. # DELETE /baby_sitters/1.xml
  77. def destroy
  78. @baby_sitter = BabySitter.find(params[:id])
  79. @baby_sitter.destroy
  80.  
  81. respond_to do |format|
  82. format.html { redirect_to(baby_sitters_url) }
  83. format.xml { head :ok }
  84. end
  85. end
  86. end
  87.  
  88. # --
  89. class Aggregate < ActiveRecord::Base
  90. belongs_to :user
  91. has_one :place, :dependent => :destroy
  92. has_one :service, :dependent => :destroy
  93.  
  94. def find_related(field)
  95. field.find_all
  96. end
  97. end
  98.  
  99.  
  100. #--
  101. class BabySitter < Aggregate
  102. end
  103.  
  104. #--
  105. require 'digest/sha1'
  106. class User < ActiveRecord::Base
  107. has_many :aggregates, :dependent => :destroy
  108. # Virtual attribute for the unencrypted password
  109. attr_accessor :password
  110.  
  111. validates_presence_of :login, :email
  112. validates_presence_of :password, :if => :password_required?
  113. validates_presence_of :password_confirmation, :if => :password_required?
  114. validates_length_of :password, :within => 4..40, :if => :password_required?
  115. validates_confirmation_of :password, :if => :password_required?
  116. validates_length_of :login, :within => 3..40
  117. validates_length_of :email, :within => 3..100
  118. validates_uniqueness_of :login, :email, :case_sensitive => false
  119. before_save :encrypt_password
  120.  
  121. # prevents a user from submitting a crafted form that bypasses activation
  122. # anything else you want your user to change should be added here.
  123. attr_accessible :login, :email, :password, :password_confirmation
  124.  
  125. # Authenticates a user by their login name and unencrypted password. Returns the user or nil.
  126. def self.authenticate(login, password)
  127. u = find_by_login(login) # need to get the salt
  128. u && u.authenticated?(password) ? u : nil
  129. end
  130.  
  131. # Encrypts some data with the salt.
  132. def self.encrypt(password, salt)
  133. Digest::SHA1.hexdigest("--#{salt}--#{password}--")
  134. end
  135.  
  136. # Encrypts the password with the user salt
  137. def encrypt(password)
  138. self.class.encrypt(password, salt)
  139. end
  140.  
  141. def authenticated?(password)
  142. crypted_password == encrypt(password)
  143. end
  144.  
  145. def remember_token?
  146. remember_token_expires_at && Time.now.utc < remember_token_expires_at
  147. end
  148.  
  149. # These create and unset the fields required for remembering users between browser closes
  150. def remember_me
  151. remember_me_for 2.weeks
  152. end
  153.  
  154. def remember_me_for(time)
  155. remember_me_until time.from_now.utc
  156. end
  157.  
  158. def remember_me_until(time)
  159. self.remember_token_expires_at = time
  160. self.remember_token = encrypt("#{email}--#{remember_token_expires_at}")
  161. save(false)
  162. end
  163.  
  164. def forget_me
  165. self.remember_token_expires_at = nil
  166. self.remember_token = nil
  167. save(false)
  168. end
  169.  
  170. # Returns true if the user has just been activated.
  171. def recently_activated?
  172. @activated
  173. end
  174.  
  175. protected
  176. # before filter
  177. def encrypt_password
  178. return if password.blank?
  179. self.salt = Digest::SHA1.hexdigest("--#{Time.now.to_s}--#{login}--") if new_record?
  180. self.crypted_password = encrypt(password)
  181. end
  182.  
  183. def password_required?
  184. crypted_password.blank? || !password.blank?
  185. end
  186.  
  187.  
  188. end
Add Comment
Please, Sign In to add comment