일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- reactor
- reactor core
- 웹 스터디
- spring reactive
- reactive
- 웹앱
- Spring Framework
- 서버운영
- ipTIME
- 웹 커리큘럼
- Spring Batch
- 공유기 서버
- Today
- Total
Hello World
워드프레스 유저 권한과 역할을 체크하기. 본문
워드프레스에서는 유저 권한(Capability)과 유저 역할(Role)을 구별해야 한다. 예를 들어 관리화면까지 가지 않고서도 포스트 페이지에서 간단히 포스트를 수정할 수 있는 기능을 만들었다고 하자. 그럼 그 기능을 사용할 수 있는 권한을 설정해야 한다. 만약 이걸 권한이 아니라 역할로 제한한다면 다소 불편하다. 예를 들어 타인의 글까지 수정할 수 있는 권한은 edit_others_posts이다. 그러나 이 기능을 Administrator에게만 허가한다면 edit_others_posts 권한을 지닌 Editor는 그 기능을 사용할 수 없게 된다.
그리고 Administrator 위에 Super Admin이 있음도 유의해두자. Super Admin은 멀티 사이트에서 모든 사이트와 네트워크 관리 권한까지 지닌 말 그대로 어드민 오브 어드민이다. 그러나 Administrator는 개별 사이트의 어드민을 말한다. 한 가지 권한을 예로 들어보면 manage_network 권한은 Super Admin 에게만 있고 Administrator에게는 없다.
그럼 이 권한을 체크하는 함수가 필요할 것이다. current_user_can이다.
if( !current_user_can( 'edit_others_posts' ) ) { wp_die( '안됩니다! 권한이 없습니다!' ); }
역할 체크도 가능하다. 그러나 다음과 같은 경우 editor는 가능하지만 editor보다 상위의 admin이 제한이 걸려버린다. 아마 이런 경우는 보통 원하지 않는다.
if( !current_user_can( 'editor' ) ) { wp_die( '당신은 편집자가 아닙니다.' ); }
권한을 기초로 어떤 기능을 제한하고 경고나 알림등을 표시해야하는 경우는 사이트 제작시 빈번하게 일어나는 일이다. 다음 링크를 꼭 확인바란다. 페이지 중간 쯤의 Capability vs. Role Table이다.
https://codex.wordpress.org/Roles_and_Capabilities
6개의 유저 역할과 각각의 등급에 따라 어떤 권한을 가지고 있는지를 확인할 수 있다. 약 70개 정도의 권한이 있으므로 한번 훑어보면 유익하다.
'Wordpress' 카테고리의 다른 글
[펌]워드프레스 플러그인 만들기 (0) | 2016.01.20 |
---|---|
[펌]워드프레스 한국형 게시판 – 3. 다섯 스킨 전투 (0) | 2016.01.11 |
[펌]워드프레스 한국형 게시판 – 2. KBOARD의 폐허 (0) | 2016.01.11 |
[펌]워드프레스 한국형 게시판 – 1. 뜻밖의 삽질 (0) | 2016.01.11 |