OutSystems - 6 영화 관리 프로그램(Access Logic)

졍잉·2025년 1월 24일
post-thumbnail

Access Logic

  1. Authentication (인증)
  • 어플리케이션에 액세스하는 사람 →Anonymous 설정을 해제해주고 Registered를 체크(로그인한 사용자만 접근 가능)
    • 기본 제공 역할 : Anonymous / Registered
    • 사용자의 자격 증명 검증
  1. Authorization (인가)
  • 사용자가 작업을 실행할 수 있는지 확인
  • 사용자에게 필요한 권한이 부여되었는지 검증


이번에는 User의 Role에 따라 다르게 보여지는 화면을 구성해보려고 한다.

*Users 관리 방법

1. 톱니바퀴 버튼 클릭
2. OutSystems로 로그인
3. Factory → Modules → users 검색
4. Config Administrator user 버튼 클릭

User정보의 경우 Connect to another Envirenment를 통해 Your infrastructure를 확인할 수 있고,
https://~~(Your infrastructure)~~/Users/
로 접근하여 확인할 수 있다.


User 관리 페이지에 들어가면 현재 사이트에 가입된 회원의 List를 볼 수 있다.
나는 2명의 관리자를 만들고, 한명의 일반 User로 로그인하여 확인하기 위해 특정 계정에 비밀번호를 부여하였다.



그리고 ServiceStudio로 돌아와 Core Module에서 Admin의 Role인지 확인하는 Logic 하나를 Roles 폴더에서 생성하였다.

A. Admin이 아닌 사용자의 화면 액세스 제한

AddCastCrew의 경우에는 접근 자체를 막아버리는 로직이 필요했기 때문에 Core에서 가져온 Logic 중 CheckRole을 검증하도록 한 후, AdminRole이 아닐 경우에는 Exception을 발생시켜 오류 메세지가 나타나도록 하였다.
True일 경우에는 HasRole을 반환한 후 필요한 로직이 진행될 수 있도록 하였다.

B. Admin이 아닌 사용자의 입력 비활성화

일반유저 화면관리자 화면

Button의 경우에는 관리자만 AddCrew를 할 수 있도록 설정을 바꾸어주기로 한다.

기존에는 Enabled와 Visible 설정이 모두 True로 되어있었지만 설정을 만들어준 Logic과 연결하여 HasRole일 때에만 사용이 가능하고 버튼이 보이도록 수정한다.


설정에 If 조건문을 써주면 Flase일 경우 화면 자체에 접근할 수 없는 경우가 생겨버려서
중간에 조건문을 빼고 Role을 검증한 후에 Admin이 맞으면 HasRole을 출력하도록 로직을 수정하였고,
버튼의 조건에는 HasRole에 따라 버튼 설정이 다르게 나타날 수 있도록 하였다.

profile
군계일학으로 살아남기

0개의 댓글