symfonyは常にアクセス拒否を返します、@ Security、コントローラー、isAuthor

user9124792

ユーザーと製品システムを使用して単純なアプリ(Symfony 4.1.7)をコーディングします

ユーザーは自分の製品を編集できますが、他のユーザーの製品は編集できません

私の問題、私は編集ルートに行きます、それが私の製品であっても、それは拒否されたアクセスを返します

私のProductController:

   /**
 * @Route("seller/myproduct/{id}/edit", name="seller_edit_product")
 * @param Product $product
 * @return Response
 * @Security("product.isAuthor(user)")
 */
public function edit(Product $product, Request $request): Response
{
    $form = $this->createForm(ProductType::class, $product);
    $form->handleRequest($request);
    if ($form->isSubmitted() && $form->isValid()){
        $this->em->flush();
        $this->addFlash('success', 'Modify Successfully');
        return $this->redirectToRoute('seller_index_product');
    }
    return $this->render('seller/product/edit.html.twig', [
        'product' => $product,
        'form' => $form->createView()
    ]);
}

Product.php

    /**
 * @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="product_id")
* @ORM\JoinColumn(nullable=false)
*/
private $user;


public function getUser(): User
{
    return $this->user;
}

public function setUser(User $user): self
{
    $this->user = $user;

    return $this;
}

/**
 * @return bool
 */
public function isAuthor(User $user = null)
{
    return $user && $user->getProductId() === $this->getUser();
}

私のisAuhor関数で

==アクセスが拒否されました

!==自分のものではない製品のエディションにアクセスできます

User.php

 /**
 * @ORM\OneToMany(targetEntity="App\Entity\Product",   mappedBy="user",orphanRemoval=true)
 */
private $product_id;

public function __construct()
{
    $this->product_id = new ArrayCollection();
}

    /**
* @return Collection|Product[]
*/
public function getProductId(): Collection
{
    return $this->product_id;
}

public function addProductId(Product $productId): self
{
    if (!$this->product_id->contains($productId)) {
            $this->product_id[] = $productId;
            $productId->setUser($this);
    }

 return $this;  
}

}

ありがとうございました

zizoujab

あなたのisAuthor関数は常に返しますfalse、あなたが比較されているようArrayCollectionUser

特定のユーザーが特定の製品を持っているかどうかをチェックする関数をユーザークラス定義に追加できます。

したがって、Product.phpでは:

/**
 * @return bool
 */
public function isAuthor(User $user = null)
{
    return $user && $user->hasProduct($this); 
}

そして、hasProduction関数は次のようになります。

 // this goes into User.php
/**
 * @return bool
 */
