[권한구조에 대해 이해합시다]



홈요솔루션은 커뮤니티 사이트 뿐만 아니라 내부의 인트라넷을 개발 할 수 있을 정도의 폭넓은 권한구조를 갖추고 있습니다.
필요하실 때 마다 아래 매뉴얼을 참고하셔서 권한을 요리해 보세요~

<< 회원권한 >>

*. 총관리자
-. 회원, 페이지, 게시판, 게시물 정보를 포함한 모든 권한을 갖는 회원
-. 관리자 회원중 1명만 지정 할 수 있습니다.
-. 설정변경에서 총관리자 항목에 관리자 회원 중 하나의 아이디를 입력하여 지정합니다.
※ 솔루션 설치시 받은 ID 가 총관리자 ID 이므로 특별한 경우가 아니면 변경할 필요는 없습니다.
※ 총관리자 비밀번호 분실시 프로그램파일을 복구하는 데 비용이 발생합니다. 반드시 별도로 기록해두세요. 

권한구조1

 

권한구조2

 

*. 관리자
-. 관리자모드에 접근할 수 있는 권한을 갖는 회원

회원권한3

 

'관리자세부권한지정' 에서 각 코너에 맞는 버튼을 클릭하면 아래와 같은 상세설정을 할 수 있습니다.

-. 열람 : 관리자모드 각 메뉴의 목록과 상세정보를 열람할 수 있는 권한

-. 등록 : 관리자모드 각 메뉴에 정보를 등록할 수 있는 권한

-. 수정 : 관리자모드 각 메뉴의 정보를 수정할 수 있는 권한
-. 삭제 : 관리자모드 각 메뉴의 정보를 삭제할 수 있는 권한
※ 총관리자가 관리자회원을 추가할 때 업무범위에 맞는 권한을 따로 부여 해 주어야 합니다.
※ 주의 : 관리자회원은 기본적으로 게시물에 대한 어떤 권한도 없습니다.
 특정 관리자에게 모든 게시판의 게시물관리 권한을 주려면 '호스트'' 지정을 하시면 됩니다.
 게시판 마다 따로 권한을 지정하시려면 게시판관리에서 '운영자' 지정을 하시거나
 '게시판권한(읽기, 쓰기, 수정, 삭제, 답변, 파일다운로드)' 을 설정해 주시면 됩니다. (자세한 내용은 아래를 참고하세요)

*. 호스트
-. 모든 게시판의 게시물을 관리할 수 있는 권한을 갖는 관리자 회원 (모든 게시판에 '운영자' 권한을 지정한 것과 같은 지위)
-. 단, 게시판권한에서 '총관리자만' 으로 지정 되어 있는 경우는 권한을 갖지 못합니다.
-. 호스트는 여러명을 지정할 수 있으며 첫 번째 지정된 관리자가 대표호스트가 됩니다.
-. 쇼핑몰 주문알림에서 호스트 SMS/Email 에 체크하면 대표호스트에게 전송됩니다.
-. 대표호스트는 $host_info 변수에 세팅되니 필요할 경우 치환문자열을 통해 표현 하거나 프로그래밍시 활용 할 수 있습니다.
-. 설정변경에서 호스트 항목에 관리자회원의 아이디를 ; 로 구분 입력하여 지정합니다. (시작과 끝에도 ; 를 입력해야 합니다)

권한구조4

 

*. 사용자정의 회원레벨
-. 설정변경 -> 회원설정 -> '권한정의' 항목에서 레벨을 지정합니다.

 

 

-. 기본 권한은 99;비회원, 98;일반회원, 01;관리자 입니다.

-. 추가를 원하시면 98 ~ 02 사이의 숫자로 아래와 같이 입력하세요(숫자가 높을 수록 권한이 낮으며 낮은 권한을 위쪽에 입력하셔야 합니다)
-. 입력 예)
 98;개인회원
 97;기업회원
 96;관공서회원
 05;스태프
 04;임원
 .
 .
 .  
※ 홈페이지를 통해 98 이외의 레벨이 가입될 수 있도록 하려면 private_info.inc.php 파일에서 $GLOBALS['VI']['join_level'] 을 설정해 주어야 합니다. (보안상 조치 이며, 위 에서는 '96' 을 입력)
※ 위에서 스태프 아래로 관리자라면 private_info.inc.php 파일에서 $GLOBALS['VI']['admin_level'] 값을 '05' 로 설정해 주시면 05~02 까지의 권한은 관리자모드에 접근할 수 있는 레벨이 됩니다.

