はじめに
Railsの認証系をなにか触ってみたく、sorceryというものをいじってます。
https://github.com/Sorcery/sorcery
前回の投稿 のものをベースに機能を追加したいと思います。
今日は、Activity logging というsubmoduleを使ってActivityのロギングができるようにします。
Activity loggingを試す
名前からして気になりました。(Brute Force Protectionも気になってますが今日はこれ)
https://github.com/Sorcery/sorcery/wiki/Activity-logging
% rails g sorcery:install activity_logging --only-submodules
Running via Spring preloader in process 23570
Expected string default value for '--jbuilder'; got true (boolean)
gsub config/initializers/sorcery.rb
insert app/models/user.rb
create db/migrate/20170112143345_sorcery_activity_logging.rb
fukumura@ubuntu-xenial(14:33:45) ~/projects/sorcery-sample
↑中身がサンプル結果と違うけど突き進んでみます。
% rake db:migrate
== 20170112143345 SorceryActivityLogging: migrating ===========================
-- add_column(:users, :last_login_at, :datetime, {:default=>nil})
-> 0.0381s
-- add_column(:users, :last_logout_at, :datetime, {:default=>nil})
-> 0.0155s
-- add_column(:users, :last_activity_at, :datetime, {:default=>nil})
-> 0.0082s
-- add_column(:users, :last_login_from_ip_address, :string, {:default=>nil})
-> 0.0362s
-- add_index(:users, [:last_logout_at, :last_activity_at])
-> 0.0057s
== 20170112143345 SorceryActivityLogging: migrated (0.1071s) ==================
で、実行しようとしたらError。
Showing /home/fukumura/projects/sorcery-sample/app/views/layouts/application.html.erb where line #25 raised:
undefined local variable or method `current_users' for #<UsersController:0x007f9ea4107800>
Did you mean? current_user
current_user=
@current_user
調べてみたら、current_usersは、sorcery0.10でremoveされたそうな。たしかに使いみちなさそうだ。
これでおしまい。
ログイン・ログアウトしてみると(pumaを再起動してから)値が入るようになりました。
ソースコードはこの辺。
https://github.com/Sorcery/sorcery/blob/master/lib/sorcery/model/submodules/activity_logging.rb
今日の差分。
https://github.com/fukumura/sorcery-sample/commit/057f1cdbca4ea2d955bfe2b01eff52506c808915
次回は、Brute Force Protection。