2011년 12월 18일 일요일

Team Process - 오퍼레이션 권한 결정

출처 : http://jazz.net/library/article/291
Process permissions lookup in RTC 2.0

사용자가 프로세스 활용 오퍼레이션을 수행할 때는, 사용자가 시도하는 조치를 수행하도록 허용되는 지를 알아야 합니다. 프로세스에 친숙한 째즈 사용자는 사용자에게 지정된 역할오퍼레이션을 지배하는 프로세스 영역오퍼레이션이 수행되는 시점에 따라 허가 여부를 계산하고 있음을 알고 있습니다. 하지만 이런 요소들이 정확이 어떻게 조합되어 사용자에 대한 허가 여부를 결정하는 것일 까요?


먼저, 허가에 대한 간단한 소개를 합니다 : 
모든 역할은 역할에 부여된 허가만을 갖습니다. 한 곳에서 특정 역할에 부여된 해당 오퍼레이션을 수행할 수 있는 허가라 하더라도, 다른 곳에서는 해당 오퍼레이션에 대한 허가를 부여하지 않을 수 있습니다(XML로 표현하면, 해당 오퍼레이션 블록에 하위 "action" 요소를 제거함).  따라서 프로세스 런타임이 허가 여부를 체크할 때는, 기본적으로 XML 요소를 검색하여 사용자에게 허가된 목록을 알아내고, 사용자가 수행할려고 하는 조치 목록을 비교함으로 알 수 있습니다.


프로세스 허가 검색과정은 오퍼레이션 행위 판정에 기술된 내용과 거의 똑같습니다. 일단 오퍼레이션 동작 검색 방법을 이해하게 되면, 허가 검색 과정도 거의 이해할 수 있습니다. 허가 검색과 동작 검색 간의 핵심적인 차이점은, 동작은 XML로 부터 하나의 "오퍼레이션 동작 구성"를 선택한다면, 허가는 잠재적으로 복수의 "오퍼레이션 허가 구성"을 각각의 사용자 역할에 대해 선택한다는 점입니다. 결과적으로 사용자는 각 역할에 부여된 허가를 (모두) 보유하게 됩니다.


다음 예제 시나리오를 살펴보죠 : 
여러분의 팀은 role 1 만이 action A를 수행할 수 있고, role 2 만이 action B를 수행할 수 있도록 구성했습니다. 만약 어떤 사용자에게 role 1과 role 2를 지정했고, action A와 action B를 수행할려고 한다면, 모두 수행할 수 있습니다. 그 까닭은 프로세스 런타임은 먼저 role 1에 대한 구성 정보(action A 수행을 허가함)을 얻고, 다음에는 role 2에 대한 구성 정보(action B 수행을 허가함)를 얻고, 두가지 action에 대해 판단을 한 다음, 해당 오퍼레이션이 수행되도록 허락을 합니다.

댓글 없음:

댓글 쓰기