Menu

MenuPerm

Anonymous

메뉴 권한의 메뉴 접근 대상 설정

http://code.google.com/p/xe-core/issues/detail?id=2363

권한 가져오기

권환 관련 반환 값 중 grant와 group 값을 사용. grant는 all, member, site, group 값을 가질 수 있음.

default

해당 모듈의 기본 값.

  • guest : 모든 옵션 사용 가능, 항상 권한 있음.
  • member : '모든 사용자' 제외하고 사용 가능, 로그인 정보가 있을 경우 true
  • site : '모든 사용자' 제외하고 사용 가능, 가상 사이트일 경우에는 가입된 그룹 정보가 있어야 하며, 가상 사이트가 아닐 경우에는 'member'와 동일.
  • manager : '선택그룹 사용자' 옵션만 사용가능, 관리자일 경우에만 true
  • root : manager와 동일.

grant

관리자가 설정하여 DB에 저장된 값.

  • 값이 없을 경우 : default 사용
  • 모든 사용자 : 'all' 인 경우
  • 로그인 사용자 : 'member'
  • 가입한 사용자 : 'site'
  • 선택그룹 사용자 : 'group'

group_srls

grant가 group일 경우 해당 되는 group_srl를 배열로 넘겨 줌.

* 메뉴 권한 관련 api 호출 예제
var params2 = new Array();
var response_tags2 = new Array('grantList');
params2['target_module'] = 'board';
params2['module_srl'] = '106';
exec_xml("module","getModuleAdminGrant", params2, completeTmp, response_tags2);

{
   "message_type":"",
   "grantList":{
      "access":{
         "title":"접근 권한",
         "default":"guest"
      },
      "list":{
         "title":"목록",
         "default":"guest"
      },
      "view":{
         "title":"열람",
         "default":"guest"
      },
      "write_document":{
         "title":"글 작성",
         "default":"guest",
         "grant":"group",
         "group_srls":{
             1, 2, 3
         }
      },
      "write_comment":{
         "title":"댓글 작성",
         "default":"guest",
         "grant":"member"
      },
      "manager":{
         "title":"관리 권한",
         "default":"manager"
      }
   },
   "error":0,
   "message":"success"
}

노출대상 가져오기

메뉴 노출 대상 설정은 다음과 같은 방법으로 사용. index.php?module=menu&menu_item_srl=메뉴번호&act=getMenuAdminItemInfo

보여 주어야 할 그룹 목록은 returnObj.groupList로 사용 가능. 선택된 그룹은 groupList.isChecked 값으로 확인.

grant

관리자가 설정하여 DB에 저장된 값.

  • 모든 사용자 : 값이 없을 경우
  • 로그인 사용자 : 'member'
  • 선택그룹 사용자 : 'group'

group_srls

grant가 group일 경우 해당 되는 group_srl를 배열로 넘겨 줌.

* 그룹 리스트 관련 api 호출 예제
var params = new Array();
var response_tags = new Array('menu_item');
params['menu_item_srl'] = '62';
exec_xml("menu","getMenuAdminItemInfo", params, completeTmp, response_tags);
{
   "message_type":"",
   "menu_item":{
      "grant":"group",
      "group_srls":[
          1, 2, 3
      ],
      "moduleType":"",
      "groupList":[
         {
            "group_srl":"1",
            "title":"관리그룹",
            "isChecked":false
         },
         {
            "group_srl":"2",
            "title":"준회원",
            "isChecked":false
         },
         {
            "group_srl":"3",
            "title":"정회원",
            "isChecked":false
         }
      ],
      "name_key":"",
      "name":""
   },
   "error":0,
   "message":"success"
}

권한 저장하기

권한 저장하기는 모듈의 권한과 노출권한 모두 한번에 저장합니다. 다음과 같은 방법으로 저장 가능합니다.

  • menu_item_srl : menu item의 일련 번호
  • exposure : 노출 타겟
    • 모든 사용자 : 값 없음.
    • 로그인 사용자 : -1
    • 선택 그룹 사용자 : 노출하고자 하는 메뉴가 선택 그룹 사용자일 경우 해당 변수에 group_srl을 배열로 담아 보내면 됨.
  • htPerm : 권한정보를 담은 Object
    • 권한이름 : 각 권한의 값
    • 로그인 사용자 : -1
    • 가입한 사용자 : -2
    • 모든 사용자 : 0
    • 선택 그룹 사용자일 경우 이 값에 group serial number를 배열로 전송

cf. 권한 이름의 경우 module conf에 정의된 권한 이외에 access, manager는 기본으로 들어가야 함. 따라서 해당 내용 역시 기본으로 전송이 되어야 함.

var params = {
    menu_item_srl : '41368',
    exposure : -1,
    htPerm : {
        'list' : -1,
        'write_document' : -1,
        'manager' : ['100', '200', '300']
    }
};
jQuery.exec_json("menu.procMenuAdminUpdateAuth", params, function(htData){console.log(htData);});
{
   "error":0,
   "message":"success"
}

Related

Wiki: ServerAPI

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.