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



# 실행 메뉴의 확장

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

#### **사용자 메뉴리스트**

**[![image.png](https://manual.dabory.com/uploads/images/gallery/2024-05/scaled-1680-/5mMimage.png)](https://manual.dabory.com/uploads/images/gallery/2024-05/5mMimage.png)**

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

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

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

[![image.png](https://manual.dabory.com/uploads/images/gallery/2024-05/scaled-1680-/O6cimage.png)](https://manual.dabory.com/uploads/images/gallery/2024-05/O6cimage.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](https://manual.dabory.com/uploads/images/gallery/2024-05/scaled-1680-/FDHimage.png)](https://manual.dabory.com/uploads/images/gallery/2024-05/FDHimage.png)

- **user-menu-input value 설명**

<div id="bkmrk-%22c1%22%3A-%22%EB%A9%94%EB%89%B4%EC%BD%94%EB%93%9C%22%C2%A0-%C2%A0-%C2%A0-%C2%A0-"><div>"C1": "메뉴코드" -&gt; 메뉴의 고유한 식별코드입니다. 계층형 구조로 되어있습니다.</div><div>"C2": "메뉴명" -&gt; 메뉴의 이름입니다.</div><div>"C3": "페이지URL" -&gt; 해당 메뉴 클릭시 연결되는 url주소입니다. /dabory/erp/ 이후경로부터 작성합니다.</div><div>"C4": "파라메터명" -&gt; 해당 메뉴의 파라미터 경로에 있는 json 파일명을 의미합니다.</div><div>"C5": "테마폴더" -&gt; 해당 업체에 적용된 테마폴더의 위치를 의미합니다.</div><div>"C6": "메뉴스킵" -&gt; 메뉴표시 누락과 매칭되며 </div><div>"C7": "아이콘" -&gt; 아이콘 파일의 파일명을 의미합니다.</div><div> "C8": "좌측메뉴" -&gt; 체크시 좌측메뉴에 노출이 비활성화됩니다.</div><div>"C9": "우측메뉴" -&gt; 체크시 우측메뉴에 노출이 활성화됩니다.</div><div>"C10": "매뉴얼URL" -&gt; </div><div>"C11": "MainApp" -&gt; </div><div>"C12": "GuestApp" -&gt; </div><div>  
</div></div>**user-menu-input** 파라미터를 통해 사용자메뉴를 추가하고 삭제하고 수정할 수 있습니다

<span style="color: rgb(241, 196, 15);">**\* 사용자메뉴를 추가할 경우**</span>

**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](https://manual.dabory.com/uploads/images/gallery/2024-05/scaled-1680-/AN2image.png)](https://manual.dabory.com/uploads/images/gallery/2024-05/AN2image.png)

- **user-menu-input value 설명**

<div id="bkmrk-%22formvars%22%3A-%5B-%C2%A0-%C2%A0-%C2%A0-"><div>"FormVars": [</div><div> {</div><div> "FilterOption": "검색 조건", -&gt; 특정 컬럼으로 검색합니다.</div><div> "SimpleOption": "상태별 검색" -&gt; 특정 상태컬럼으로 검색합니다.</div><div> }</div><div>  
</div></div><div id="bkmrk-%22filterselectoptions"><div>"FilterSelectOptions": [</div><div> {</div><div> "Value": "",</div><div> "Caption": "=검색 조건="</div><div> },</div><div> {</div><div> "Value": "mx.menu_code",</div><div> "Caption": "메뉴코드"</div><div> },</div><div> {</div><div> "Value": "mx.menu_lang0",</div><div> "Caption": "메뉴명"</div><div> },</div><div> {</div><div> "Value": "mx.page_uri",</div><div> "Caption": "페이지 URL"</div><div> },</div><div> {</div><div> "Value": "mx.para_name",</div><div> "Caption": "파라메터명"</div><div> }</div><div> ],</div><div>  
</div></div><div id="bkmrk-%22simpleselectoptions"><div><div>"SimpleSelectOptions": [</div><div> {</div><div> "Value": "",</div><div> "Caption": "전체"</div><div> },</div><div> {</div><div> "Value": "mx.is_skipped='1'",</div><div> "Caption": "메뉴스킵"</div><div> }</div><div> ],</div></div></div><div id="bkmrk-%EC%82%AC%EC%9A%A9%EC%9E%90%EA%B0%80-formvars%5B%27filte">사용자가 FormVars['FilterOption'] 혹은 FormVars['SimpleOption']을 통해</div><div id="bkmrk-filterselectoptions%5B">FilterSelectOptions['Caption']이나 SimpleSelectOptions['Caption']을 선택하면 </div><div id="bkmrk-filterselectoptions%5B-1">FilterSelectOptions['value'], SimpleSelectOptions['value'] 값을 통해 쿼리가 추가되어 검색결과가 출력됩니다.</div><div id="bkmrk-"></div><div id="bkmrk-%EC%9C%84-%ED%8C%8C%EB%9D%BC%EB%A9%94%ED%84%B0%EC%9D%98-value%EA%B0%92%EC%9D%84-%ED%86%B5%ED%95%B4-%EB%8B%A4">위 파라메터의 value값을 통해 다양한 검색조건, 상태별 검색이 가능합니다.</div><div id="bkmrk--6"></div>**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](https://manual.dabory.com/uploads/images/gallery/2024-05/scaled-1680-/5qkimage.png)](https://manual.dabory.com/uploads/images/gallery/2024-05/5qkimage.png)

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

[![image.png](https://manual.dabory.com/uploads/images/gallery/2024-05/scaled-1680-/m7limage.png)](https://manual.dabory.com/uploads/images/gallery/2024-05/m7limage.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](https://manual.dabory.com/uploads/images/gallery/2024-05/scaled-1680-/umWimage.png)](https://manual.dabory.com/uploads/images/gallery/2024-05/umWimage.png)

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