5장. 실행 메뉴와 권한 관리

실행 메뉴의 확장

다보리 컴포저블에서 사용자 메뉴를 확장하고 수정할 수 있습니다.

사용자 메뉴리스트

image.png

erp 페이지 좌측에 사용자 메뉴리스트입니다. 로그인한 사용자의 권한에 따라, 설정에 따라 사용가능한 모든 메뉴가 노출됩니다.

모든 메뉴는 고유식별 코드인 메뉴코드가 존재하며 부모메뉴 - 자식메뉴와 같이 계층형으로 구성되어 있습니다.

좌측메뉴를 제어하기 위해서 '메뉴 확장과 API 관리' - '사용자 메뉴'로 가면

image.png

해당 앱에서 생성된 모든 메뉴 레코드가 출력됩니다.

여기서 메뉴정보들은 bpa 변수 안에 암호화되어 반환되고 테마폴더의 경로 + bpa를 통해 해당 메뉴에 접근할 수 있습니다.

우측 상단에 보이는 조회 버튼 옆에 화살표 버튼 클릭시 메뉴 레코드의 데이터를 제어할 수 있습니다.

Component : /views/components/nav-side-bar-component

Parameter : /dabory/para/erp/ko_KR/list/list-typ1/user-menu-input

Query_name : user-menu-input

사용자 메뉴의 수정 / 추가 / 삭제

image.png

"C1": "메뉴코드"        -> 메뉴의 고유한 식별코드입니다. 계층형 구조로 되어있습니다.
"C2": "메뉴명"            -> 메뉴의 이름입니다.
"C3": "페이지URL"     -> 해당 메뉴 클릭시 연결되는 url주소입니다. /dabory/erp/ 이후경로부터 작성합니다.
"C4": "파라메터명"    -> 해당 메뉴의 파라미터 경로에 있는 json 파일명을 의미합니다.
"C5": "테마폴더"        -> 해당 업체에 적용된 테마폴더의 위치를 의미합니다.
"C6": "메뉴스킵"        -> 메뉴표시 누락과 매칭되며 
"C7": "아이콘"            -> 아이콘 파일의 파일명을 의미합니다.
 "C8": "좌측메뉴"       -> 체크시 좌측메뉴에 노출이 비활성화됩니다.
"C9": "우측메뉴"        -> 체크시 우측메뉴에 노출이 활성화됩니다.
"C10": "매뉴얼URL"   -> 
"C11": "MainApp"      -> 
"C12": "GuestApp"     -> 

user-menu-input 파라미터를 통해 사용자메뉴를 추가하고 삭제하고 수정할 수 있습니다

* 사용자메뉴를 추가할 경우

1. 메뉴코드 확인

사용자 메뉴리스트에서 메뉴코드를 확인하고 추가할 메뉴의 메뉴코드가 들어갈 위치를 확인합니다.

사용자 메뉴는 parent(최상위 메뉴) - child(하위메뉴) - second chlid(두번째 하위메뉴) - third child(세번째 하위메뉴) ...

위와 같은 계층형 구조로 이루어져 있습니다. parent 의 메뉴코드가 010000이라면 child의 메뉴코드는 01로 시작합니다.

또 child의 메뉴코드가 011000이라면 second chlid의 메뉴코드는 011로 시작합니다.

이런식으로 반복하며 사용자 메뉴가 출력되기 때문에 메뉴코드를 확인하고 생성해야 합니다.

2. 테마폴더 / sort_type 지정

현재 사용하고 있는 테마의 디렉토리와 sort_type을 확인하여 input에 입력해야 합니다.

sort_type은 해당 업체의 db마다 다르기 때문에 dbr_sort_menu에서 확인이 가능합니다.

3. saveBtn을 통해 db에 저장됐다면 erp header에 캐시삭제를 통해 캐시를 삭제해주어야 웹상에 반영이 됩니다.

만약 좌측메뉴에 노출이 안된다면 아래와 같은 원인이 있을 수 있습니다.

  1. 캐시가 남아있을 경우
  2. 테마경로를 잘못 입력
  3. is_use, is_skipp 등의 컬럼값이 잘못 체크

Component : views/front/dabory/erp/list-type/type1

Parameter : /dabory/para/erp/ko_KR_list/popup/popup-form1/form-a/user-menu-input

Query_name : menu-perm/user

사용자 메뉴의 검색

image.png

"FormVars": [
        {
            "FilterOption": "검색 조건",          -> 특정 컬럼으로 검색합니다.
            "SimpleOption": "상태별 검색"    -> 특정 상태컬럼으로 검색합니다.
        }

"FilterSelectOptions": [
        {
            "Value": "",
            "Caption": "=검색 조건="
        },
        {
            "Value": "mx.menu_code",
            "Caption": "메뉴코드"
        },
        {
            "Value": "mx.menu_lang0",
            "Caption": "메뉴명"
        },
        {
            "Value": "mx.page_uri",
            "Caption": "페이지 URL"
        },
        {
            "Value": "mx.para_name",
            "Caption": "파라메터명"
        }
    ],

"SimpleSelectOptions": [
        {
            "Value": "",
            "Caption": "전체"
        },
        {
            "Value": "mx.is_skipped='1'",
            "Caption": "메뉴스킵"
        }
    ],
사용자가 FormVars['FilterOption'] 혹은  FormVars['SimpleOption']을 통해
FilterSelectOptions['Caption']이나 SimpleSelectOptions['Caption']을 선택하면 
FilterSelectOptions['value'], SimpleSelectOptions['value'] 값을 통해 쿼리가 추가되어 검색결과가 출력됩니다.
위 파라메터의 value값을 통해 다양한 검색조건, 상태별 검색이 가능합니다.

Component : views/front/dabory/erp/list-type/type1

Parameter : /dabory/para/erp/ko_KR_list/popup/popup-form1/form-a/user-menu-input

Query_name : menu-perm/user


실행메뉴의 권한관리

사용자 메뉴별 유저의 권한을 설정할 수 있습니다.

image.png

녹색 바탕의 흰색 폴더 버튼을 클릭하게 되면 사용자 메뉴조회 popup이 나타납니다.

image.png

사용자의 권한별 권한 정보를 확인할 수 있으며 특정 권한번호를 클릭하게 되면 해당 사용권한에서 사용할 수 있는 사용자메뉴가 출력됩니다.

Component : /views/front/dabory/erp/perm/user-perm

Parameter : /dabory/para/erp/ko_KR/form/form-b/user-menu-perm

Query_name : user-menu-perm

이 Component에서 사용자별 메뉴의 상태값들을 수정할 수 있고 사용자메뉴에서 추가한 새로운 메뉴를 적용할 수 있습니다.

image.png

"BodySelectOptions": [
        {
            "Value": "multi-update",
            "Caption": "체크/언체크 적용",    -> 체크한 상태값의 변경사항을 반영합니다.
            "Parameter": ""
        },
        {
            "Value": "multi-delete",
            "Caption": "일부 항목 제거",        -> 체크한 특정 항목을 삭제합니다.
            "Parameter": ""
        },
        {
            "Value": "all-checked",
            "Caption": "권한 전체 체크",        -> all check
            "Parameter": ""
        },
        {
            "Value": "all-unchecked",
            "Caption": "권한 전체 언체크",    -> all uncheck
            "Parameter": ""
        },
        {
            "Value": "all-create",
            "Caption": "항목 전체 생성",        -> 추가한 사용자 메뉴를 user_menu_perm에서 불러옵니다.
            "Parameter": ""
        },
        {
            "Value": "all-delete",
            "Caption": "항목 전체 삭제",        -> 
            "Parameter": ""
        }
    ],