質問 > 管理機能 > 別の管理画面を作成する方法について |
管理機能
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
beginnerA |
投稿日時: 2023/4/19 11:04
対応状況: −−−
|
新米 登録日: 2020/6/13 居住地: 投稿: 7 |
別の管理画面を作成する方法について ▼テンプレート
▼テンプレート [EC-CUBE] 4.2.0 [OS] Linux [PHP] 8.1.9 [データベース] MySQL 8.0.28 [WEBサーバ] Apache [ブラウザ] Chrome [導入プラグインの有無] プリインストールプラグイン [カスタマイズの有無] オリジナルプラグイン作成中 [現象] EC-CUBE4.2を勉強を兼ねて色々とカスタムをしてみています。 システム設定 > メンバー管理 よりメンバーの権限がデフォルトで ・ システム管理者 ・ 店舗オーナー と2つ用意されているかと思います。 新たに ・メンバー というものを作成し、そのメンバーに関しては%admin_route%のディレクトリ配下ではなく、 hoge.com/○○/login hoge.com/○○/index hoge.com/○○/... など、別の管理画面を持たせたいと思っています。 新規ディレクトリ(○○の部分のディレクトリ)の配下のページを表示させる事はできているので、ここにログインの判定をつけたいと思っています。 AdminControllerの /** * @Route("/%eccube_admin_route%/login", name="admin_login", methods={"GET", "POST"}) * @Template("@admin/login.twig") */ public function login(Request $request) { if ($this->authorizationChecker->isGranted('ROLE_ADMIN')) { return $this->redirectToRoute('admin_homepage'); } /* @var $form \Symfony\Component\Form\FormInterface */ $builder = $this->formFactory->createNamedBuilder('', LoginType::class); $event = new EventArgs( [ 'builder' => $builder, ], $request ); $this->eventDispatcher->dispatch($event, EccubeEvents::ADMIN_ADMIM_LOGIN_INITIALIZE); $form = $builder->getForm(); return [ 'error' => $this->helper->getLastAuthenticationError(), 'form' => $form->createView(), ]; } をコピーして /** * @Route("/○○/login", name="○○_login", methods={"GET", "POST"}) * @Template("○○/login.twig") */ public function login(Request $request) { if ($this->authorizationChecker->isGranted('ROLE_ADMIN')) { return $this->redirectToRoute('○○_homepage'); } /* @var $form \Symfony\Component\Form\FormInterface */ $builder = $this->formFactory->createNamedBuilder('', ○○LoginType::class); $form = $builder->getForm(); return [ 'error' => $this->helper->getLastAuthenticationError(), 'form' => $form->createView(), ]; } /** * ○○ 別管理画面ホーム * * @param Request $request * * @return array * * @throws NoResultException * @throws \Doctrine\ORM\NonUniqueResultException * * @Route("/○○/", name="○○_homepage", methods={"GET"}) * @Template("/○○/index.twig") */ public function index(Request $request) { } のように○○Controller.phpを作成しました。 if ($this->authorizationChecker->isGranted('ROLE_ADMIN')) {・・・ の部分をコメントアウトすると、○○/inde.twigの内容は表示されているので、Controllerとtwigは結びついて期待通りの動きをしていると思います。 該当部分をそのまま動かすと、○○_loginより先に進む事ができません。 試しに%eccube_admin_route%へのログイン確認も行いましたが、こちらは正常にログインが可能です。 おそらく○○_loginのページでログインの判定ができていないのだと思うのですが、行き詰まってしまったのでアドバイスを頂けたら嬉しいです。 よろしくお願い致します |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
» 別の管理画面を作成する方法について | beginnerA | 2023/4/19 11:04 |
Re: 別の管理画面を作成する方法について | H1R0 | 2023/4/20 15:10 |
Re: 別の管理画面を作成する方法について | beginnerA | 2023/4/20 17:28 |
Re: 別の管理画面を作成する方法について | mcontact | 2023/4/20 22:09 |
Re: 別の管理画面を作成する方法について | beginnerA | 2023/4/21 11:57 |
Re: 別の管理画面を作成する方法について | mariacensa | 2023/5/6 16:37 |
Re: 別の管理画面を作成する方法について | H1R0 | 2023/4/21 8:32 |