次に、ログイン時にログインしてみましょう。ポテトヘッドパスワードを入力してみると、これを試して編集します。これを試してみることができます。
感嘆符を取り除きましょう。
提出し、私の笑顔の最後に句読点はないと更新します。
これで更新するだけです。
誰かが何かを更新できるようにするのではなく、単にフォームを見ることだけでなく、実際に更新を行い、それらの両方を保護して削除することです。
今すぐ誰でもそれを行うことができますが、私はサーバーを再起動するとすぐに私は爽快にしようとします。
現在のところ、削除をクリックすると現在ログインしていません。ログインするとすぐにここに戻ってきて、赤い開始リダイレクトのために起こっていることを思い出してください。
それで、再び台頭します。
パスワードログイン
今私が試してみると、これを削除するだけでうまく動作します。
そして今、彼はもう一つの貴重なキャンプ場を失ってしまっています。
それは私たちが正しく設定した真っ只中ですので、ユーザーがログインしているかどうかを確認するキャンプグランドの所有権をチェックしました。もしそうでなければリダイレクトして、最終的には別のエラーメッセージが表示されます。まずログインしてからログインしてください。
しかし、彼らはキャンプ場を所有していないし、あなたはそれを行う許可を持っていないという別のメッセージを持っているだろう、そういうものを削除するのはあなたのものではなく、次に重要な行がここにある。
だからキャンプグラウンドの作者IDのドットがトリポリの文化をすることができないならば、私たちはDoddieコースをやる必要があるので、これは文字列であり、これはオブジェクトの考えであるmongooseオブジェクトなので、文字列に匹敵せず、猿に付属するequalsメソッドで構築されています。
次に、正しいハンドラの内部にあるコードがあれば、次のコードに移動します。
それがうまくいくなら、私たちはこれを実行します。
我々はこれを実行する。
それは次のものです。
あるいは、この場合、私たちはこれを実行します。
それは次のものです。
更新の場合、これを実行します。
OK、保存します
私たちにはいいことが一つあります。
これらのボタンを隠すことになります。
私がログインしていない場合、私は編集削除ボタンを見ることができないはずです。
このような種類の許可を得ているウェブサイトはほとんどありません。
あなたが何かをすることができると思っても、できないと思うのであれば、それはちょっとしたユーザーエクスペリエンスです。
だから私たちはそれを隠したいので、私たちがする必要があるのは私たちのテンプレートに行くということです。それがショーテンプレートです。ここでは、ここに2つのボタンを見つける必要があります。
次に、if文を追加して、空の文を記述して、大括弧のように始めることにします。
ちょうどそのようにして読みやすくするためにインデントします。ログインしたユーザーがショーページの現在のキャンプ場を所有しているかどうかを確認するだけです。これは簡単です。
私たちがミドルウェアで見たのとまったく同じコードをちょうど追加することができます。但し、それはわずかに異なる必要がありますが同じアイデアです。
これを貼り付けるとテンプレートにキャンプ場が見つかるのではなく、それに従うことができます。
そのキャンプグラウンドの作成者はドットIDのドットが等しいと呼びます。実際にはそのユーザーIDを要求するアクセス権はありませんが、私たちが設定した現在のユーザーがいることを忘れないでください。
私たちがいつ、どこでそれを設定したかを覚えていないなら、私は簡単にあなたを紹介します。
私たちのアパートの中にあります。
はい、私達はそれに行き、あなたはここで一見を取る。
地元のものを読んでください。
現在のユーザーはユーザーの要求であり、すべての単一のテンプレートに追加されます。
すべてのルートは現在ログインしているユーザーと同じテンプレートで現在のユーザーを使用できるため、現在のユーザーはアンダースコアIDを使用します。
それを試してみましょう。
残りのif文の括弧を必ず追加してください。
リフレッシュすれば
あなたには問題があることがわかります。何が起こるかは、今現在のユーザーがいないということです。
したがって、現在のユーザに署名された人がいないため、アンダースコアIDに問題があります。
したがって、最初にチェックしたいことを確認する簡単な方法があります。
現在のユーザーがいますか？
そのユーザーがこれを所有しているかどうかを確認します。
エラーを防ぐためです。
現在のユーザーとキャンプグラウンドの作成者IDが現在のユーザーのIDと等しい場合は、これが偽であることを覚えておいてください。
したがって、現在のユーザが空であれば未定義です。
もしそれが虚偽であれば、残りの部分には決して移りません。なぜなら、AND声明が働く方法は、両側が真実であることが必要だからです。
それは短絡です。
これが偽で、これを評価することはありませんが、現在のユーザーが何らかのユーザーオブジェクトであれば、それは正しいユーザーかどうかの間違いではありません。
これは真実で、ユーザーが実際にキャンプ場を所有しているかどうかを確認する予定です。
私たちが再びリフレッシュしようとするならば。
今私たちはボタンが表示されませんが、私がポテトヘッドとして詳細情報にログインすると、これらのボタンが表示され、すべてが動作することを確認します。
サンセットレイクと呼ぼう。
送信してもすべて正常に動作します。
すばらしいです。
そこでここで行ったことのいくつかを要約しましょう。
最も重要なことは、この最後のレッスンでは認証とは異なる認証に焦点を当てました。
認証はあなたがあなたが誰かであるかどうかを確認するためにログインするだけです。
認可は、ログインしているユーザーが許可されていることを実行できるため、認可には異なる許可またはセキュリティクリアランスがあります。
だから私たちのケースでは、誰もがどんなキャンプ場も削除して更新できるようにしたからです。
しかし、今ではキャンプ場を所有しているユーザーだけが更新を削除することができ、最後にボタンを隠すこともできました。
あなたがログインしているかどうかによって異なります。
私たちは3つの異なるルートを保護しました。追加されたルートはここに更新されて表示され、削除または破棄されます。
そして、それは私たちが定義したチェックキャンプ用の所有権のミドルウェアを使っていました。それはこのファイルの一番下にあります。
驚くばかり。
次のレッスンでは、コメントを更新してコメントを削除できるように、同様のコメントを行うことに重点を置いて、コメントを所有している人だけがコメントを更新または削除できるように再度認可に焦点を当てます。