본문 바로가기
Mendix Intermidiate

멘딕스Mid /XPath를 사용하여 데이터 제한(Constrain Your Data Using XPath) XPath를 사용하여 보안 규칙 설정2(Set a Security Rule Using XPath) 6.Vacation Tracking (28)

by share97 2024. 6. 5.
728x90

1. VactionManagement module에서

 

Module roles 추가 

 

2.  Entity access에서 

 

위에 규칙에 따라 접근권한을 준다.(Access rights)

 

3. XPath constraint(XPath 제약조건)에서 아래와 같이 식을 작성한다. (사용자)

 

VacationRequest 개체를 사용자 계정에 연결하는 연결을 선택 =>  VacationRequest.VacationRequest_Submitter =>  '[%CurrentUser%]' 변수와 동일하게 설정

XPath 제약 조건은 [VacationManagement.VacationRequest_Submitter='[%CurrentUser%]'] 확인 을 클릭

 


위에 식의 의미: DataBase에서 생성한 VacationManagement.VacationRequest_Submitter 연동계정을 현재사용자와 같을 때, 가져오겠다. 라는 제약조건을 사용한 것이라고 이해하면 쉽습니다.

(요청 제출자가 현재 사용자(로그인) 계정과 같으면)

 

 

4. XPath constraint(XPath 제약조건)에서 아래와 같이 식을 작성한다. (관리자, Manager)

 

Entity access tab에서 duplicate(복제) 탭 누르고 => module Manager로 변경, 

관리자는 자신이 승인자인 휴가 요청만 볼 수 있기를 바랍니다. 동일한 엔터티 액세스 탭에서 방금 생성한 사용자 액세스 규칙을 강조 표시하고 복제 버튼을 누릅니다. 휴가 요청 구성원에 대한 읽기 권한만 허용하도록 액세스 규칙을 변경하고, 모듈 역할을 Manager 로 설정하고 , XPath 제약 조건을 변경합니다. [VacationManagement.VacationRequest_Approver='[%CurrentUser%]']

 

위에 식의 의미: DataBase에서 생성한 VacationManagement.VacationRequest_Approver 연동계정을 현재사용자와 같을 때, 가져오겠다. 라는 제약조건을 사용한 것이라고 이해하면 쉽습니다.

(요청 승인자가 현재 사용자(로그인) 계정과 같으면) 

 

5. XPath constraint(XPath 제약조건)에서 아래와 같이 식을 작성한다. (운영자, Administrator)

 

운영자는 따로 제약조건을 볼 필요가 없다. (Manager가 관리자 라는 뜻이 있어서 편의 상 admin을 운영자 / manager라고 지칭 , 여기서는 manager가 휴가 관리자로 생각하면 되고 admin은 앱 총괄 담당자 라고 생각하면 편합니다.) 

 

3,4,5 제약 조건은 한마디로 정리하면 어느 Content까지 접근할 수 있는 지 권한 부여 입니다.  

 

6. 이후 Page Access와 Microflow Access도 Admin은 모두 가능하도록 설정해 줍니다.

 

모두 완료되면 

App status에 초록불이 들어옵니다. (Production 수준의 보안이 가능하다는 표시.)