質問 > 管理機能 > 商品登録画面でログインメンバーによって制限をつけたい |
管理機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
DELIGHT |
投稿日時: 2016/6/14 18:55
対応状況: −−−
|
仙人 登録日: 2010/2/3 居住地: 熊本県・九州・長野県・関東甲信越 投稿: 572 |
Re: 商品登録画面でログインメンバーによって制限をつけたい 引用:
画面表示の部分であっても、formでやるほうが良いのでしょうか?その辺あまりわからず・・・ 原則論ではありますが、ビジネスロジックをViewに持たせるのは違和感がありますし、 恐らくtwigだけでは対応できないためjavascript等に頼る必要があります。 引用: こちらはsrc\Eccube\Form\Type\Admin\ProductType.php その認識で合っています。 本番サイトを直接カスタマイズしているとかでなければ、間違っていても大したことはありません。 まずは手を動かして、間違っていればその間違いも一緒に覚えましょう。
|
ゲスト |
投稿日時: 2016/6/14 18:46
対応状況: 確認中
|
Re: 商品登録画面でログインメンバーによって制限をつけたい 引用:
画面表示の部分であっても、formでやるほうが良いのでしょうか?その辺あまりわからず・・・ 対象のメンバーの判別もform側でwhereを用いて行うということでしょうか? 引用:
こちらはsrc\Eccube\Form\Type\Admin\ProductType.php こちらのカテゴリの部分をカスタマイズすればよいのでしょうか? 該当箇所を参考に見てみて自分の中での認識としては 引用:
ここのadd()内部にquery_builderを入れるということかな? と思いましたが認識はあっているでしょうか? |
|
DELIGHT |
投稿日時: 2016/6/14 17:28
対応状況: −−−
|
仙人 登録日: 2010/2/3 居住地: 熊本県・九州・長野県・関東甲信越 投稿: 572 |
Re: 商品登録画面でログインメンバーによって制限をつけたい フォームのことは基本的にEccube\Form以下で行なうのがいいでしょう。
この場合は、FormBuilder::add($child, $type, $options)の$optionsにquery_builderというオプションが用意されています。 http://symfony.com/doc/current/reference/forms/types/entity.html#using-a-custom-query-for-the-entities 下記の辺りを参考に、$app['user']でWHEREを設定するといいと思います。 https://github.com/EC-CUBE/ec-cube/blob/3.0.10/src/Eccube/Form/Type/Admin/ProductType.php#L74 https://github.com/EC-CUBE/ec-cube/blob/3.0.10/src/Eccube/Form/Type/ShippingMultipleItemType.php#L75
|
ゲスト |
投稿日時: 2016/6/14 16:06
対応状況: 開発中
|
Re: 商品登録画面でログインメンバーによって制限をつけたい 条件分岐としてはそのまま
※実際はnameでなくidにする予定です {% if app.user.name == '食器販売チーム' %} (ここに固定表示の処理を埋め込む) {% elseif app.user.name == 'インテリア販売チーム' %} (ここに固定表示の処理を埋め込む) {% else %} (管理者の場合はすべて操作できるためデフォルトを残しておきます) {% endif %} このように作成しております。 |
|
ゲスト |
投稿日時: 2016/6/14 15:13
対応状況: 開発中
|
商品登録画面でログインメンバーによって制限をつけたい 商品登録画面においてログインしているメンバーに応じて、制限をつけたいということなのですが具体的に申し上げると
登録しているメンバーを例として以下のように仮定します。 ?マスタ管理者(すべての権限あり) ?食器販売チーム(商品の登録・在庫の更新などは食器のカテゴリに限定) ?インテリア販売チーム(食器販売チーム同様、更新可能なのはインテリアのカテゴリに限定) 初期のままでは、すべてのメンバーにすべての商品カテゴリの情報が更新できてしまうかと思います。 今、考えているのはひとまず段階として商品の追加が他カテゴリにできないようにするということです。 product.twigにて、ヘッダーのログインしているメンバー名が表示されている部分の情報から判断しそれぞれのカテゴリにのみしか追加できないようにしようと考えています。 ifで条件分岐(条件としてはapp.userでユーザの情報が載っていると思うのでこれを使用できるのかなと思います)させ、この情報の場合にこのカテゴリを固定表示させるという形です。 デフォルトではセレクトボックスになるかと思いますが、そこを変更したいと考えています。 app.user中身 Member {#1378 ▼ -id: 4 -name: "食器販売チーム" -department: "食器販売チーム" -login_id: "Dinnerware" -password: "-----------------------------------------------" -salt: "------------------" -Authority: Authority {#1390 ▶} -rank: 3 -Work: Work {#1350 ▶} -del_flg: 0 -Creator: Member {#1419 ▶} -create_date: DateTime {#1367 ▶} -update_date: DateTime {#1377 ▶} -login_date: DateTime {#1358 ▶} } form.Categoryの中身 FormView {#2545 ▼ +vars: array:41 [▼ "value" => [] "attr" => [] "form" => FormView {#2545} "id" => "admin_product_Category" "name" => "Category" "full_name" => "admin_product[Category][]" "disabled" => false "label" => "商品カテゴリ" "label_format" => null "multipart" => false "block_prefixes" => array:6 [▶] "unique_block_prefix" => "_admin_product_Category" "translation_domain" => null "cache_key" => "_admin_product_Category_category" "read_only" => false "errors" => FormErrorIterator {#2544 ▶} "valid" => true "data" => [] "required" => false "max_length" => null "pattern" => null "size" => null "label_attr" => [] "compound" => false "method" => "POST" "action" => "" "submitted" => false "help" => null "freeze" => false "freeze_display_text" => true "multiple" => true "expanded" => false "preferred_choices" => [] "choices" => array:3 [▶] "separator" => "-------------------" "placeholder" => null "choice_translation_domain" => false "is_selected" => Closure {#2547 ▶} "placeholder_in_choices" => false "empty_value" => null "empty_value_in_choices" => false ] +parent: FormView {#2459 ▼ +vars: array:30 [▶] +parent: null +children: array:16 [▶] -rendered: false } +children: [] -rendered: false } 固定表示はどのように実装できるのでしょうか? |
|
« 1 (2) |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |