いやいや、passwords_controller.rbの中で、
before_filter :not_logged_in_required, :only => [:new, :create]
ってしているけど、"not_logged_in_required"ってメソッド、どこかにあるのか? と思ってたら、lib/authenticated_system.rbに書くんだなwww
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 件のコメント:
コメントを投稿