クラス 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モード追加
    機能分類
    リソース管理
    バージョン
    4.0
    作成者
    Kazuhiko Hasegawa
    導入されたバージョン:
    JDK5.0,
    • フィールドの概要

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

      すべてのメソッド staticメソッド インスタンス・メソッド concreteメソッド 
      修飾子とタイプ メソッド 説明
      byte getAccessBitMode​(RoleMode other)
      指定のユーザーロールに対する最終的なアクセス条件を取得します。
      String getMode()
      モード配列を返します。
      String getRoles()
      ロールズを返します。
      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 newInstance​(String roles)
      ロールとモードを元に、RoleModeオブジェクトを構築します。
      static RoleMode newInstance​(String roles, String mode)
      ロールとモードを元に、RoleModeオブジェクトを構築します。
      String toString()
      オブジェクトの識別子として,詳細なユーザー情報を返します。
    • メソッドの詳細

      • 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 で対応する。
        このメソッドは、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) ロールモードマルチ対応
      • 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を返しません