I am developing a small site. The login system works fine and I am using the sha1 hashing alg to hash passwords. I have an admin side that can enable or disable users. The problem seems to lie in the disable (destroy) method. When I disable a user, it updates the password to a new password so when the user is re-enabled, I get an "invalid username/password" error and I have to reset the password. I cant see why it is doing this. My destroy method is : def destroy @user = User.find(params[:id]) if @user.update_attribute(:enabled, false) flash[:notice] = "User disabled" else flash[:error] = "There was a problem disabling this user." end redirect_to :action => 'show' end Anyone any ideas?
on 2009-04-26 19:10
on 2009-04-26 20:04
I ended up kinda working it out. I now just reset the password and email the link to the user. Not 100% ideal but it works!
on 2009-04-26 20:35
Are you saying that after the update_attribute the password field is also changed? If so do you have some sort of filter that might be running and changing it? Possibly you could put debugger traps at each point you change the password and check it is not getting there. Also have a look in the log to see what sql is being executed and if there are any unexpected write queries. Colin 2009/4/26 Stephen F. <email@example.com>