問題タブ [entrust]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - ポリシーの this->authorize() チェックを laravel コントローラーの store() メソッド内で使用する
そのため、アプリケーションのリソースに権限を付与するためのlaravelポリシーの使用について読んでいましたが、チュートリアルに従っても問題があるようです。
'Admin' または 'Broker' のEntrustロールを持つ他のユーザー以外は HTTP リクエスト経由で作成できないユーザー モデルがあります。私が理解し、ユーザーのインデックス作成などの他のアクションで機能させることに成功したのは次のとおりです。
AuthServiceProvider.php
プライベート配列の内部に、$policies
その User クラスをそのUserPolicy
ようなクラスで登録しました
UserPolicy コントローラー クラスを定義します。
次に、UserController
クラス内で、重要なアクションを実行する前に、this->authorize()
チェックを使用して、ユーザーの権限に応じて停止または続行します
問題は、$this->authorize()
例外を返す store アクションでプロセスが常に停止することです: このアクションは許可されていません。
authorize() の引数について複数のバリエーションを試しましたが、 index アクションのように機能させることができません
laravel - Laravel Auth::attempt() は関係を処理できますか?
私は、Laravel 5.3 で役割ベースのアクセス許可を管理するためにentrustを使用しており、当然のことながら、さまざまなユーザー タイプに対して手動/カスタム ログインを使用しています。Auth::attempt()
外部テーブルの関係を処理することは可能ですか? 基本的に、私はこのようなことをしたい:
hasRole()
しかし、未定義の関数であるというエラーが発生し続けます。use Zizaco\Entrust\Traits\EntrustUserTrait;
とを含めましuse EntrustUserTrait;
た。これにより、関数へのアクセスが提供されると思いましたが、明らかにそうではありません。
これがユーザー オブジェクトのメソッドであることに感謝しhasRole()
ます。チェックの時点ではユーザー オブジェクトはありませんが、ユーザーが既にログインしているため、試行が成功した後にロール チェックを実行できません。役割が間違っていた場合、資格情報は正しいのでログアウトする必要がありますが、役割ではありません。これは遅く、実用的ではないようです。
これをどのように処理すればよいですか?Auth::attempt
ユーザーにログインせずに、指定された入力でユーザーが存在することを確認し、ロールチェックを実行してから、別の機能を使用して認証セッションを開始する代替手段はありますか?
役立つ場合、私の LoginController は次のとおりです。
どんな助けや指示も大歓迎です。ありがとう。
php - phpunit ErrorException: オブジェクト以外のプロパティを取得しようとしています (Laravel/Entrust プロジェクト)
Laravel ベースのプロジェクトで phpunit を実行すると、次のエラーが表示されます: ErrorException: Trying to get property of non-object
ただし、phpunit でのみ、ページは正常にレンダリングされます。
これは、エラーの原因であるブレード テンプレートのコード行です。
これを次の (醜い) コードに置き換えると、phpunit テストは正常に実行されます。
ロールはコントローラーに熱心にロードされます。
なぜphpunitがこのエラーをスローするのか(そしてlaravelはスローしないのか)、これをより良い方法で解決する方法はありますか?
phpunit からのスタックトレース: https://paste.ee/p/dyMVs#
php - entrust delete() エラー クラス名は有効なオブジェクトまたは文字列でなければなりません
以下のコードを使用して、ロール テーブルから 1 つのレコードを削除します。
しかし、エラーが発生し、メッセージは次のとおりです。
クラス名は有効なオブジェクトまたは文字列でなければなりません
私はそれをグーグルで検索しました!、いくつかの答えについては、config/entrust.php ファイルが存在すると言わなければなりませんでした。
redirect - Entrustを使用したLaravel 5.3-認証ページを除いて常にホームページにリダイレクトします
この問題を解決しようとしているのは約13時間ですが、うまくいきません。Entrustを使用して Laravel 5.3 をセットアップしました。正常に動作していました。ユーザーがアクセスしようとしているページへのアクセス許可を持っているかどうかを確認するために、コントローラーに条件を設定しました。そうでない場合は、ホームページにリダイレクトします。それも正常に機能していましたが、リフレッシュしてブラウジングした後、奇妙な誤動作が発生しました-すべてがホームページに移動します(例:http://mysite.dev/)。認証ページのみが問題ありません (ログイン/登録など)。
確認のために、そのコントローラーから認証チェックを削除しましたが、うまくいきません。次に、ミドルウェア「auth」を削除しましたが、リダイレクトは同じです。とても奇妙です:(いくつかのコードを以下に示します-
ルート/web.php
app/Http/Controllers/Controller.php
app/Http/Controllers/HomeController.php
これは私の最初のプロジェクトなので、学習と実行を行っていますが、ここで立ち往生しています...
php - Laravel 5.3 Entrust - クラス名は有効なオブジェクトまたは文字列でなければなりません
私は現在delete
、自分の役割のための機能に取り組んでいます。
削除しようとするたびに:
これを修正するにはどうすればよいですか?
php - シード中にLaravel entrust 5.2.xクラスの権限が見つかりません
タイトルのとおり、laravel 5.2 で ACL モーダルを作成するためのチュートリアルに従いました。
さて、この問題について私を助けてくれる人がいることを願っています。
これはバグです: