2008年12月8日月曜日

こんな感じじゃ良くなかったwww


いやいや、passwords_controller.rbの中で、



before_filter :not_logged_in_required, :only => [:new, :create]



ってしているけど、"not_logged_in_required"ってメソッド、どこかにあるのか? と思ってたら、lib/authenticated_system.rbに書くんだなwww


で、restful_authentication_tutorialの方を見てみたら、メソッドの名前を変えて、新たに作ってあったから、それ使った。


lib/authenticated_system.rb



# Prevents logged in users from accessing actions reserved for


# non-authenticated users such as the login or signup forms


# Make sure to redirect to a path they can access to avoid an infinite loop


def login_prohibited


!logged_in? || (redirect_to root_path)


end



んで、passwords_controller.rbとaccounts_controller.rbを変更した。



/app/controllers/passwords_controller.rb



- before_filter :not_logged_in_required, :only => [:new, :create]



+ before_filter :login_prohibited, :only => [:new, :create]


/app/controllers/accounts_controller.rb


- before_filter :not_logged_in_required, :only => :show


+ before_filter :login_prohibited, :only => :show






んじゃあ、sessions_controllerとusers_controllerも書き換えれるよね。


logged_in?で見ていたところも、login_prohibitedをbefore_filterしちゃえばいいんだもんな。


と思って、やってみたら、sessions_controllerは、ダメだwww


だって、root_pathを、sessions/newにしてるんだもんwww


app/controllers/sessions_controller.rb




- skip_before_filter :login_required


+ skip_before_filter :login_required, :only => [:new, :create]




後々、root_pathを変えることになったなら、その時は考えましょう;-p


app/controllers/users_controller.rb



skip_before_filter :login_required, :only => [:new, :create, :activate, :suspend, :unsuspend, :destoy, :purge]

+ before_filter :login_prohibited, :only => [:new, :create, :activate, :suspend, :unsuspend, :destoy, :purge]



おk。


あと、usersのview、全然作ってないじゃんwwww


とりあえず、内容はあまり考えずに、プレース・ホルダとして、ベタバリしましょうかwww


app/views/users/edit.html.erb




<h2>Edit Your Account</h2>


<p><%= link_to 'Show Profile', user_path(@user) %> | <%= link_to 'Change Password', change_password_path %></p>


<%= error_messages_for :user %>


<% form_for :user, :url => user_url(@user), :html => { :method => :put } do |f| %>


<p>Email:<br /><%= f.text_field :email, :size => 60 %></p>


<%= submit_tag 'Save' %>


<% end %>



って、これじゃあ、メールアドレスしか変更出来ねぇwww


ん、あとで考える。


index.html.erbと_user.html.erbは、また今度。


role絡みのロジック入れないと、エラー返ってくるし。


new.html.erbとshow.html.erbは、前に書いたヤツのほうが、イイ感じ;-p


あと、userモデルにpassword_reset_codeのカラム、追加するの忘れてたwww



$ script/generate migration AddColumnPassWordResetCodeToUser password_reset_code:string



で、




class AddColumnPassWordResetCodeToUser <>

def self.up


add_column :users, :password_reset_code, :string, :limit => 40


end


def self.down


remove_column :users, :password_reset_code


end


end





んな感じで。





0 件のコメント: