We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
独自プラグインにて独自テーブルを用意してのマイページ開発で躓いてます。 やり方、ヒントなどご教授いただけると助かります。
1)プレフィックス認証 独自プラグインの独自テーブルに、「user_groups」をアソシエーションしないと、パーミッションが通過できない。
具体的には、 basercms/plugins/baser-core/src/Controller/AppController.php
private function checkPermission() { $user = BcUtil::loginUser(); if ($user && $user->user_groups) { $userGroupsIds = Hash::extract($user->toArray()['user_groups'], '{n}.id'); } else { $userGroupsIds = []; } /* @var PermissionsServiceInterface $permission */ $permission = $this->getService(PermissionsServiceInterface::class); $request = $this->getRequest(); return $permission->check($request->getPath(), $userGroupsIds, $request->getMethod()); }
$user->user_groupsのエンティティを持っていないと、$userGroupsIdsに値が入らず通過できない。 checkPermissionを通過させるためだけにuser_groupsを持つのは無駄な感じがするし、 独自マイページでも独自のグループ管理をしたいので、user_groupsというややこしい名前を使いたくない。
ちなみに、BcPermission.defaultAllowsを使うと、認証自体をスルーしてしまうので、マイページとして機能しない。 さらにちなみに、独自エンティティには以下の設定が必要のようでした。
public function isAdmin(): bool { return false; } public function getDisplayName() { return $this->name; } public function getAuthPrefixes(): array { $prefixes = ['membership']; return $prefixes; }
2)プラグインで独自に認証を設ける できればこちらの方を採用したいのですが、 独自プラグインのコントローラーで認証を設定しても、BaserCoreの認証に吸い込まれて認証できない。 BaserCoreのミドルウエアを上書きしたり、スキップさせたり試してみましたが、謎のエラーで上手くできませんでした。 そもそもミドルウエアを後からスキップできるのか疑問ですが、(ChatGPTに教えてもらった方法は一通り試してみました、、、)
こんな感じでやれば良いんじゃない?みたいなヒントでも頂けると嬉しいです。 またよければ、途中まで作ったプラグインをアップします。 よろしくお願いします。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
独自プラグインにて独自テーブルを用意してのマイページ開発で躓いてます。
やり方、ヒントなどご教授いただけると助かります。
1)プレフィックス認証
独自プラグインの独自テーブルに、「user_groups」をアソシエーションしないと、パーミッションが通過できない。
具体的には、
basercms/plugins/baser-core/src/Controller/AppController.php
$user->user_groupsのエンティティを持っていないと、$userGroupsIdsに値が入らず通過できない。
checkPermissionを通過させるためだけにuser_groupsを持つのは無駄な感じがするし、
独自マイページでも独自のグループ管理をしたいので、user_groupsというややこしい名前を使いたくない。
ちなみに、BcPermission.defaultAllowsを使うと、認証自体をスルーしてしまうので、マイページとして機能しない。
さらにちなみに、独自エンティティには以下の設定が必要のようでした。
2)プラグインで独自に認証を設ける
できればこちらの方を採用したいのですが、
独自プラグインのコントローラーで認証を設定しても、BaserCoreの認証に吸い込まれて認証できない。
BaserCoreのミドルウエアを上書きしたり、スキップさせたり試してみましたが、謎のエラーで上手くできませんでした。
そもそもミドルウエアを後からスキップできるのか疑問ですが、(ChatGPTに教えてもらった方法は一通り試してみました、、、)
こんな感じでやれば良いんじゃない?みたいなヒントでも頂けると嬉しいです。
またよければ、途中まで作ったプラグインをアップします。
よろしくお願いします。
The text was updated successfully, but these errors were encountered: