Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

権限管理のアクセス制限の設定方法改修 #6242

Open
white0721 opened this issue Jun 29, 2024 · 4 comments
Open

権限管理のアクセス制限の設定方法改修 #6242

white0721 opened this issue Jun 29, 2024 · 4 comments
Labels
improvement 機能改善
Milestone

Comments

@white0721
Copy link

概要(Overview)

現在、店舗設定の基本設定を行うページのURLは"/setting/shop"となっているが、これは店舗設定の支払い方法設定("/setting/shop/payment")や配送方法設定("/setting/shop/dekyvery")といったその他の店舗設定ページの上位のURLとなっている。
これでは、システム設定の権限管理においてURLが前方一致なせいで、基本設定ページはアクセス禁止にしたいが、支払い方法設定などのページはアクセス許可したい場合の設定ができない("/setting/shop"を設定した時点で店舗設定ページがすべてアクセス禁止になる)。

期待する内容(Expect) or 要望(Requirement)

店舗設定の基本設定を行うページのURLを"/setting/shop/shop"や"/setting/shop/baseInfo"のように、店舗設定のその他のページのURLの上位のURLとならないようにする。

@dotani1111
Copy link
Contributor

@white0721
Issueありがとうございます。
URLの構造を変更するのは影響が大きいため、アクセス制限の設定方法を改修する方針が良いかと思います。
こちらでいかがでしょうか?

@dotani1111 dotani1111 added the improvement 機能改善 label Jul 1, 2024
@dotani1111 dotani1111 added this to the 4.3.x milestone Jul 1, 2024
@white0721
Copy link
Author

@dotani1111
ご返信ありがとうございます。
そちらの方針で問題ございません。

@white0721
Copy link
Author

@dotani1111
具体的にはAuthorityRoleの例外を登録するExceptionAuthorityRoleクラスを作成して、AuthorityRoleと同様に権限管理でPermitUrlを設定できるようにし、AuthorityRoleのDenyUrlに上方一致するが、PermitUrlに完全一致するUrlについては/Security/Voter/AuthorityVoter.phpでアクセス拒否をしない、のような改修はいかがでしょうか?

ベストプラクティスが良く分かっていないので頓珍漢な方針かもしれませんが…。

@dotani1111
Copy link
Contributor

@white0721
アイデアありがとうございます。
現在のブラックリスト方式の中に、ホワイトリストを追加するイメージですね。
実装コストも低そうですし、こちらの方針で検討します。

@white0721 white0721 changed the title 店舗設定の基本設定のURL変更の提案 権限管理のアクセス制限の設定方法改修 Jul 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
improvement 機能改善
Projects
None yet
Development

No branches or pull requests

2 participants