Rails 5 を使用して、マルチテナンシー Web アプリ用の API を作成しようとしています。
しかし、これを可能にするアプリケーション構造を理解するのに苦労しています:
ユーザーが自分の組織のアカウントを取得するために自分自身を登録できるようにしたくはありませんが、私たちのスタッフの人々に内部的にアカウントを作成してもらいたいのです。
スタッフは各組織のプラットフォーム管理者に招待状を送信して、登録プロセスを完了し、独自のユーザーを招待できるようにする必要があります。登録するための招待 URL は既にサブドメイン化されており、独自のデータベース スキーマ (postgres) 内にレコードが作成されています。
組織の管理者から、さまざまなリソースとアクションへのアクセスを制限するロールの階層が開始されます。
そのタスクを完了するために、同じユーザー モデルの 1 人のユーザーにスーパー管理者のような役割を与えることに不安を感じています。
ユーザーの種類ごとに 2 つの異なるモデルを作成し、1 つ (「システム管理者」) をパブリック スキーマに残して、個別の管理インターフェイスをスピンする必要がありますか?
それは私には少し奇妙に思えますが、おそらく正しいのです。(プラットフォームのユーザー認証情報を保持、識別、および管理するという同じ目的を持つ 2 つの異なるモデルを持つ)
また、正当な理由なくパブリック スキーマにユーザー アカウントを残したくありません。1 人のユーザーが複数の組織に属するケースは、アプリケーションのコンテキストで発生する可能性はほとんどありません。(そして別々のアカウントが望ましいです)
...私の質問は次のとおりです。
スタッフがテナント アカウントの作成を社内で管理できるようにするための、適切で適切なアプリケーション構造とはどのようなものでしょうか?