워드프레스 팀블로그에서 관리자 아래 계정에 권한 문제가 생겼을 때 (다음뷰 플러그인)

관리자 계정으로 접속하면 아무 문제가 없는데 관리자 바로 아래 등급인 편집자 계정부터는 로그인을 했을 때, 글을 추가하려 할 때, 글을 편집하려 할 때 등에 “이 페이지에 접근할 권한이 없습니다.” 라는 메시지가 뜨며 아무런 활동을 할 수 없는 증상이 발생하는 경우가 있습니다.

여러가지 알려진 증상이 있지만, 아무리 살펴봐도 도저히 DB 문제도 아닌 듯하고 알 수 없는 증상이라면 혹시 qnibus님이 만든 DaumView 1.6 또는 그 아래 버전 플러그인이 설치되어 있지는 않은지 확인해보세요. 만약 그렇다면, 플러그인을 비활성화하면 문제가 해결되는 것을 볼 수 있을 것입니다. 플러그인을 비활성화하는 것이 곤란하다면 이 글을 좀더 읽어보시면 다른 해결방법이 있습니다.

이 문제는 142째 줄에 있는 아래 함수에서 일어납니다. 관리자 이외의 계정이 대시보드에 접근하는 것을 예기치 않게 차단하고 있습니다.

function register_submenu_page() {
  if ( ! current_user_can( 'manage_options' ) )  {
    wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
  }
  add_submenu_page( 'options-general.php', 'DaumView', 'DaumView', 'manage_options', basename(__FILE__), array( &$this, 'display_submenu_page' ) );
}

플러그인 편집 메뉴에 들어가 해당 함수를 아래와 같이 바꿔 주면 플러그인을 그대로 쓰면서도 문제를 해결할 수 있습니다.

function register_submenu_page() {
  if ( is_admin() )
    add_submenu_page( 'options-general.php', 'DaumView', 'DaumView', 'manage_options', basename(__FILE__), array( &$this, 'display_submenu_page' ) );
}

이 문제는 발견 즉시 개발자 qnibus님에게 보고하였습니다.

PS: qnibus님 블로그에 댓글이 제대로 달리지 않아 3/6/2014 1:11 PM에 다시 보고하였습니다.

광고

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중