« httpリクエストツール | Main | 脱・戦士 »

2007.11.25

Teedaで権限別のトップページ

 アプリケーションによっては、例えば「管理者」「特別ユーザ」「一般ユーザ」といった感じで複数の権限があるばあいがあります。で、権限によって、ページに表示される内容が異なってきたりします。
 ログイン後に表示されるトップページ(別にトップページでなくてもいいのですが)において、権限によって若干の違いはあるが、大半の内容は共通であったりするような場合、さてさて、どのように実行するのが開発&メンテナンスが楽なのやら??

【1つのPageクラス&htmlファイル(1)】
 Pageクラスの中で、ログインしている権限をチェックしながら処理を制御する方法。この場合、html側でもConditionを用いて表示する内容を切り替えたりする必要があるかもしれませんが、共通部分を修正する場合は1つのファイルを編集するだけで済むので楽になります。ただし、Pageクラス側で権限別の処理をしている部分を修正する場合は、分岐条件などを気にしながら行う必要があるので、少しややこしくなってきそうな感じ。あと、Pageクラス/htmlファイルでの権限毎の内容の関連付けを意識しながら書かなければいけないのが少し面倒?(ただ、この部分は工夫次第で何とかなるかもしれませんが)

【権限毎のPageクラス&htmlファイル】
 権限の数だけPageクラス/htmlファイルを作ることになりますが、Pageクラス内では、対応する権限の処理のみを記述すれば済むので、Pageクラスを修正する場合は結構楽になるかと。各Pageクラスの共通処理部分を親クラスに持って行くことで、Pageクラス側の共通処理部分を修正するのは比較的楽ですが、htmlファイルは各ファイルの修正を行う必要が出てくるので、若干手間になってきそうな感じ? あと、ファイル数が増えてしまうのもデメリットといえるかもしれません。
 共通部分を別のhtmlに切り出してincludeで処理を行うという方法もありますが、1つのhtmlに関連してくるhtmlファイルが増えてくると、それはそれで管理が大変になってくるかも・・・。

【1つのPageクラス&htmlファイル(2)】
 権限をenum型などで定義しておき、処理の実体クラスをenumクラスに定義したメソッド経由で取得する方法(「バグと別れる 10 の方法」より)。まぁ、(1)において条件分岐で処理している部分を、別クラスで書き直しただけなので、htmlファイル側でConditionで制御しなければならないという点は変わりないですが。まぁ、Pageクラス内での分岐が減るため、Pageクラス側の見通しはよくなりそうな感じ? ただ、処理の実体を別クラスにおくため、プロパティの連携を別途考える必要がありますが(例えばPageクラスを処理の実体クラスにsetしておくとか)。

多分、他にも方法はあり、もっとスマートな方法もあるとは思うのですが・・・

|

« httpリクエストツール | Main | 脱・戦士 »

Java」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/3959/17180875

Listed below are links to weblogs that reference Teedaで権限別のトップページ:

« httpリクエストツール | Main | 脱・戦士 »