<< 게시판권한 >>
*. 운영자 : 게시물의 관리를 위해 특별히 존재하는 권한

 

 
-. 운영자는 읽기, 쓰기, 수정, 삭제, 답변, 파일다운로드시 '본인열람' 또는 '본인게시물' 또는 '모든회원' 또는 '운영자'에 체크된 경우  '모든게시물(잠김글, 관리자만열람글 포함) 에 대한 권한' 을 갖습니다.
-. 읽기, 쓰기, 수정, 삭제, 답변, 파일다운로드에 아무것도 체크되지 않은 경우 누구나 열람과 글쓰기가 가능하며 수정, 삭제는 패스워드를 아는 사람 또는 운영자, 호스트, 총관리자만 가능합니다.

*. 읽기 : 게시물을 읽을 수 있는 권한
-. 누구나 볼 수 있게 하려면 아무것도 체크하지 않습니다.
-. 비회원~관리자(회원레벨) : 회원레벨별로 읽기 권한을 따로 부여할 때 체크하세요. (새로 추가되는 레벨이 생길 때 마다 체크 해 줘야 함)
-. 모든회원 : 로그인한 모든 사람이 읽을 수 있게 하려면 체크하세요. (회원레벨이 추가되어도 OK)
-. 운영자 : 운영자, 호스트, 총관리자만 읽을 수 있게 하려면 체크 합니다.
-. 총관리자만 : 총관리자만 읽을 수 있게 하려면 체크합니다. (다른 항목을 체크했어도 총관리자만 읽을 수 있게 되므로 주의 하세요)
-. 본인게시물 : 글 쓴 사람만 읽을 수 있게 하려면 체크하세요.
-. 패스워드 : 잠금게시물이 아니어도 패스워드를 확인 하도록 하려면 체크하세요.
-. 본인열람 : 열람회원ID에 본인의ID가 입력된 게시물만 볼 수 있게 하려면 체크하세요.
-. 그룹회원 : 회원정보의 게시판그룹에 현재게시판이 체크된 사람만 볼 수 있게 하려면 체크하세요.
※ 그룹회원에 해당하지 않는 회원은 게시판 보기페이지와 목록페이지에 접근할 수 없습니다. 
-. 필터링필드 : 본인과 같은 그룹 또는 분류의 회원이 쓴 게시물만 볼 수 있게 하려면 체크하세요.
-. 종료일 : 종료일(기간)이 지나지 않은 게시물만 볼 수 있게 하려면 체크하세요.
-. 사용안함 : 아무도 볼 수 없게 하려면 체크하세요. (총관리자도 읽을 수 없게 됩니다)
※ 읽기 권한은 게시물의 상세 내용에 대한 읽기권한입니다. (목록보기에 대한 권한이 아님에 주의)
※ 목록보기에 대한 노출 권한은 '페이지의 열람 권한' 설정 또는 '목록폼의 게시물필터링' 설정으로 조절 합니다.
(단, 게시판을 처음 만들 때는 읽기 권한에 따라 '목록 페이지의 열람 권한이 자동으로 설정'될 수 있으니 주의)  

*. 쓰기 : 게시물을 쓸 수 있는 권한
-. 누구나 쓸 수 있게 하려면 아무것도 체크하지 않습니다.
-. 비회원~관리자(회원레벨) : 회원레벨별로 쓰기 권한을 따로 부여할 때 체크 하세요.
-. 모든회원 : 로그인한 모든 사람이 쓸 수 있게 하려면 체크하세요.
-. 운영자 : 운영자, 호스트, 총관리자만 쓸 수 있게 하려면 체크하세요.
-. 총관리자만 : 총관리자만 쓸 수 있게 하려면 체크하세요.
-. 사용안함 : 아무도 쓸 수 없게 하려면 체크하세요.

