제목에 나와 있는 자료를 만든 적이 있는데요.

https://xetown.com/download/1666779

게시판 목록에서 모듈 관리자(게시판 관리자)에 한해 카테고리와 확장변수를 바로 수정할 수 있게 해주는 자료였습니다.

그러다 모듈 관리자뿐 아니라 문서 작성자도 바로 수정할 수 있게 하는 방법을 묻는 문의가 있어서 내용을 정리해서 공유해봅니다. ( @adlib님 )

 

1. ap_extra_update.addon.php 수정

- 13행의 조건문에서 && $this->grant->manager를 삭제해줍니다.

- 73행의 조건문에서 && Context::get('grant')->manager를 삭제해줍니다.

=> 이제 모든 사용자가 애드온의 적용을 받게 됩니다.

 

2. update_extra_vars.php 수정

- 12행~21행을 삭제합니다. 대신 다음의 소스를 넣습니다.

$oDocument = DocumentModel::getDocument(Context::get('document_srl'));
if ( !$oDocument->isGranted() )
{
    exit;
}

=> 이제부터는 (모듈 관리자가 아닌 경우가 아니라) 문서에 대한 권한이 없는 경우에 수정 커맨드를 거부하게 됩니다.

 

3. update.html 수정 (default 스킨 기준)

- 1행의 조건문에서 $grant->manager && 를 삭제해줍니다.

- 이제 게시판 관리자가 아닌 경우도 업데이트 모달 창을 열 수 있습니다.

 

4. 이번에는 게시판 스킨 목록 수정

- 이 애드온을 사용하려면 게시판 스킨에 수정이 있어야 했는데요.

- 기존에 이 애드온을 위해 수정했던 부분 중에서 onclick="showUpdateExtraModal(this ~~~ 라는 부분'들'에서

- $grant->manager를 $document->isGranted() 로 바꿔줍니다.

 

이상의 수정이 잘 이뤄졌다면 이제 모듈 관리자뿐 아니라 게시물 작성자도 목록에서 카테고리 및 확장변수를 바로 수정할 수 있을 겁니다.

윤삼

profile
아무래도 중급 초반 수준의 코딩 오타쿠인 것 같습니다.
  • Lv6
    역시 윤삼님 업데이트 대박입니다.
  • Lv12
    와ㅎㅎ이걸이제봤네 내일 적용해봐야겠네요!
  • Lv12

    해당팁의 2번을 반영하면

    $oDocument = DocumentModel::getDocument(Context::get('document_srl'));
    if ( !$oDocument->isGranted() )
    {
    exit;
    }

    ajax가 이상하게 작동합니다.

    실시간 반영되던것이 하나씩 밀립니다.

    새로고침 해보면 잘반영되어 있습니다.

     

     

    if문 다풀고

     

        $module_info = ModuleModel::getModuleInfoByModuleSrl($module_srl);
        $grant = ModuleModel::getGrant($module_info, $logged_info);


    로 반영하면 작동하기는 합니다만 권한 없는 회원이 남의 게시물을 막수정하고 다닐 수 있네요 ㅠ

  • Lv12

    ajax 새로고침 안되는 에러 동영상으로도 제보해 봅니다.