Admin본 시스템의 운영자는 다음의 운영의무를 갖습니다.
본 지침서는 위 운영의무를 수행하는 데 있어서 필요한 지침들을 설명합니다. 운영자 운영환경
비상연락망
웹 애플리케이션 시스템 주메뉴의 "관리자" 링크를 선택하면, 관리자 인터페이스로 진입합니다. 본 기능은 AdminGroup에 소속된 사용자가 아니면 사용할 수 없습니다.
관리자 메뉴에서 이용할 수 있는 기능은 다음과 같습니다.
사용자 정보 변경기본적으로 시스템에 등록된 사용자의 목록이 출력됩니다.
로그인 아이디를 선택하면, 해당 사용자의 정보가 표시되며, 우상단의 변경을 선택하면 해당 사용자 정보를 변경할 수 있습니다.
그룹관리그룹은 사용자들이 포함되는 개념으로, 그룹별로 특별한 권한을 갖고 있습니다. 관리자는 특정 권한을 갖는 새로운 그룹을 만들 수도 있고, 기존 그룹의 권한을 변경할 수 있습니다. 본 시스템은 기본적으로 다음 두 그룹을 제공하고 있습니다.
회원가입을 했어도, 특정 그룹에 포함되지 않으면 로그인 하지 않은 권한과 같습니다. 본 시스템은 공개옵션이 체크된 데이터는 일반에게 열람이 허용되지만, 공개체크되지 않은 데이터의 경우, 데이터입력 당사자 혹은 관리자만이 데이터를 열람할 수 있습니다. MemberGroup 의 권한을 변경하기 위해서는 해당 그룹페이지에서 "변경" 링크를 선택합니다.
위 화면의 허가들 부분에 반전 표시된 권한들이 해당 그룹의 권한입니다. 컨트롤 키를 누른 상태에서 클릭하여 특정 권한을 추가하거나, 제외합니다. CRS 관리CRS는 DNA 서열 비교의 기준이 되는 DNA로 관리자가 관리합니다. 일반 사용자의 DNA 관리와 사용이 유사합니다. 자세한 사용방법은 사용자지침서를 참고합니다. 사용자정의 항목 관리관리자는 본 기능을 통해 데이터베이스 내에 선택 입력값을 관리자가 새로 생성하거나, 변경할 수 있습니다. 기본적으로 국가, 위치, 연도, DNA 종류, DNA Source, Species 의 항목값을 조정할 수 있습니다. 연도의 경우 해당 시대의 시작연도를 추가로 지정합니다.
목록상에 표시된 항목을 선택하면, 아래 변경할 수 있는 입력폼에 값이 채워집니다. 원하는 항목으로 수정하거나, 새로운 항목을 추가할 수 있습니다. 이곳에 추가된 항목은 데이터베이스의 선택 입력값에 반영됩니다. 기존의 항목을 삭제할 때에는 이미 데이터베이스에 저장된 값이 있으므로, 다음처럼 대체할 값을 선택입력해야합니다.
시대의 경우, 해당 시대의 시작년도를 필수로 입력합니다. 본 시스템은 시작년도부터 다음 시대의 시작년도 사이를 해당 시대로 판단합니다.
SSH 클라이언트 프로그램(putty 등)을 이용하여 본 시스템의 설치된 서버 컴퓨터에 직접 접속하여, 시스템을 관리합니다. 이관결과서 문서를 참고하여, 시스템에 설치된 애플리케이션 경로를 확인합니다.
본 시스템은 웹서버 아파치의 동적 확장 모듈 mod_python을 사용합니다. 따라서, 아파치 프로세스를 시작하거나 정지함으로써 본 시스템을 제어할 수 있습니다. mod_python 의 설정 현황은 APACH_CONF 파일을 참고합니다. 서버 시스템 재 부팅시 웹서버 자동시작이 기본 옵션이지만, 재시작해야할 만일의 경우에는 쉘에서 root 로그인 상태에서 다음 명령을 수행합니다.
APACH_STARTER stop # 정지 명령
APACH_STARTER start # 시작 명령
APACH_STARTER restart # 재시작 명령
본 시스템은 관계형 데이터베이스를 객체로 매핑하는 ORM(Object Relation Mapping) 기법을 사용하여, 데이터베이스 레코드를 객체처럼 다룰 수 있습니다. 본 기능을 사용함으로써, 오라클, MySQL등의 RDBMS 벤더와 상관없이 데이터베이스를 다룰 수 있습니다. SYSTEM_PATH 경로에서 아래 명령을 입력함으로써, 인터렉티브 DB 관리 쉘로 진입할 수 있습니다.
./manage.py shell
DB 레코드 관리쉘 인터프리터에서 다음 명령으로 데이터베이스 모델을 가져옵니다.
from nrich.models import *
모든 유적지 정보를 확인하기 위해서는 다음 명령을 입력합니다.
Ruin.objects.all()
아이디가 7인 유적지의 이름을 "test" 로 변경하고 싶은 경우에는 다음처럼 입력합니다.
ruin = Ruin.objects.get(id=7)
ruin.name = "test"
ruin.save()
위와 유사한 방식으로 다른 모델들의 데이터 항목들을 관리할 수 있습니다. 비밀번호 변경사용자의 비밀번호 분실 시, 다음 처럼 DB 레코드 관리할 수 있습니다. (userid의 비밀번호를 1234로 바꿀경우)
from django.contrib.auth.models import User
user = User.objects.get(username="userid")
user.set_password('1234')
user.save()
백업 및 복구BACKUP_PATH 경로에 있는 backup.sh 스크립트는 하루에 1번 동작하며, 전체 데이터를 백업하고, BACKUP_PRESERVE_TIME이 지난 백업데이터를 삭제합니다. 매일같이 백업되는 데이터는 다음 형태로 저장됩니다.
데이터를 복구할 때는 SYSTEM_PATH 경로에서 다음 순서로 진행합니다.
./manage.py reset
./manage.py loaddata < BACKUP_PATH/dump090303.json # 2009년 3월 3일 데이터로 복구
rdiff-backup -r 3D BACKUP_PATH/nrich_media nrich_media # 3일전 첨부파일 데이터로 복구
|