並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 19 件 / 19件

新着順 人気順

cancancanの検索結果1 - 19 件 / 19件

  • Rails|CanCanCanの使い方解説

    この投稿は、弊社が提供するWESEEK TECH通信の一環です。 WESEEK TECH通信とは、WESEEKのエンジニアがキャッチアップした技術に関する情報を、techブログを通じて定期的に発信していくものです。 はじめに 今回の記事では Rails の権限管理 gem である CanCanCan について、導入手順と機能の解説を行います。導入手順を飛ばして機能の解説を読みたい方はこちらを押してください。 CanCanCan とは CanCanCan とは、Ruby on Rails の権限管理 gem であり、特定のユーザーがアクセスできるリソースを制限します。 どういうことかと言うと、例えば admin, manager, read_only という3つの権限があったとして、それぞれは以下のことができるように設定を行うことができます。 admin という権限を持っているユーザーは管理

      Rails|CanCanCanの使い方解説
    • cancancanのテストをRSpecで書く - Qiita

      cancancanを使った際、テストに学びがあったので投稿します。 前提:cancancanとは 権限による制御が簡単にできるgemです。 cancancan Rails|CanCanCanの使い方解説 ↓私も1つ記事を書きました。 cancancanでモデル名に紐づかない制御をする方法 cancancanのテスト requestスペックなどで特定の権限が各アクションを実行できるかどうかをテストする方法もあると思いますが、今回はcancancanが用意しているmatcherを使ってテストする方法を紹介します。 参考 https://github.com/CanCanCommunity/cancancan/blob/develop/docs/testing.md require "cancan/matchers" describe "User" do describe "abilities"

        cancancanのテストをRSpecで書く - Qiita
      • 【Ruby on Rails】CanCanCan の authorize_resource はレコードの権限まではチェックしてくれない - Qiita

        【Ruby on Rails】CanCanCan の authorize_resource はレコードの権限まではチェックしてくれないRubyRailscancancan CanCanCan Rails でいい感じにアクセス権を確認したり、作成・更新できるかを確認したり、そんなことができる gem です。 以下のような記事が参考になると思います。 この gem を導入すると、controller で権限認証が楽にできます。 authorize! まず、本題のauthorize_resourceの前に、元となるauthorize!を見てみます。

          【Ruby on Rails】CanCanCan の authorize_resource はレコードの権限まではチェックしてくれない - Qiita
        • CanCanCanについてよく参考にしている資料や記事まとめ - Qiita

          権限管理のGemであるCanCanCanを使うときに毎回同じようなことを調べているので、その際によく参考にしている資料や記事をまとめておく。 1.公式のドキュメント https://github.com/CanCanCommunity/cancancan/tree/develop/docs 結局ここをじっくり読めばわかることが多い 書かれているデバッグ方法がとても便利 https://github.com/CanCanCommunity/cancancan/blob/develop/docs/debugging.md 2.CanCanCanについて全体的なことが書かれている記事 https://qiita.com/umanoda/items/679419ce30d1996628ed 少し前の記事だけれど、全体的なことを把握できる 3.load_resourceとauthorize_reso

            CanCanCanについてよく参考にしている資料や記事まとめ - Qiita
          • cancancanのコード読む(load_and_authorize_resouce) - Qiita

            プロジェクトでcancancanを使っていますが、たまに挙動がわからないことや、期待通りに動いてくれないことがありました。 そもそも、gemの内部的な動きを知らなかったということもあり、この機会に読んでみました。 今回は、load_and_authorize_resourceの挙動のみ確認する rubymineでdebugモードで起動して、posts#indexにリクエストとばしてひたすらデバッグしていきます。 重要なコード以外はむちゃ省略してます。 https://github.com/CanCanCommunity/cancancan 引数もどんな感じで処理されるのか知りたかったので、下記のように設定しました。 class PostsController < ApplicationController load_and_authorize_resource :account, only

              cancancanのコード読む(load_and_authorize_resouce) - Qiita
            • 【備忘録】Rails6 Devise + cancancan の使い方 - Qiita

              はじめに deviseを使用してUserモデル(認証)を作成後して cancancanを追加して認可をできるようにしました。 その過程を備忘録としてログします。 deviseのgemを追記します。

                【備忘録】Rails6 Devise + cancancan の使い方 - Qiita
              • Rails権限管理ライブラリ cancancan gem バージョンアップ(2.x => 3.x)の際の対応と注意点 - Simple minds think alike

                Ruby on rails の権限管理ライブラリの中で一番ダウンロード数が多いGemであるcancancanのv3.0が2019年4月にリリースされました。 仕事のプロジェクトで使っているcancancanのバージョンは随分前にv3.0に上げていたのですが、結構大きな変更が入っていることを認識できていなかったことに最近気が付き、これからアップグレードをする方や新規にCancancanを導入する方に向けて、どんなところに注意したら良いのかをまとめてみることにしました。 注意点を認識していないと、気がつかない間に N+1(パフォーマンス問題)が発生する SQLクエリ実行時にエラーが発生する といった問題が発生する可能性があります。 Cancancan公式のドキュメントのURLも載せておきます。 GitHub - CanCanCommunity/cancancan: The authorizat

                  Rails権限管理ライブラリ cancancan gem バージョンアップ(2.x => 3.x)の際の対応と注意点 - Simple minds think alike
                • 【Rails/cancancan】authorize!で、複数のリソースのいずれかに対する権限があれば操作を許可したいときの方法 - Qiita

                  【Rails/cancancan】authorize!で、複数のリソースのいずれかに対する権限があれば操作を許可したいときの方法Railscancancan はじめに cancancanのソースコードを読んでいたら知らなかった機能(おそらく公式ドキュメントにもなさそう)を見つけたので記事にします。 試した環境 cancancan 3.5.0 できるようになること (例) BooksControllerの各アクションに対して、BookもしくはUserのどちらかのmanage権限を持っていれば操作ができるようにする 結論 以下のようにany: 配列のHashの形で書いてあげることで、 UserとBookのどちらか一方にmanage権限がある場合に操作を許可できるようになります。

                    【Rails/cancancan】authorize!で、複数のリソースのいずれかに対する権限があれば操作を許可したいときの方法 - Qiita
                  • rails_admin+cancancanで管理者機能実装を5ステップで解説! - Qiita

                    Railsで管理者機能というと、 namespaceで一般ユーザーと管理者をわけて、管理者側の機能を一から自分で実装する方法や、 rails_admin、active_admin、Administrateといった管理機能のgemを使う方法が挙げられると思います。 その中でも今回は、rails_adminというgemを使って管理者機能の実装をしていきます。 管理者機能の実装方法選択において、この記事がわかりやすかったので、まだどの方法で実装するか悩んでる方は参考にしてみてください。 rails管理画面系gem比較してみた 開発環境 ruby 2.6.3 Rails 5.2.6 前提 まず前提として、deviseを使ってユーザー認証機能が実装済みであること。 管理者権限を付与する際にユーザーに管理者の判定をするカラムをつけるか、adminなどの管理者用のテーブルを作るかの2つがありますが、今回

                      rails_admin+cancancanで管理者機能実装を5ステップで解説! - Qiita
                    • CanCanCanの複雑なアクセス制限をJavascriptと共有する - Qiita

                      概要 いわゆるJavascriptを駆使したシングルページアプリケーション(SPA)で、かなり複雑なアクセス制限の要望があり悪戦苦闘し、なんとなく良い感じにまとまったので記事にします。 この記事では以下のような情報がわかります。 モデルの属性(テーブルのカラム)ベースでのアクセス制限の方法。 条件によるアクセス制限の方法。例えば過去のデータは変更できないなど。 cancancanでサーバー側で設定したアクセス制限フロントエンドのcasl/abilityに共有する方法とその制限。 フロントエンド側で複雑なアクセス制限を実装するときの問題点と工夫。 サーバーサイド側で複雑なアクセス制限を実装するときの問題点と工夫。 ざっくりなシステムの仕様ですが、 サーバーサイドはrails6 + cancancan(3.2.1) フロントエンドはreact16 + react-redux + casl/ab

                        CanCanCanの複雑なアクセス制限をJavascriptと共有する - Qiita
                      • 【Rails】cancancanのソースコードを読んでみた(authorize!メソッド) - Qiita

                        ふと思いつきで、普段使っているcancancanのgemのソースコードを読んでみようと思いました。 今回はcontrollerにbefore_actionでauthorize!メソッドが書かれたときの流れを追ってみました。 バージョン cancancan 3.5.0 処理の流れ まず、以下のauthorize!メソッドでcurrent_abilityの設定(Abilityファイルの読み込み)を行います。

                          【Rails】cancancanのソースコードを読んでみた(authorize!メソッド) - Qiita
                        • 【Rails/CanCanCan】authorize_resourceのソースコードを読んでみた - Qiita

                          class BooksController < ApplicationController authorize_resource # この場合、Bookに対する権限をチェックしてくれます。 # ...略 end コードリーディング authorize_resourceメソッドは以下に定義されていました。 @controller.authorize!で以前も記事にしたauthorize!メソッドが使われています。 今回はcontrollerから第二引数のresource_class_with_parentのソースコードを追っていこうと思います。

                            【Rails/CanCanCan】authorize_resourceのソースコードを読んでみた - Qiita
                          • cancancan で API ベースの制御を行う方法 - Qiita

                            概要 Web システムを構築するにあたり、「ユーザーごとに権限管理を行いたい」という要望は比較的多いと思います。 Ruby on Rails では cancancan という Gem を使って権限管理を行うことができますが、この Gem は Model への実行権限(read/write)を管理するのが基本的な使い方になっています。 今回、「API の実行権限を管理したい」という要件があり、その方法を調べたのでまとめました。 cancancan の一般的な使い方(モデルベースの制御) 本題に入る前に、cancancan の一般的な使い方(モデルベースの制御)を簡単に紹介します。 (ほぼ Gem の Readme の日本語訳です) Gem のインストール Gemfile に下記を追加します。

                              cancancan で API ベースの制御を行う方法 - Qiita
                            • RailsでCanCanCanを使った権限管理: スタッフは自分のデータのみ編集可能 - Qiita

                              RailsでCanCanCanを使った権限管理 導入 Railsアプリケーションにおいて、ユーザーによって操作できるデータを制限する場合、CanCanCan は非常に有力なツールです。このガイドでは、Staff モデルが自身のデータのみを編集できるようにする設定方法を紹介します。 前提条件 この設定を行う前に、CanCanCan ジェムがアプリケーションにインストールされていることを確認してください。 そして、bundle install を実行します。 Ability クラスの設定 CanCanCan は Ability クラスを使用して、誰が何をできるかを定義します。Staff が自分自身のプロファイルのみ更新できるように設定しましょう。 # app/models/ability.rb class Ability include CanCan::Ability def initiali

                                RailsでCanCanCanを使った権限管理: スタッフは自分のデータのみ編集可能 - Qiita
                              • Rails - DB/LDAP認証・認可をdevise,rolify,cancancanで実装する - Qiita

                                本記事について 本記事では Rails アプリケーションで DB/LDAP 認証と認可機能を実装する方法を記載します。 認証では ActiveRecord でアクセスできる DB 上のユーザと、LDAP でアクセスできる外部 DB ユーザの両方を探せるようにします。 LDAP 上のユーザは一般ユーザとして扱い、DB 上のユーザは LDAP 接続不可の場合に利用できる緊急用ユーザとして扱い、DB 上の 1 ユーザだけアプリケーションの管理ユーザとして扱うことにします。 認可は一般ユーザ、緊急用ユーザ、管理ユーザの3種類に対して、それぞれリソースに対して行える操作を制限することにします。 認証・認可のために devise, rolify, cancancan を用いることにします。 尚、devise を使って LDAP 認証を有効化する devise_ldap_authenticatable

                                  Rails - DB/LDAP認証・認可をdevise,rolify,cancancanで実装する - Qiita
                                • Cancancanを使っているときのtest - Qiita

                                  Cancancanとは? この記事を見て下さっているということは既にご存知だと思いますが、 権限管理のgem です。 Cancancanを使っているときのテストはどうしたらいいのか? 権限があるときは、権限を持つテストユーザーでログインして test "test#indexにmanager権限を持つユーザーがアクセスして、正常レスポンスが返されること" do # manager権限を持つユーザーでログイン login(:yama_p) get tests_path assert_response :success end 正常に処理ができることを確認すればまぁいいかも知れませんが、 アクセスできない(権限がない)ことを確認する にはどうしたらよいでしょうか? というのも、上記で assert_response :errors などとしてもcancancanで弾かれたときにエラーが返ってくる

                                    Cancancanを使っているときのtest - Qiita
                                  • 【Rails】cancancanでは継承元のclassを指定してまとめて権限設定することが可能 - Qiita

                                    cancancanのgemのソースコードを読んでいたら、発見があったので記事にします。 できること Abilityクラスでの権限設定で、継承元のクラスを指定すると子クラスの権限設定も行われます。 コード例 例えば以下のように書くと、ApplicationRecordを継承しているクラス全体に適用することができます。

                                      【Rails】cancancanでは継承元のclassを指定してまとめて権限設定することが可能 - Qiita
                                    • 【Rails】CanCanCanでリソースが特定の条件を満たすときのみ権限を付与する方法 - Qiita

                                      Railsにおいて権限設定を簡単に実装できる方法は、Cancancanを使うことが1つの手段として考えられます。 https://github.com/CanCanCommunity/cancancan cancancanを使った権限設定では、特定の条件を満たすリソースについては特定のアクションを許可したい、という場合があります。 そんな時に取れる対応方法を紹介します。 想定ケース ユーザーは、企業名(name)にhogeの文字列を含む企業についてはメールを送れる。 こんな権限設定がしたいとします。 準備として、companyモデルで「名前にhogeが入っている」ことを判定するインスタンスメソッドを定義します。

                                        【Rails】CanCanCanでリソースが特定の条件を満たすときのみ権限を付与する方法 - Qiita
                                      • cancancanでモデル名に紐づかない制御をする方法 - Qiita

                                        はじめに 権限制御のgemとして、cancancanがあると思います。 基本的な使い方はいろいろなところで記事になっていますが、「コントローラ名通りのモデルがないとき」の権限制御方法について記載します。 例 コントローラで次のように記載 class ProfilesController authorize_resource class: :profile # ここではコントローラ名と同じprofileにしていますが、コントローラと名前を揃える必要もないです def new ... end def edit ... end end class Ability include CanCan::Ability def initialize(user) if user.admin? # もしユーザーがadminなら全ての権限を付与 can :manage, :profile elsif user.

                                          cancancanでモデル名に紐づかない制御をする方法 - Qiita
                                        1