본문 바로가기
Mendix Intermidiate

멘딕스Mid / 고급 페이지 작성으로 앱 만들기 : 브랜딩(Branding) 2. Expenses (45)

by share97 2024. 6. 21.
728x90

로그인 페이지 설정

1. App Security에서 Anonymous라는 새 사용자 역할을 만듭니다.

 

 

 

2. 리소스 폴더에 새 레이아웃 제작 > 이름 Atlas_Login (하는 이유: 로그인 페이지가 메뉴 표시줄을 표시하지 않고 전체 너비 페이지가 될 수있습니다.)

 

3. Expenses 모듈 안에 Anonymous Users(익명 사용자) 폴더 > Login 페이지 제작 (이름: Login / layout: Atlas_Login / 템플릿: 양식 로그인(양식 내) ) 

 

 

4. 네비게이션 탭에서  Hom pages (처음 멘딕스 앱을 실행 시켰을 때 보이는 홈 페이지를 설정하는 곳 입니다.)

Authentication(인증) <= 이 부분은 인증을 담당하는 부분 같습니다. (sign-in page) 등록 페이지를 아래와 같이 설정.

 

(로그인 권한도 빠짐없이 부여해야 합니다. / 관리자, 요청자, 승인자) (로그인은 모두 할 것 이기 때문에(Anonymous 제외))

 

 ===========================================================================================

 

로그인 페이지 디자인 

(기본적으로 멘딕스 내부에서 제공하는 로그인 템플릿을 사용 목적에 맞게 수정하는 내용입니다.)

 

기본 제공하는 로그인 템플릿 부분에서 필요에 맞게 내부 사진이나, 버튼 스타일, Text 입력 내용 등을 수정하면 됩니다.

 

버튼 스타일 같은 경우 Common 부분 Class에 지정이 가능합니다.

(version 10.10에서 버튼의 경우 properity 쪽에 색, 모양 등 바로 나오긴 하지만 안나오는 경우도 있는데 Common쪽에 버튼 스타일을 지정해 줬더니 나온 경우도 있었습니다.)

 

 

============================================================================================익명 사용자의 등록 허용

 

익명 사용자는 어떤 데이터도 액세스 할 수 없는 조건 (조건 부 페이지 show.)

(페이지 마다 권한 부여 설정이 있는데 계정에 따라, 다르게 부여 할 수 있습니다. security / page access 부분.)

 

 

1. 멘딕스에서 나온 예시는 직원만 가입할 수 있도록 만들어 놓았기 때문에

직원만 가입 할 수 있도록 하는 메커니즘 + 회원 가입 후 로그인 할 수 있는 로그인 페이지로 돌아가는 메커니즘 

 

 

 

 

 

 

1-1. Anonymous Users 폴더에 Microflows 하위 폴더 생성. 

 

 

1-2. Domain에 Registration (등록) 엔터티 추가. 

아래 사진과 같이 작성 (모두 String(200), 디폴트 x, 다른 조건 x )

 

엔터티 색이 노란색인 이유 : 아래 Properties에서 Persistable을 none으로 설정 했기 때문입니다.

(이 기능의 역할은 Object가 DataBase에 계정으로 저장 되기 전 Object로 복사 된다는 소리 입니다.)

(쉽게 말해서 DB에 영구 저장을 안하겠다고 설정하면 엔터티 색이 노란색으로 표시됩니다.)

 

(처음 가입 하는 사람 = 익명 사용자, 계정을 생성해야 하니 Create: yes / Delete: no => 삭제가 가능하면 다른 익명 사용자것도 삭제가 가능하기 때문에 이렇게 지정했다. 라고 이해했습니다.)

 

계정 등록 (자신의 정보를 입력, 저장 할때, 읽고 쓰기가 가능하니 Full Read, Full Write라고 생각하면 됩니다.)

 

 

2. 다시 로그인 페이지로 돌아가서

 

(이쪽을 만드는 겁니다! 처음 익명 사용자로 계정 과정)

 

Layout Grid => Class: spacing-inner-large로 설정.

 

 

 

  (회원 가입도 버튼으로 만들었고, Render mode (그려주는 모드 같습니다. 버튼으로 표시할 지 , 캡션의 링크 형식으로 보여질 지 표시.))

 

회원 가입 부분 Create object 로 설정 => 위 도메인 부분에서 만든 Registration(등록) 엔터티에 오브젝트(계정)을 복제? 찍어내? 저장 할 것이니 이벤트는 Create Object로 설정 = > Entity(Path)는 Registration => On click page는 등록할 때 정보를 기입 하는 페이지로 이동하도록 설정해 놓았습니다. 

 

Registraion_New 페이지

(1. 이 페이지는 회원가입 양식을 담당하는 페이지인데 멘딕스에서 Form 형식이 기본 제공 되어 있습니다.)

(2. 기억 상으로는 (엔터티)자동 연결 시 엔터티 속성(attribute) 값에 맞게 자동으로 양식이 제공 되는 것으로 기억합니다.)

 

 

(항상 페이지를 만들면 그 페이지를 누가 볼 수 있는 지 권한을 부여 해야 오류가 안납니다. / 멘딕스 사용 중 가장 많이 발생 했던 오류 중 하나는 페이지 접근 권한을 아무도 안준 것 입니다. (아무도 접근 할 수 없는 페이지는 존재 의미가 없기 때문이라고 생각.))

 

 

 

show as password 부분은 나중에 Edit 창에 사용자가 값을 입력 했을 때 비밀 번호 형식처럼 마스킹 처리 되는 기능을 합니다. 

 

 

계정 생성 버튼 마이크로 플로우 

 

1. 계정 생성 마이크로 플로우 이름을 ACT_Registration_CreateTeamMember로 생성. 

Anonymous User 폴더 Microflows 폴더에 저장 (익명 사용자에게 마이크로 사용자 권한 부여)

 

 

분석: 첫번째 결정자에 있는 내용

$표시는 오브젝트 명 /는 안에 어트리뷰트 값

등록 엔터티 비번 어트리뷰트 값 = 등록 엔터티 비번 확인 어트리뷰트 값이 같은지 => 거짓일 경우 

 

아래 로직을 따라 감.

 

retrieve(검색) => 엔터티는 아래 (system.domain) 멘딕스 기본 모듈에 적용 된 것과 같으며, security에서 부여한 것입니다.

Range 'first'는 무슨 형식으로 찾을 지를 나타 냅니다. 1개씩 값을 가져 올지 or list 형태로 가져 올지.

Xpath = [id= '[%UserRole_Requestor%]'] 

시스템 도메인 모델 UserRole