diff --git a/modules/board/board.controller.php b/modules/board/board.controller.php index 450b6a8a3..dfe95b9ff 100644 --- a/modules/board/board.controller.php +++ b/modules/board/board.controller.php @@ -88,7 +88,7 @@ class boardController extends board $obj->member_srl = -1*$logged_info->member_srl; } $obj->email_address = $obj->homepage = $obj->user_id = ''; - $obj->user_name = $obj->nick_name = $this->createAnonymousNickname($this->module_info->anonymous_name ?: 'anonymous', $logged_info); + $obj->user_name = $obj->nick_name = $this->createAnonymousName($this->module_info->anonymous_name ?: 'anonymous', $logged_info->member_srl, $obj->document_srl); $bAnonymous = true; if($is_update===false) { @@ -367,7 +367,7 @@ class boardController extends board $obj->notify_message = 'N'; $obj->member_srl = -1*$logged_info->member_srl; $obj->email_address = $obj->homepage = $obj->user_id = ''; - $obj->user_name = $obj->nick_name = $this->createAnonymousNickname($this->module_info->anonymous_name ?: 'anonymous', $logged_info); + $obj->user_name = $obj->nick_name = $this->createAnonymousName($this->module_info->anonymous_name ?: 'anonymous', $logged_info->member_srl, $obj->document_srl); $bAnonymous = true; } else @@ -637,23 +637,30 @@ class boardController extends board * Create an anonymous nickname. * * @param string $format - * @param object $logged_info + * @param int $member_srl + * @param int $document_srl * @return string */ - public function createAnonymousNickname($format, $logged_info) + public function createAnonymousName($format, $member_srl, $document_srl) { if (strpos($format, '$NUM') !== false) { - $num = hash_hmac('sha256', $logged_info->member_srl ?: \RX_CLIENT_IP, config('crypto.authentication_key')); + $num = hash_hmac('sha256', $member_srl ?: \RX_CLIENT_IP, config('crypto.authentication_key')); $num = sprintf('%08d', hexdec(substr($num, 0, 8)) % 100000000); return strtr($format, array('$NUM' => $num)); } elseif (strpos($format, '$DAILYNUM') !== false) { - $num = hash_hmac('sha256', ($logged_info->member_srl ?: \RX_CLIENT_IP) . date('Ymd'), config('crypto.authentication_key')); + $num = hash_hmac('sha256', ($member_srl ?: \RX_CLIENT_IP) . ':date:' . date('Y-m-d'), config('crypto.authentication_key')); $num = sprintf('%08d', hexdec(substr($num, 0, 8)) % 100000000); return strtr($format, array('$DAILYNUM' => $num)); } + elseif (strpos($format, '$DOCNUM') !== false) + { + $num = hash_hmac('sha256', ($member_srl ?: \RX_CLIENT_IP) . ':document_srl:' . $document_srl, config('crypto.authentication_key')); + $num = sprintf('%08d', hexdec(substr($num, 0, 8)) % 100000000); + return strtr($format, array('$DOCNUM' => $num)); + } else { return $format; diff --git a/modules/board/lang/ko.php b/modules/board/lang/ko.php index ef8068541..b0c8c3414 100644 --- a/modules/board/lang/ko.php +++ b/modules/board/lang/ko.php @@ -27,7 +27,7 @@ $lang->about_layout_setup = '블로그의 레이아웃 코드를 직접 수정 $lang->about_board_category = '분류를 만들 수 있습니다. 분류가 오동작을 할 경우 캐시파일 재생성을 수동으로 해주시면 해결이 될 수 있습니다.'; $lang->about_except_notice = '목록 상단에 늘 나타나는 공지사항을 일반 목록에서 공지사항을 출력하지 않도록 합니다.'; $lang->about_use_anonymous = '글쓴이의 정보를 없애고 익명으로 게시판 사용을 할 수 있게 합니다. 스킨설정에서 글쓴이 정보등을 보이지 않도록 하시면 더욱 유용합니다. 추가설정의 문서 히스토리 사용이 꺼져있지 않으면 문서 수정시 작성자가 표시될 수 있습니다.'; -$lang->about_anonymous_name = '익명 기능을 사용할 때 표시할 익명 닉네임을 정할 수 있습니다.
$NUM은 회원마다 고유한 난수로 치환됩니다. (예: 익명_$NUM → 익명_12345678)'; +$lang->about_anonymous_name = '익명 기능을 사용할 때 표시할 익명 닉네임을 정할 수 있습니다.
$NUM을 사용하면 회원마다 고유한 난수를 부여할 수 있습니다. (예: 익명_$NUM → 익명_12345678)
$DAILYNUM을 사용하면 매일 난수가 변경되고, $DOCNUM을 사용하면 문서마다 변경됩니다.'; $lang->about_board = '게시판을 생성하고 관리할 수 있습니다.'; $lang->about_consultation = '상담 기능은 관리권한이 없는 회원은 자신이 쓴 글만 보이도록 하는 기능입니다. 단 상담기능 사용시 비회원 글쓰기는 자동으로 금지됩니다.'; $lang->about_secret = '게시판 및 댓글의 비밀글 기능을 사용할 수 있도록 합니다.';