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

Reply via email to