*. 수정 : 게시물을 수정할 수 있는 권한
-. 비회원~관리자(회원레벨) : 회원레벨별로 수정 권한을 따로 부여할 때 체크 하세요.
-. 모든회원 : 로그인한 모든 사람이 수정할 수 있게 하려면 체크하세요.
-. 패스워드인증 : 패스워드를 아는 사람, 운영자, 호스트, 총관리자만 수정할 수 있게 하려면 체크하세요.
-. 본인게시물 : 게시물을 쓴 사람, 운영자, 호스트, 총관리자만 수정할 수 있게 하려면 체크하세요.
-. 본인열람 : 열람회원ID에 본인의ID가 입력된 게시물을 수정할 수 있게 하려면 체크하세요.
-. 관리자그룹1~2 : 관리자회원이 본인 그룹의 게시물을 수정할 수 있게 하려면 체크하세요.
-. 관리자분류1~6 : 관리자회원이 본인 분류의 게시물을 수정할 수 있게 하려면 체크하세요. 
-. 사용안함 : 아무도 수정할 수 없게 하려면 체크하세요.
※ 아무것도 체크되어 있지 않으면 패스워드인증 또는 본인게시물은 수정 가능하며 운영자, 호스트, 총관리자는 모든 게시물을 수정할 수 있습니다.

*. 삭제 : 게시물을 삭제할 수 있는 권한
-. 비회원~관리자(회원레벨) : 회원레벨별로 삭제 권한을 따로 부여할 때 체크 하세요.
-. 모든회원 : 로그인한 모든 사람이 삭제할 수 있게 하려면 체크하세요.
-. 패스워드인증 : 패스워드를 아는 사람, 운영자, 호스트, 총관리자만 삭제할 수 있게 하려면 체크하세요.
-. 본인게시물 : 게시물을 쓴 사람, 운영자, 호스트, 총관리자만 삭제할 수 있게 하려면 체크하세요.
-. 본인열람 : 열람회원ID에 본인의ID가 입력된 게시물을 삭제할 수 있게 하려면 체크하세요.
-. 관리자그룹1~2 : 관리자회원이 본인 그룹의 게시물을 삭제할 수 있게 하려면 체크하세요.
-. 관리자분류1~6 : 관리자회원이 본인 분류의 게시물을 삭제할 수 있게 하려면 체크하세요. 
-. 사용안함 : 아무도 삭제할 수 없게 하려면 체크하세요.
※ 아무것도 체크되어 있지 않으면 패스워드인증 또는 본인게시물은 삭제 가능하며 운영자, 호스트, 총관리자는 모든 게시물을 삭제할 수 있습니다.

*. 답변 : 답변 게시물을 쓸 수 있는 권한
-. 비회원~관리자(회원레벨) : 회원레벨별로 답변 권한을 따로 부여할 때 체크 하세요.
-. 모든회원 : 로그인한 모든 사람이 답변할 수 있게 하려면 체크하세요.
-. 운영자 : 운영자, 호스트, 총관리자만 답변할 수 있게 하려면 체크하세요.
-. 총관리자 : 총관리자만 답변 권한을 부여할 때 체크합니다.
-. 사용안함 : 아무도 쓸 수 없게 하려면 체크하세요.

*. 파일다운로드 : 파일을 다운로드 할 수 있는 권한
-. 비회원~관리자(회원레벨) : 회원레벨별로 다운로드 권한을 따로 부여할 때 체크 합니다.
-. 모든회원 : 로그인한 모든 사람이 다운로드 할 수 있게 하려면 체크하세요.
-. 운영자 : 운영자, 호스트, 총관리자만 다운로드할 수 있게 하려면 체크하세요.
-. 총관리자만 : 총관리자만 다운로드할 수 있게 하려면 체크하세요.
-. 본인게시물 : 글 쓴 사람만 다운로드할 수 있게 하려면 체크하세요.
-. 본인열람 : 열람회원ID에 본인의ID가 입력된 게시물만 다운로드할 수 있도록 하려면 체크하세요.
-. 그룹회원 : 회원정보의 게시판그룹에 현재게시판이 체크된 사람만 다운로드할 수 있도록 하려면 체크하세요.
-. 필터링필드 : 본인과 같은 그룹 또는 분류의 회원이 쓴 게시물에서만 다운로드할 수 있도록 하려면 체크하세요.
-. 종료일 : 종료일(기간)이 지나지 않은 게시물만 다운로드할 수 있도록 하려면 체크하세요.
-. 사용안함 : 아무도 다운로드할 수 없게 하려면 체크하세요.
-. 누구나 다운로드할 수 있게 하려면 아무것도 체크하지 않습니다.

