クラス RoleMode

java.lang.Object
org.opengion.hayabusa.resource.RoleMode

public final class RoleMode extends Object
ロールモードは、画面オブジェクトやカラムオブジェクトのロール-モード制御の情報を 管理するクラスです。 ROLES 情報は、AAA|BBB|CCC と 『|』で区切られた複数のロールを持っています。 通常、ユーザーロールは画面やカラムの各オブジェクトに対してロール制御可能です。 ログインユーザーは、自分自身のロールを、画面やカラムが持っているかを判定します。 画面に関しては、従来のデフォルトアクセスがなくなり、ロールを登録する場合は、 必ず ユーザーロールとの比較が行われます。画面ロールを登録しない場合は、アクセス 可能と判断されます。つまり、画面の場合は、なにも設定しなければ、アクセス可能と 判断されます。 カラムロールも同様に、何も設定しなければフルアクセスできます。通常、ほとんどの ケースでカラムロールが使われることはありません。 RWMODE 情報は、各ロールに対して、3つの項目で表しています。 1:"-" メニュー非表示 "m" メニュー表示 "p" メニュー表示(強制プルダウン表示) 2:"-" アクセス拒否 "r" 読取許可 "w" 読取、書込許可 3:"-" 未対応 "d" ファイル出力 "u" ファイル入力 "f" ファイル入出力 uではエディットメニューそのものが、d,fでは【表示項目設定】タブは表示されません。 "o" 表示順編集のみ可 … この設定では、【表示項目設定】 タブで位置と表示順のみ変更できます。 "e" 画面編集可 … この設定で、編集機能がフルに使えます。 互換性の関係より、"" は、"e" と同等とします。 設定キーの関係より、"o" か "e" を設定すると、"f" と同じ権限が自動的に設定されます。 この3項目を順次つないで、"--","-r","-w","mr","mw" などの設定を行います。 モードが設定されている場合は、共通モードとして、すべてのロールに同じモードを 割り当てます。個別に割り当てる場合は、ROLES 情報の後ろに () 付きで追記します。 例えば、AAA|BBB(-r)|CCC とすれば、BBB ロールの場合は、読取専用になります。 ロールをぶつける場合は、AND 演算になります。 過去(Ver3)のモードとの互換性をとる場合、"rw" は "mw" へ、"r-" は"mr" へ変換 してください。
変更履歴:
4.0.0.0 (2004/01/31) 新規作成, 4.3.3.0 (2008/10/01) pモード追加
機能分類
リソース管理
導入されたバージョン:
JDK5.0,
  • フィールドの概要

    フィールド
    修飾子とタイプ
    フィールド
    説明
    static final String
    初期のモード
  • メソッドの概要

    修飾子とタイプ
    メソッド
    説明
    byte
    指定のユーザーロールに対する最終的なアクセス条件を取得します。
    モード配列を返します。
    RoleMode 構築時に発生したエラーメッセージを返します。
    ロールズを返します。
    static boolean
    isAccess(byte bitMode)
    ビットロールの画面アクセス可否を返します。
    static boolean
    isDownload(byte bitMode)
    ビットロールのファイル出力可否を返します。
    static boolean
    isEdit(byte bitMode)
    ビットロールの画面編集可否を返します。
    static boolean
    isFullEdit(byte bitMode)
    ビットロールの画面編集のフルコントロール可否を返します。
    static boolean
    isMenu(byte bitMode)
    ビットロールのメニュー表示可否を返します。
    static boolean
    isPulldown(byte bitMode)
    ビットロールのプルダウン化を返します。
    static boolean
    isRead(byte bitMode)
    ビットロールの読込アクセス可否を返します。
    static boolean
    isUpload(byte bitMode)
    ビットロールのファイル入力可否を返します。
    static boolean
    isWrite(byte bitMode)
    ビットロールの書込アクセス可否を返します。
    static RoleMode
    ロールとモードを元に、RoleModeオブジェクトを構築します。
    static RoleMode
    newInstance(String roles, String mode)
    ロールとモードを元に、RoleModeオブジェクトを構築します。
    オブジェクトの識別子として、詳細なユーザー情報を返します。

    クラスから継承されたメソッド java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • フィールド詳細

  • メソッドの詳細

    • newInstance

      public static RoleMode newInstance(String roles)
      ロールとモードを元に、RoleModeオブジェクトを構築します。 条件が同じ RoleModeオブジェクト があれば、キャッシュから返します。 キャッシュになければ、新規に作成します。 このキャッシュは、完全な内部キャッシュなので、いつクリアされるか保障がありません。
      パラメータ:
      roles - "|"で区切られた ロール文字列
      戻り値:
      RoleModeオブジェクト
      変更履歴:
      4.3.0.0 (2008/07/04) ロールモードマルチ対応
      このメソッドは、nullを返しません
    • newInstance

      public static RoleMode newInstance(String roles, String mode)
      ロールとモードを元に、RoleModeオブジェクトを構築します。 条件が同じ RoleModeオブジェクト があれば、キャッシュから返します。 キャッシュになければ、新規に作成します。 このキャッシュは、完全な内部キャッシュなので、いつクリアされるか保障がありません。
      パラメータ:
      roles - "|"で区切られた ロール文字列
      mode - "|"で区切られ、ロール文字列と対応付けられたモード文字列。唯一の場合は共通モードになる。
      戻り値:
      RoleModeオブジェクト
      変更履歴:
      4.3.0.0 (2008/07/04) ロールモードマルチ対応, 6.4.3.3 (2016/03/04) Map#computeIfAbsent で対応する。, 8.4.0.0 (2023/01/31) RoleMode でthrow しても、インスタンスは生成する。
      このメソッドは、nullを返しません
    • getRoles

      public String getRoles()
      ロールズを返します。
      戻り値:
      ロールズ文字列
    • getMode

      public String getMode()
      モード配列を返します。
      戻り値:
      モード配列
    • getAccessBitMode

      public byte getAccessBitMode(RoleMode other)
      指定のユーザーロールに対する最終的なアクセス条件を取得します。 アクセス条件は、複数あるユーザーロールの中で、最大のアクセス条件を算出します。 例えば、AAA(-r)|BBB(-w)|CCC(mr) の3つのロール/モードが設定されている場合、 ユーザーが、AAA だけの場合は、-r ですが、AAA|BBB を持っている場合は、-w になります。 さらに、BBB|CCC と持っている場合は、(-w:書き込み許可)と(mr:メニューから読取許可)の 権限により、mw:メニューからの書き込み許可が与えられます。 モード指定がある場合は、AND演算になります。 例えば、AAA(-r)|BBB(-w)|CCC(mr) と BBB|CCC(-r) の場合、(-r)+(-w)+(mr)*(-r)=-w に なります。ロールは、OR ですが、モードは、同一ロールでのAND になります。 実際には、メニュー表示の可否は、ポップアップ系によく用いられますので、上記のような 許可が実際にあるかどうかは不明ですが、すべてのモードのOR条件での結合になります。
      パラメータ:
      other - ロールモード
      戻り値:
      アクセスビット
      変更履歴:
      4.3.0.0 (2008/07/04) ロールモードマルチ対応
    • getModeErrMsg

      RoleMode 構築時に発生したエラーメッセージを返します。 エラーがない場合は、null を返します。
      戻り値:
      エラーメッセージ(正常時は、null)
      変更履歴:
      8.4.0.0 (2023/01/31) RoleMode でthrow しても、インスタンスは生成する。
    • isMenu

      public static boolean isMenu(byte bitMode)
      ビットロールのメニュー表示可否を返します。 ロールが、m## , p## の場合に、true になります。 これは、メニューに表示されるかどうかの判定に使われます。
      パラメータ:
      bitMode - ビットロール
      戻り値:
      メニュー表示できる(true)/出来ない(false)
    • isPulldown

      public static boolean isPulldown(byte bitMode)
      ビットロールのプルダウン化を返します。 ロールが、p## の場合に、true になります。 ボタンメニュー時でも強制的に従来のプルダウンにします。 今後は廃止の方向です。
      パラメータ:
      bitMode - ビットロール
      戻り値:
      true:プルダウン化
      変更履歴:
      4.3.3.0 (2008/10/01) メソッド追加
    • isRead

      public static boolean isRead(byte bitMode)
      ビットロールの読込アクセス可否を返します。 ロールが、#r# , #w# の場合に、true になります。 読み取り属性がある場合、画面が利用可能になります。 #-# の場合は、画面へのアクセスができないため、 メニューアクセス許可を与える、m-# の設定は無意味です。 この場合は、メニューにも表示されません。
      パラメータ:
      bitMode - ビットロール
      戻り値:
      読込アクセスできる(true)/出来ない(false)
    • isWrite

      public static boolean isWrite(byte bitMode)
      ビットロールの書込アクセス可否を返します。 ロールが、#w# の場合に、true になります。 これは、読込、書込みの判断ではなく、書込みができるか どうかの判断をしています。 画面にアクセスできるかどうかの判断は、isAccess を使用してください。
      パラメータ:
      bitMode - ビットロール
      戻り値:
      書込アクセスできる(true)/出来ない(false)
    • isAccess

      public static boolean isAccess(byte bitMode)
      ビットロールの画面アクセス可否を返します。 これは、画面にアクセスできるかどうかの判断です。 ロールが、#r# , #w# の場合に、true になります。 現時点では、isRead(byte) と計算方法は異なりますが、同じ結果になっています。 これは、たまたま、現時点のロールの種類がそうなっているだけで、将来的に 同じかどうかは、保障されていません。 よって、読み取り許可と、画面アクセス許可は、分けて考えてください。
      パラメータ:
      bitMode - ビットロール
      戻り値:
      画面アクセスできる(true)/出来ない(false)
    • isDownload

      public static boolean isDownload(byte bitMode)
      ビットロールのファイル出力可否を返します。 ロールが、##d , ##f , ##o , ##e(= ##) の場合に、true になります。 ##u の場合に、false になります。 ファイル出力の可否を判定します。 ## は、互換性の関係で、##e と同じです。
      パラメータ:
      bitMode - ビットロール
      戻り値:
      ファイル出力できる(true)/出来ない(false)
    • isUpload

      public static boolean isUpload(byte bitMode)
      ビットロールのファイル入力可否を返します。 ロールが、##u , ##f , ##o , ##e(= ##) の場合に、true になります。 ##d の場合に、false になります。 ファイル入力の可否を判定します。 ## は、互換性の関係で、##e と同じです。 ダウンロードはさせないが、アップロードを行う場合に使います。 ここでのアップロードとは、基本的にデータの取り込みになりますので、 アップロードのみという扱いは、あまりありません。
      パラメータ:
      bitMode - ビットロール
      戻り値:
      ファイル入力できる(true)/出来ない(false)
    • isEdit

      public static boolean isEdit(byte bitMode)
      ビットロールの画面編集可否を返します。 ロールが、##o , ##e(= ##) の場合に、true になります。 このビットロールだけ特殊で、フラグが ON の場合に、機能制限がかかります。
      パラメータ:
      bitMode - ビットロール
      戻り値:
      アクセスできる(true)/出来ない(false)
      変更履歴:
      5.4.2.0 (2011/12/01) 新規作成, 5.5.5.2 (2012/08/10) oモード追加に伴い変更
    • isFullEdit

      public static boolean isFullEdit(byte bitMode)
      ビットロールの画面編集のフルコントロール可否を返します。 ロールが、##e(= ##) の場合に、true になります。 これは、フルコントロールの状態を指します。
      パラメータ:
      bitMode - ビットロール
      戻り値:
      アクセスできる(true)/出来ない(false)
      変更履歴:
      5.5.5.2 (2012/08/10) 新規作成
    • toString

      public String toString()
      オブジェクトの識別子として、詳細なユーザー情報を返します。
      オーバーライド:
      toString クラス内 Object
      戻り値:
      詳細な画面情報
      このメソッドは、nullを返しません