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

管理画面操作の競合回避策について #4946

Open
okazy opened this issue Mar 3, 2021 · 1 comment
Open

管理画面操作の競合回避策について #4946

okazy opened this issue Mar 3, 2021 · 1 comment
Milestone

Comments

@okazy
Copy link
Contributor

okazy commented Mar 3, 2021

概要(Overview)

EC-CUBE では管理画面のユーザを複数登録できます。
例えば2人のユーザが同じ商品(テンプレートなども)を編集していた場合に、後勝で登録されてしまいます。

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

  • 排他制御をする
  • 通知や警告を出す
  • 操作ログを残す(大掛かりになるので、対応する場合は別途 Issue を作成する)

再現手順(Procedure)

例えば2人のユーザが同じ商品を編集していた場合に、後勝で登録されてしまいます。

環境 (environment)

  • EC-CUBE: 4.0.5

関連情報 (Ref)

#4847

@okazy
Copy link
Contributor Author

okazy commented Mar 3, 2021

対策案

登録時に警告

更新時にデータの更新があると、「データが更新されています」の警告を出す。
実現方法:編集画面にupdate_dateを持たせておいて、照合する

競合が発生する可能性がある旨を事前に通知

「〇〇(ユーザ)もログインしています」の文言を上部に出す。
基本的にログアウトをしない場合が多いので、現実的ではない。
JSでポーリングさせて確認しなくてはいけない?
-> 何時から何時までログインしていたかがわかる
SSE (Server Sent Events) が使えるか
管理画面だけの想定

実装

  • 画面からAjaxで1分間に1回程度リクエスト
  • Controllerを作成してDB?

懸念点

例えば在庫も排他制御にすると、フロント画面での購入も影響してしまう。
排他制御のレベルを分ける必要があるか。

こちらも警告を出すか?

現在も受注前後で商品を編集すると在庫がずれてしまうことがある。 ( #4947 に切り出しました)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants