バージョン選択

フォーラム

メニュー

オンライン状況

56 人のユーザが現在オンラインです。 (46 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 56
もっと...

サイト内検索

質問 > 管理機能 > 別の管理画面を作成する方法について

管理機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
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

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,724名です
総投稿数は109,953件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1286
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.