Link! :) Jordan
On 10/11/2006, "Tom Werner" <[EMAIL PROTECTED]> wrote: >Rick Olsen (technoweenie) has some plugins that already do this stuff. > >Tom > >[EMAIL PROTECTED] wrote: >> Should I just write a plugin for this? >> >> On 10/11/2006, "[EMAIL PROTECTED]" >> <[EMAIL PROTECTED]> wrote: >> >> >>> Sorry about my incomplete post, I was in a serious hurry, off to a >>> company luncheon. So, here is the strategy I was hoping to convey. >>> >>> First, I wouldn't put it in the User model personally, simply because it >>> doesn't really have anything to do with a User in the conventional OO >>> paradigm. It would be useful to have an method is_verified? that checks >>> a :verified attribute though. With that said, here's an updated >>> description of UserVerification (i prefer it to UserVerification for >>> disambiguation with common rails terms): >>> >>> >>> >>> >>> 1. user_verification migration: >>> .. >>> t.column :user_id, :integer # user id instead of username, id will not >>> change >>> t.column :hash, :string # SHA1 hash >>> t.column :salts, :text # serialized Array >>> t.column :created_at, :datetime >>> .. >>> >>> >>> >>> >>> 2. UserVerification model: >>> .. >>> before_save :generate_hash >>> after_save :send_verification_email >>> after_destroy :make_user_valid >>> .. >>> belongs_to :user >>> serialize :salts, Array >>> .. >>> def user_valid?(hash_from_email) >>> (self.hash == hash_from_email) >>> end >>> .. >>> protected >>> def generate_hash >>> self.hash = Digest::SHA1.hexdigest(self.salts.join) >>> end >>> .. >>> def send_verification_email >>> ... #send email to user with link: >>> domain.com/validate?hash=892he98hd...&[EMAIL PROTECTED] >>> end >>> .. >>> def make_user_valid >>> ... >>> self.user.verified = true >>> self.user.save >>> ... >>> end >>> >>> >>> 3. Then, when the user clicks the link in the email, you'll have a >>> verification method that says: >>> .. >>> verify = UserVerification.find_by_hash(params[:hash]) >>> if User.find_by_email(:params[:email]) == verify.user >>> verify.destroy # user becomes valid >>> end >>> .. >>> >>> >>> Hope this helps/makes sense!! >>> >>> -Jordan >>> >>> >>> On 10/11/2006, "Patrick Crowley" <[EMAIL PROTECTED]> wrote: >>> >>> >>>> I'd prefer to keep this stuff in the User model, but I like the >>>> serialization trick, Jordan. >>>> >>>> Best, >>>> Patrick >>>> >>>> >>>> On Oct 11, 2006, at 12:22 PM, Nick Zadrozny wrote: >>>> >>>> >>>>> On 10/11/06, Nick Zadrozny <[EMAIL PROTECTED]> wrote: >>>>> >>>>>> For that second step, wouldn't you have to know or hardcode the >>>>>> position of the username? >>>>>> >>>>> Wait, I'm an idiot. You have the username in the UserValidation >>>>> migration. And I'm increasingly not sure that those columns have to be >>>>> in a separate model from your User object in the first place. I think >>>>> I figured out my own questions :-) >>>>> >>>>> -- >>>>> Nick Zadrozny >>>>> _______________________________________________ >>>>> Sdruby mailing list >>>>> [email protected] >>>>> http://lists.sdruby.com/mailman/listinfo/sdruby >>>>> >>>> _______________________________________________ >>>> Sdruby mailing list >>>> [email protected] >>>> http://lists.sdruby.com/mailman/listinfo/sdruby >>>> >>> _______________________________________________ >>> Sdruby mailing list >>> [email protected] >>> http://lists.sdruby.com/mailman/listinfo/sdruby >>> >> _______________________________________________ >> Sdruby mailing list >> [email protected] >> http://lists.sdruby.com/mailman/listinfo/sdruby >> >> > >_______________________________________________ >Sdruby mailing list >[email protected] >http://lists.sdruby.com/mailman/listinfo/sdruby _______________________________________________ Sdruby mailing list [email protected] http://lists.sdruby.com/mailman/listinfo/sdruby