public function hasProduct(Product $product)
{
    return $this->product_id->contains($product) 
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Firebaseルールquery.equalToは、RESTで常に「アクセスが拒否されました」を返します

分類Dev

アクセス拒否を返すC#MVCコントローラー

分類Dev

WIF 4.5でADFSをテストしようとすると、常にアクセスが拒否されます

分類Dev

SSHキーは再起動後にアクセスを拒否します

分類Dev

.net IISフォーム認証は、適切に構成されたweb.configを使用しても常にアクセスを拒否します

分類Dev

CCreateFileMappingエラー5アクセスが常に拒否されました

分類Dev

Flask Python mkdirsは、マウントされたドライブに対して「アクセスが拒否されました」を返します

分類Dev

Microsoft Graph API-電子メールの送信では、常にエラーテキスト「アクセスが拒否されました。資格情報を確認して再試行してください」を含む応答コード403が返されます。

分類Dev

Restコントローラーを使用したBasicAuth-アクセスが拒否されました

分類Dev

WireMockはテスト内で実行すると常に接続拒否を返します

分類Dev

「netuseradministrator / active:Yes」は「システムエラー5が発生しました。アクセスが拒否されました」を返します。

分類Dev

Loadkeysは、通常のユーザーに対して拒否されたアクセス許可を与えます

分類Dev

User.Identity.GetUserId() は、コントローラー アクションで常に null を返します。

分類Dev

HTTPクライアントのステータスコードは常に未定義を返します

分類Dev

Spring Security:@PreAuthorizeアノテーションが欠落している場合、コントローラーメソッドへのアクセスを拒否します

分類Dev

ftpwebrequest.getresponseは550アクセスをスローしています拒否されました

分類Dev

セキュリティルールにより、常に「アクセスが拒否されました」

分類Dev

User.IsInRole()はfalseを返し、ロールの承認によりアクセスが拒否されました

分類Dev

アクセストークンInstagramを生成するときにエラー「ユーザーがリクエストを拒否しました」

分類Dev

セキュリティが特定のロールへのアクセスを拒否した場合、Symfony3でJquery関数をトリガーします

分類Dev

onRequestPermissionsResultで、一部のデバイスのgrantResultsは、ユーザーがアクセス許可を拒否すると空を返します

分類Dev

C# ストリームライターは、xml ファイルを MyDocuments に保存するためのアクセスを拒否します

分類Dev

PSWindowsUpdateは、ドメイン管理者がリモートMachienesでアクセスを拒否します

分類Dev

BPFベリファイアはコードを拒否します:「無効なbpf_contextアクセス」

分類Dev

Steamアクセスを拒否せずに、ゲームフォルダをロックします

分類Dev

LoginRequiredMixinの反対は何ですか、ログインしたユーザーへのアクセスをどのように拒否しますか?

分類Dev

AWS CloudFrontは、クエリ文字列を使用してS3オリジンから拒否されたアクセスを返します

分類Dev

UFWはHTTPSを介した特定のポートアクセスを拒否しますか?

分類Dev

Broadleafコマース:カスタム管理コントローラーを使用した「アクセスが拒否されました」

Related 関連記事

  1. 1

    Firebaseルールquery.equalToは、RESTで常に「アクセスが拒否されました」を返します

  2. 2

    アクセス拒否を返すC#MVCコントローラー

  3. 3

    WIF 4.5でADFSをテストしようとすると、常にアクセスが拒否されます

  4. 4

    SSHキーは再起動後にアクセスを拒否します

  5. 5

    .net IISフォーム認証は、適切に構成されたweb.configを使用しても常にアクセスを拒否します

  6. 6

    CCreateFileMappingエラー5アクセスが常に拒否されました

  7. 7

    Flask Python mkdirsは、マウントされたドライブに対して「アクセスが拒否されました」を返します

  8. 8

    Microsoft Graph API-電子メールの送信では、常にエラーテキスト「アクセスが拒否されました。資格情報を確認して再試行してください」を含む応答コード403が返されます。

  9. 9

    Restコントローラーを使用したBasicAuth-アクセスが拒否されました

  10. 10

    WireMockはテスト内で実行すると常に接続拒否を返します

  11. 11

    「netuseradministrator / active:Yes」は「システムエラー5が発生しました。アクセスが拒否されました」を返します。

  12. 12

    Loadkeysは、通常のユーザーに対して拒否されたアクセス許可を与えます

  13. 13

    User.Identity.GetUserId() は、コントローラー アクションで常に null を返します。

  14. 14

    HTTPクライアントのステータスコードは常に未定義を返します

  15. 15

    Spring Security:@PreAuthorizeアノテーションが欠落している場合、コントローラーメソッドへのアクセスを拒否します

  16. 16

    ftpwebrequest.getresponseは550アクセスをスローしています拒否されました

  17. 17

    セキュリティルールにより、常に「アクセスが拒否されました」

  18. 18

    User.IsInRole()はfalseを返し、ロールの承認によりアクセスが拒否されました

  19. 19

    アクセストークンInstagramを生成するときにエラー「ユーザーがリクエストを拒否しました」

  20. 20

    セキュリティが特定のロールへのアクセスを拒否した場合、Symfony3でJquery関数をトリガーします

  21. 21

    onRequestPermissionsResultで、一部のデバイスのgrantResultsは、ユーザーがアクセス許可を拒否すると空を返します

  22. 22

    C# ストリームライターは、xml ファイルを MyDocuments に保存するためのアクセスを拒否します

  23. 23

    PSWindowsUpdateは、ドメイン管理者がリモートMachienesでアクセスを拒否します

  24. 24

    BPFベリファイアはコードを拒否します:「無効なbpf_contextアクセス」

  25. 25

    Steamアクセスを拒否せずに、ゲームフォルダをロックします

  26. 26

    LoginRequiredMixinの反対は何ですか、ログインしたユーザーへのアクセスをどのように拒否しますか?

  27. 27

    AWS CloudFrontは、クエリ文字列を使用してS3オリジンから拒否されたアクセスを返します

  28. 28

    UFWはHTTPSを介した特定のポートアクセスを拒否しますか?

  29. 29

    Broadleafコマース:カスタム管理コントローラーを使用した「アクセスが拒否されました」

ホットタグ

アーカイブ