나는 authentication
에 대한 devise
를 사용하고 그리고 난 각 사용자에 대한 role
을하고 난 admin
역할을 가진 사용자가 새로운 사용자를 생성 할 수 있도록하고 그들이 자신의 암호를 잊어 버린 경우 나 사용자의 나머지 edit the password
에 admin 사용자를 원한다. 하지만 편집 할 때 현재 비밀번호가 없으면 비밀번호를 변경할 수 없습니다. 그렇다면 어떻게해야 admin 사용자가 사용자 비밀번호를 편집하여 비밀번호를 변경하고 나머지 값들과 마찬가지로 비밀번호를 저장할 수 있습니다.현재 암호없이 암호를 변경하는 방법은 무엇입니까?
답변
update_without_password
라고하는 방법이 있습니다.
def update
# required for settings form to submit when password is left blank
if params[:user][:password].blank?
params[:user].delete("password")
params[:user].delete("password_confirmation")
end
@user = User.find(current_user.id)
if @user.update_attributes(params[:user])
set_flash_message :notice, :updated
# Sign in the user bypassing validation in case his password changed
sign_in @user, :bypass => true
redirect_to after_update_path_for(@user)
else
render "edit"
end
end
이를이 같은 update
을 가지고 여전히 암호를 업데이트 current_password
이 필요
# PUT /manage_users/1
# PUT /manage_users/1.json
def update
@user = User.find(params[:id])
able_to_edit_profile?
# required for settings form to submit when password is left blank
if params[:user][:password].blank?
params[:user].delete("password")
params[:user].delete("password_confirmation")
end
respond_to do |format|
if @user.update_attributes(params[:user])
@user.save
# sign the user in with their new password so it doesn't redirect to the login screen
sign_in @user, :bypass => true
format.html {
flash[:notice] = 'User was successfully updated.'
redirect_to session.delete(:return_to)
}
format.json { head :no_content }
else
format.html { render action: "edit", notice: 'Error updating user.' }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
private
# If the user is not an admin and trying to edit someone else's profile, redirect them
def able_to_edit_profile?
if !current_user.try(:admin?) && current_user.id != @user.id
flash[:alert] = "That area is for administrators only."
redirect_to :root
end
end
실제로이 update_without_password는 암호없이 다른 값을 변경하려고하지만 암호를 업데이트 할 수없는 경우에 사용할 수 있습니다. – logesh
나는 'if params [: user] [: password] .blank를 사용 했습니까? (user)] params [: user] .delete ("password") params [: user] .delete ("password_confirmation") end '그러나 @ user.update_attributes (params [: user])와 함께 작동합니다. – logesh
아, 잘 알고 있습니다. 사실 어젯밤에 문제가 발생하여이 코드가 사용자 비밀번호를 변경하지 못하는 것으로 나타났습니다. 내 문제를 해결하기 위해 귀하의 솔루션을 사용합니다. 다행스럽게도 우리는 두 문제를 함께 해결할 수있었습니다. – Catfish
update_without_password
때문에, 당신은해야합니다 : 여기
맞습니다. 대답은 –
- 1. 어떻게 원래 암호없이 키 저장소 암호를 변경합니까?
- 2. 우분투의 로그인 암호를 콘솔에서 변경하는 방법은 무엇입니까?
- 3. 루트 암호를 빈 암호로 변경하는 방법은 무엇입니까?
- 4. 명령 줄에서 FTP 암호를 변경하는 방법은 무엇입니까?
- 5. 사용자 이름과 암호없이 프록시에 액세스하는 방법은 무엇입니까?
- 6. 서블릿을 사용하여 시스템 암호를 가져오고 변경하는 방법은 무엇입니까?
- 7. 데이터베이스에 암호없이 데이터베이스에 연결하십시오.
- 8. github에서 암호를 다루는 가장 좋은 방법은 무엇입니까?
- 9. chdir을 사용하여 현재 디렉토리로 변경하는 방법은 무엇입니까?
- 10. 현재 문서의 도메인을 변경하는 방법은 무엇입니까?
- 11. 현재 페이지에서 요소의 가시성을 변경하는 방법은 무엇입니까?
- 12. 프로그래밍 방식으로 현재 창을 변경하는 방법은 무엇입니까?
- 13. 암호없이 Paramiko ssh 연결
- 14. 서블릿 응용 프로그램에서 사용자의 Tomcat 암호를 변경하는 방법은 무엇입니까?
- 15. 암호를 변경하는 로거
- 16. DC 암호를 변경하는 방법
- 17. 기본 암호를 변경하는 방법
- 18. Cakephp는 암호를 변경하는 동안 암호를 해시합니다.
- 19. . 암호없이 .p12 내보내기.
- 20. .NET 응용 프로그램에서 AS/400 사용자 암호를 변경하는 방법은 무엇입니까?
- 21. 파일 암호를 해독하는 대신 암호화 할 코드를 변경하는 방법은 무엇입니까?
- 22. FtpWebRequest를 사용하여 FTP 호스트 사용자/암호를 변경하는 방법은 무엇입니까?
- 23. PHP의 OpenSSL 모듈을 사용하여 개인 키의 암호를 변경하는 방법은 무엇입니까?
- 24. PHP를 사용하여 데이터베이스에서 SALT 암호를 변경하는 방법은 무엇입니까?
- 25. BouncyCastle을 사용하여 암호없이 OpenPGP KeyPair를 생성하는 방법은 무엇입니까?
- 26. 암호없이 MySQL을 실행하십시오.
- 27. 암호없이 스크립트에서 mysqldump 호출
- 28. 암호를 암호화하는 방법은 무엇입니까?
- 29. 초기 로그인시 ADS 암호를 변경하는 방법
- 30. devise gem에서 현재 암호가 비어 있으면 암호를 업데이트하는 방법은 무엇입니까?
다른 사용자의 암호를 변경하려고하면 어떻게됩니까? 나는 jsut 그냥 아래에 게시 된 코드를 사용하여 잘 했어. – Catfish