< 읽기, 쓰기, 수정, 삭제, 답변, 파일다운로드 설정 화면 >

 

< 공통사항 >

※ 레벨별(비회원~관리자) 항목은 새로 추가되는 레벨이 생길 때 마다 추가체크 해 줘야 하므로 가급적 '모든회원' 을 체크하는게 좋습니다.

※ '총관리자만' 항목을 체크하면 다른 항목이 체크되어 있어도 무시되므로 주의하세요.

※ '사용안함' 항목을 체크하면 총관리자도 사용할 수 없게 되니 주의하세요.

 

< 설정 예 > 

1. 비회원을 포함한 누구나 읽고 쓸 수 있고 패스워드를 아는 사람만 수정, 삭제 할 수 있는 게시판

읽기, 쓰기, 수정, 삭제, 답변, 파일다운로드에 아무것도 체크하지 않음.

 

2. 비회원을 포함한 누구나 읽고 쓸 수 있고 답변은 관리자만 하는 게시판

읽기, 쓰기, 수정, 삭제, 파일다운로드에 아무것도 체크하지 않고 답변에는 '관리자' 체크.

 

3. 비회원을 포함한 누구나 읽고 회원만 글을 쓸 수 있고 본인글만 수정, 삭제 할 수있고 관리자만 답변 할 수 있는 게시판

읽기 : 아무것도 체크안함.

쓰기 : 모든회원 체크

수정, 삭제 : 본인게시물 체크

답변 : 관리자 체크

파일다운로드 : 아무것도 체크안함

 

4. 관리자만 읽고 쓸 수 있고 답변기능은 없는 게시판

읽기 : 관리자 체크

쓰기 : 관리자 체크

수정, 삭제 : 본인게시물 체크

(관리자를 체크하면 모든 관리자가 수정가능하게 되고 본인게시물을 체크하면 같은 관리자라도 본인글만 수정, 삭제 할 수 있음)

답변 : 사용안함

 

※ 답변 기능을 이용하시려면 게시판을 만들 때 포럼형게시판으로 만드셔야 합니다.

 특별한 기능이 아니면 읽기, 쓰기, 수정, 삭제, 답변, 다운로드 별로 한개의 체크상자 선택으로 설정이 가능합니다. 좀더 복잡한 권한 지정에 대해서는 Q&A 교육에 참여해서 해소 해 주세요.

 


<< 페이지열람권한 >>
*. 페이지 전체에 대한 열람권한을 설정할 때 사용합니다.

 

-. 비회원~관리자(회원레벨) : 회원레벨별로 열람 권한을 따로 부여할 때 체크 합니다. (새로 추가되는 레벨이 생길 때 마다 추가체크 해 줘야 함)
-. 모든회원 : 로그인한 모든 사람이 열람할 수 있게 하려면 체크하세요. (회원레벨이 추가되어도 OK)
-. 비밀번호 : 비밀번호를 입력한 경우만 열람할 수 있게 하려면 체크하세요. ('비밀번호' 에 비밀번호를 입력해 주시고 직전 페이지에 비밀번호 입력창이 있어야 합니다.)
※ 게시판이 생성될 때 읽기, 쓰기, 수정, 삭제, 답변 권한에 따라 페이지의 열람권한이 자동으로 설정되니 참고하세요.
※ 게시물의 상세보기는 허가된 사람만 보되 목록은 모두 보도록 설정하시려면 읽기권한을 지정하신 후 목록페이지의 열람권한 체크를 모두 해제 하시면 됩니다.


<< 개발자가 알아두면 좋을 내용 >>

*. 게시물 관리 권한은 library_insiter.class.php 파일의 get_article_auth() 함수에서 제어 합니다.
*. 페이지 관리 권한은 library_insiter.class.php 파일의 get_page_auth() 함수에서 제어 합니다.

업데이트가 불가능해지는 문제로 코드를 변경하는 것은 권장하지 않지만 필요하다면 얼마든지 수정해서 사용할 수 있습니다.
코드를 수정하시는 경우 보안성을 검증할 수 있도록 다양한 경우의 수로 충분히 테스트를 하셔야 합니다.