ワークフロー参加者の管理

ワークフロー参加者管理には、ユーザ管理・組織管理・権限管理があります。

Nauticaは、ワークフロー参加者管理に関して、エンジンとのインタフェースを定義しています。 このインタフェースの具体実装を用意することで、任意のワークフロー参加者管理システムを利用できます。

ワークフロー参加者管理は、以下のプロパティにユーザ管理・組織管理・権限管理の具体実装クラスを指定する必要があります。

  • nautica.userManager
  • nautica.organizationManager
  • nautica.roleManager
インタフェース

Nauticaは、ワークフロー参加者管理に関して、以下のインタフェースを定義しています。

インタフェースAPI機能
jp.co.argo21.nautica.workflow.security.
UserManager
getUser(String uid)指定されたユーザIDのユーザを取得
jp.co.argo21.nautica.workflow.security.
OrganizationManager
getOrganization(String oid)指定された組織IDの組織を取得
getAssignedUser(Organization org)指定された組織に属するユーザ一覧を取得
getOrganizationByUser(User user)指定されたユーザの属する組織一覧を取得
getHigherOrganization(Organization org)指定された組織の上位組織を取得
jp.co.argo21.nautica.workflow.security.
RoleManager
getRole(String rid)指定された権限IDの権限を取得
getAttachedRoles(Organization org)指定された組織の権限一覧を取得
getAttachedRoles(User user)指定されたユーザの権限一覧を取得
getOrganizationsByRole(Role role)指定された権限を持つユーザ一覧を取得
getUsersByRole(Role role)指定された権限を持つ組織一覧を取得

詳細は、Javadocをご覧ください。

参考実装

Nauticaは、ワークフロー参加者管理に関するインタフェースの参考実装として、以下のクラスを提供しています。 各クラスの詳細は、Javadocをご覧ください。

クラス説明
jp.co.argo21.nautica.workflow.security.simple.SimpleUserManagerユーザ管理の参考実装
jp.co.argo21.nautica.workflow.security.simple.SimpleOrganizationManager組織管理の参考実装
jp.co.argo21.nautica.workflow.security.simple.SimpleRoleManager権限管理の参考実装

この参考実装を使用する場合、各プロパティの設定は以下のようになります。

nautica.workflow.userManager
=jp.co.argo21.nautica.workflow.security.simple.SimpleUserManager
nautica.workflow.organizationManager
=jp.co.argo21.nautica.workflow.security.simple.SimpleOrganizationManager
nautica.workflow.roleManager
=jp.co.argo21.nautica.workflow.security.simple.SimpleRoleManager

この参考実装では、データベースを使用してワークフロー参加者管理を行っています。 具体実装を用意することで、任意のデータソースを用いたワークフロー参加者管理を行うことが可能です。

エンジン外部からの呼び出し

Nauticaは、エンジン外部からの呼び出しを想定し、以下のリモートインタフェースとその具体実装クラスを提供しています。 詳細は、Javadocをご覧ください。

  • リモートインタフェース
    • jp.co.argo21.nautica.workflow.security.simple.UserManagerRemote
    • jp.co.argo21.nautica.workflow.security.simple.OrganizationManagerRemote
    • jp.co.argo21.nautica.workflow.security.simple.RoleManagerRemote

  • 具体実装クラス
    • jp.co.argo21.nautica.workflow.security.simple.UserManagerPO
    • jp.co.argo21.nautica.workflow.security.simple.OrganizationManagerPO
    • jp.co.argo21.nautica.workflow.security.simple.RoleManagerPO

Nauticaは、jp.co.argo21.nautica.workflow.security.XxxxManager (ワークフロー参加者管理とエンジンとのインタフェース)を拡張した、 以下のインタフェースを提供しています。 これは、将来、外部から呼び出されるAPIが追加された場合に、 外部から呼び出されるAPIとエンジン内部で使用されるAPIを分離するためです。 Nauticaが提供する参考実装は、このインタフェースを実装しています。

  • インタフェース
    • jp.co.argo21.nautica.workflow.security.simple.UserManager
    • jp.co.argo21.nautica.workflow.security.simple.OrganizationManager
    • jp.co.argo21.nautica.workflow.security.simple.RoleManager