20190415学習記録

公開日:2019-04-15
最終更新:2019-04-15

今日やること(=やったこと)

  • Rails Tutorial 10.4~10章最後まで
  • 就労移行支援事業所 支援担当N先生と面談
    • AD/HD, PDD, 自閉スペクトラム症対策
    • 生活リズム・習慣の見直し、計画
    • 学習計画・方法の提案と一定期間の実践・実験
  • 同 技術担当O講師と学習計画・ポートフォリオ設計について相談
    • ポートフォリオ作成の計画・期間の再設定
      • の前段階の実装予定機能リストアップ

章・節の目的

10.4 ユーザーを削除する
  • 管理権限を持つ特権ユーザー(admin)の設定
  • ユーザーの削除(destroyアクションの実装)
    • 同時にresources :usersルーティングのRESTに準拠した実装の完成

Tips

  • まず削除を実行できる権限を持つ管理 (admin) ユーザーのクラスを作成する。
    • やり方としてはusersテーブル(Userモデル)に論理値(boolean)を取るadmin属性を追加する
      • ただ、このやり方でWebを介した悪意あるユーザー入力をそのまま渡すとadmin権限を乗っ取られたりする
      • Railsではこれだけで自動的に論理値を返すadmin?メソッドが使用可能になる
$ rails console --sandbox  
>> user = User.first  
>> user.admin?  
=> false  
>> user.toggle!(:admin)  
=> true  
>> user.admin?  
=> true  

--sandboxモード ー コンソール終了時全ての変更がロールバックされる
toggle!メソッド ー true <=> false(ON/OFF)を反転させる

各ユーザーのパラメータに対して制限を設けないと以下のようにリクエストを送るだけで管理者権限を与えられ(奪われ)てしまう
/users/17?admin=1

→Strong Parametersを使い、更新してもよい安全な属性だけの変更を許可

def user_params  
  # admin属性の編集は許可しない  
  params.require(:user).permit(:name, :email, :password,  
 :password_confirmation)  
end  
@itachi-PのRailsを中心とした学習記録&ポートフォリオ作成メモ 学習効率上アウトプットを増やす必要性を感じた為、Qiitaと使い分け毎日気軽に自分用メモをアウトプットする場、計画性を身に付けるセルフコントロールの一環として2019/3/22開始 強烈な自己否定・批判癖が染み付いてるので客観的に問題点を見据えながらバランス取りつつ<楽しく>記述 基本的に文章書くこと自体は好きっぽい

このログについているタグ

Rails

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする