GnuBoard 기반 그룹웨어 관리 시스템 완전 가이드
회원 추가, 수정, 삭제 및 권한 관리 기능을 제공합니다.
조직 구조에 맞는 부서 생성 및 계층 구조 관리가 가능합니다.
전체 데이터베이스 테이블에 대한 백업 기능을 제공합니다.
CSRF 토큰, 권한 검증 등 강력한 보안 기능을 내장했습니다.
구분 | 최소 요구사항 | 권장 사항 |
---|---|---|
PHP 버전 | PHP 7.0 이상 | PHP 8.0 이상 |
MySQL | MySQL 5.7 이상 | MySQL 8.0 이상 |
GnuBoard | GnuBoard 5.4 이상 | 최신 버전 |
웹서버 | Apache 2.4 / Nginx | Apache 2.4 / Nginx 최신 |
/groupware/
폴더에 업로드합니다.
g5_ea_departments
)이 필요한 경우 생성합니다.
http://yourdomain.com/groupware/
로 접속하여 시스템이 정상 작동하는지 확인합니다.
부서 관리 기능을 사용하려면 다음 SQL을 실행하여 부서 테이블을 생성하세요:
/groupware/users.php
에서 전체 사용자 목록을 확인할 수 있습니다.
사용자 목록에서 연필 아이콘을 클릭하여 정보를 수정할 수 있습니다.
사용자 목록에서 삭제 아이콘을 클릭하여 탈퇴 처리할 수 있습니다.
부서는 계층 구조로 관리되며, 상위 부서와 하위 부서 관계를 설정할 수 있습니다.
필드 | 설명 | 필수여부 |
---|---|---|
부서 코드 | 영문, 숫자, -, _ 만 사용 가능한 고유 코드 | 필수 |
부서명 | 부서의 표시 이름 | 필수 |
상위 부서 | 계층 구조에서의 상위 부서 | 선택 |
상태 | ACTIVE (활성) / INACTIVE (비활성) | 필수 |
정렬 순서 | 목록에서의 표시 순서 (숫자가 낮을수록 먼저 표시) | 선택 |
부서 삭제 시 다음 조건을 확인합니다:
시스템의 모든 테이블을 선택하여 SQL 파일로 백업할 수 있습니다.
/groupware/backup.php
) 접속구분 | 내용 |
---|---|
파일명 형식 | groupware_backup_{DB명}_{YYYYMMDD_HHMMSS}.sql |
인코딩 | UTF-8 |
포함 내용 | 테이블 구조 + 데이터 |
복원 방법 | phpMyAdmin 등 MySQL 관리 도구 사용 |
모든 중요한 작업에 CSRF(Cross-Site Request Forgery) 토큰을 사용하여 보안을 강화합니다.
각 페이지마다 고유한 삭제 토큰을 생성하여 무단 삭제를 방지합니다.
별도의 액션 토큰으로 부서 삭제 작업을 보호합니다.
백업 전용 토큰으로 무단 백업 실행을 차단합니다.
모든 폼 제출에 토큰 검증을 적용합니다.
접근 레벨 | 권한 | 제한사항 |
---|---|---|
최고관리자 | 모든 기능 사용 가능 | 자기 자신 삭제 불가 |
일반 사용자 | 접근 차단 | 그룹웨어 관리 기능 사용 불가 |
비로그인 사용자 | 완전 차단 | 모든 페이지 접근 불가 |
sql_real_escape_string()
적용htmlspecialchars()
적용원인: 관리자 권한이 없거나 로그인이 되어있지 않음
해결방법:
원인: 부서 테이블(g5_ea_departments)이 생성되지 않음
해결방법:
원인: CSRF 토큰 불일치 또는 세션 만료
해결방법:
원인: 메모리 부족, 실행 시간 초과, 권한 문제
해결방법:
ini_set('display_errors', 1);
로 오류를 화면에 표시할 수 있습니다.
safe_output($string, $max_length)
용도: 안전한 HTML 출력을 위한 문자열 처리
매개변수:
$string
: 처리할 문자열$max_length
: 최대 길이 (선택사항)get_member_level_select($name, $min, $max, $selected)
용도: 회원 레벨 선택 SELECT 태그 생성
매개변수:
$name
: SELECT 태그의 name 속성$min
: 최소 레벨$max
: 최대 레벨$selected
: 선택된 값get_department_name_by_code_gw($dept_code)
용도: 부서 코드로 부서명 조회
매개변수:
$dept_code
: 부서 코드반환값: 부서명 또는 기본 메시지
generate_action_token($action_name)
용도: 특정 액션용 CSRF 토큰 생성
매개변수:
$action_name
: 액션 이름 (고유 식별자)반환값: 생성된 토큰 문자열
check_action_token($action_name, $token)
용도: 액션 토큰 검증
매개변수:
$action_name
: 액션 이름$token
: 검증할 토큰반환값: true (성공) / false (실패)
필드명 | 타입 | 설명 | 제약조건 |
---|---|---|---|
dept_id | INT(11) | 부서 고유 ID | PRIMARY KEY, AUTO_INCREMENT |
dept_code | VARCHAR(50) | 부서 코드 | UNIQUE, NOT NULL |
dept_name | VARCHAR(100) | 부서명 | NOT NULL |
parent_dept_id | INT(11) | 상위 부서 ID | NULL 허용 |
dept_status | ENUM | 부서 상태 | 'ACTIVE', 'INACTIVE' |
dept_order | INT(11) | 정렬 순서 | DEFAULT 0 |
created_at | DATETIME | 생성일시 | DEFAULT CURRENT_TIMESTAMP |
updated_at | DATETIME | 수정일시 | ON UPDATE CURRENT_TIMESTAMP |
필드명 | 용도 | 데이터 예시 |
---|---|---|
mb_10 | 부서 코드 저장 | IT-DEPT, SALES_TEAM |
mb_level | 권한 레벨 | 1~10 (10: 최고관리자) |
mb_leave_date | 탈퇴일자 | YYYYMMDD 형식 |
구분 | 정보 |
---|---|
시스템명 | 그룹웨어 관리 시스템 |
버전 | 1.0.0 |
기반 시스템 | GnuBoard 5.4+ |
개발 언어 | PHP 7.0+ |
데이터베이스 | MySQL 5.7+ |
최종 업데이트 | 2024년 12월 |
시스템 사용 중 문제가 발생하거나 개선 사항이 있으시면 다음과 같은 방법으로 해결할 수 있습니다: