2014-04-11 64 views
1
def user_params 
    if current_user.admin? 
    params.require(:user).permit(:name, :email, :password, :student, :admin) 
    else 
    params.require(:user).permit(:name, :email, :password) 
    end       
end 

我想管理員能夠更新用戶的角色。這是一個很好的實現user_params強參數嗎?

Users_params是爲了防止黑客修改用戶的角色,強大的參數。

下面的代碼不安全,對嗎?我在GitHub上看到了這個代碼。

def user_params 
    params.require(:user).permit(:name, :email, :password, :student, :admin)       
end 
+0

之前更新用戶 「params.permit!」這樣它可以讓你更新.. –

+0

你上面提到的第一個解決方案是正確的。你應該只允許你允許改變的屬性。 –

回答

0
def user_params 
    if current_user.admin? 
    params.require(:user).permit! 
    else 
    params.require(:user).permit(:name, :email, :password) 
    end       
end 
+1

誰說管理員應該能夠更改所有用戶參數? –

相關問題