일명 누리고 모듈-이라곤 하지만 실제로 동작하기 위해서는 여러가지 모듈 패키지로 이뤄져있습니다-을 사용하는데
추가로 관리자를 등록해주고 싶습니다.
특정 회원이 상품을 추가할 수 있도록 cympusadmin 모듈, nproduct 모듈에 관리자로 등록했지만,
상품 등록 버튼을 누르면 (접속주소 : index.php?mid=[nproduct모듈명]&act=dispNproductAdminInsertItem )
'요청한 기능을 실행할 수 있는 권한이 없습니다.'
라고 뜹니다.
그리고,
도메인/shopadmin 으로는 접속화면이 뜨지만
도메인/index.php?module=cympusadmin 으로 접속하면 위와 마찬가지 화면이 뜹니다.
cympusadmin 모듈의 class.php의 init 함수 등에 디버깅 코드를 심어봤지만 마찬가지라서
더 확인해보니,
classes/module/ModuleObject.class.php
cympusadmin 모듈에 접근하려면 위 파일의 setPrivileges() 함수가 먼저 체크해서 $grant
권한이 없어서 그런거 같더군요. 계속 확인해보니 이 부분은 아래 파일에서..
modules/cympusadmin/conf/module.xml
기존코드
<permissions>
<permission action="dispCympusadminAdminIndex" target="manager" />
</permissions>
변경된코드
<permissions>
<permission action="dispCympusadminAdminIndex" target="guest" />
<permission action="dispCympusadminAdminModInstList" target="guest" />
<permission action="dispCympusadminAdminInsertModInst" target="guest" />
</permissions>
이런 식으로 target과 action을 해당하는 모듈의 액션마다 지정을 해줘야 하는거 같더군요..
일단 이런 식으로 등록이 필요한 모듈에 원하는 액션값에 해당하는 타겟을 지정해주면 해결은 될 거 같습니다.
예를 들어, dispNproductAdminInsertItem 이 액션 권한을 얻으려면
해당 유저를 모듈 nproduct 모듈에서 아래와 같이 등록해주면 되는거 같더군요.
<permissions>
<permission action="dispNproductAdminInsertItem" target="manager" />
<permission action="procNproductAdminInsertItem" target="manager" />
<permission action="procNproductAdminInsertItemExtra" target="manager" />
</permissions>
글보기권한,글작성권한을 모두 지정해주어야 합니다.
target은 manager, guest만 있는거 같습니다. 그래서 모듈관리자인 경우에는 manager로 하면 됩니다.
이렇게 하면 상품등록도 설정한 관리자가 등록이 가능한 거 같더군요.