2016-10-13 20 views
0

初めてJavaから非常に幅広いWebアプリケーションを作成しています。ドメインの設定についてのガイダンスが必要です。このアプリケーションは、教師と学生の両方に使用されることになり、アプリケーションでさまざまなことができるようになります。また、それぞれ異なる特性を持たせる必要があります。異なる種類のユーザーのアプリケーション

私の考えは、ドメインへのメインエントリがUserクラスだということです。このクラスは、名前、電子メール、ログインパスワードなどを保持します。しかし、ログインしている人が先生か学生かによって、彼らは別のものにアクセスできる必要があります。たとえば、教師は、教科の対象を教えている設定を持っていなければなりません。

まず、これは私にとって典型的な継承の問題のようです:ユーザークラスを抽象的なにして、 。しかし、私はこれが最高の解決策であるかどうか分からないので、私がこれを書いている主な理由は、私がこの問題である箱から私の心を奪うことができる議論を模索しているということです。

重複の可能性は、(私が考える理由とそうではありません):

  • How to create pages with different permissions' views
    これは、ページの表示やクリックのように、ユーザーが特定のサービスへのアクセスを持っているかどうかを判断についてですボタン。これは、ユーザをグループにグループ化し、各グループに権限のセットを与え、それらの権限をチェックすることで解決できる別の問題です。私の問題を解決するためのオプションが制限されているにもかかわらず、私の問題に直接リンクされていません。これはまた、各ユーザーが権限を持っているアクションに関係しているユーザーがログインしているすべてのエントリ(権限がUserクラスのインスタンスに与えられ、それ以外なし)

  • How to model system with different types of users?
    の単一のポイントが存在しなければなりません実際のユーザーのプロパティではなく、実行します。しかし、私はこのような構造を使うことを考えました。ユーザーがTEACHER_ROLEロールを持っている場合、そのユーザーを別のTeacherクラスにキャストします。しかし、私はむしろランタイムに依存するキャストをせずにこれを解決するだろう。

TL; DR:ユーザーが別のログに記録されたが、彼らがしているユーザーの種類に応じて、異なる特性を持つべきアプリケーションを作成するときに
可能なオプションは何ですか?

答えて

0

私は私が働いている大学のキャンバス管理者です...教師はコーススペース(ワークショップ、部署グループなど)で学生の役割を果たすことが多く、学生は教師の役割を担うことがありますコミュニティコミュニケーションツールとしてのコースマネジメントシステムを利用して)。

だから私はフォークスを持つだろう。そして、コースレベル以上の真偽/偽タイプのアクセス許可の束を定義します。そして、適切なサーバーレベルの役割(管理者、ヘルプデスク、dept chairなど)とコースレベルの役割(教師、TA、学生など)を作成し、必要な権限を決定します。

誰かがログインすると、サーバーレベルにあり、一般の人、管理者、または部分的な管理者権限を持つ人物です。彼らがコース登録をしている場合、コースに入ると、登録タイプがコースに登録できる権利があります。

Canvas、Desire2Learn、Moodle、Sakai、Blackboardなどのドキュメントをご覧ください。それらのすべてが異なるものに異なる名前を持っている間、彼らはすべて「権利を持つ役割を持つ人々」モデルを使用します。

+0

私が開発しているアプリケーションは、実際にCanvasに非常によく似ていますが、非常に縮小版ですから、あなたは@ivanivanを書いておもしろいことです。 – darksmurf

+0

しかし、ログインしたユーザーが異なる**プロパティ**を持つ状況をどう処理するのですか?例えば、教師は、教える科目のセットを持っています。これは、学生が決して持っていない財産です。これは、「これは他の理由で必要でも、ロールへのユーザーおよびロールへのアクセス権の付与」ソリューションによってどのように解決されるのか分かりません。 – darksmurf

+0

ユーザー1は「非管理者/非ヘルプデスク/非ボス」ユーザーです。彼らはシステムにログインし、ユーザー1として識別し、登録リストを取得します。登録は、コーススペースと、そのコーススペースでの役割を指定します。だから私はサーバにログインし、先生としてLinux Adminクラスに登録されていることを知っていますが、学生としてJava Servletsクラスにも登録しています。私がその特定のコースに入ると、私はその役割を持ち、権利は何でもあります。 – ivanivan

関連する問題