Fix incorrect sender info in new message notification

A 회원 계정으로 로그인한 상태에서 애드온이나 서드파티 모듈이
B 회원으로부터 C 회원에게 쪽지가 발송되도록 하면,
C회원에게 표시되는 쪽지 알림에는 A 회원으로부터 쪽지가 왔다고
잘못 표시되는 문제 수정.

- 쪽지 발송 트리거에서 sender_srl을 참조하는 코드가 누락되어 있었음.

- insertNotify에서 명시적으로 지정한 target_member_srl 속성보다
  현재 로그인한 사용자의 회원정보를 우선 처리하는 문제가 있었음.
  이러면 target_member_srl 속성을 쓰는 이유가 없음 ㅡ.ㅡ;;
This commit is contained in:
Kijin Sung 2018-01-25 23:39:03 +09:00
parent 6496055581
commit 802ca2cf1b

View file

@ -334,6 +334,7 @@ class ncenterliteController extends ncenterlite
$args->srl = $obj->related_srl;
$args->target_p_srl = '1';
$args->target_srl = $obj->message_srl;
$args->target_member_srl = $obj->sender_srl;
$args->type = $this->_TYPE_MESSAGE;
$args->target_type = $this->_TYPE_MESSAGE;
$args->target_summary = $obj->title;
@ -1048,6 +1049,7 @@ class ncenterliteController extends ncenterlite
$args->regdate = date('YmdHis');
}
// 익명인 경우 발신자 정보를 제거
if($anonymous == TRUE)
{
$args->target_member_srl = 0;
@ -1055,8 +1057,17 @@ class ncenterliteController extends ncenterlite
$args->target_user_id = strval($args->target_nick_name);
$args->target_email_address = strval($args->target_nick_name);
}
// 로그인을 했을경우 logged_info 정보를 가져와 검사한다.
else if(Context::get('is_logged'))
// 발신자 회원번호(target_member_srl)가 지정된 경우 그대로 사용
elseif($args->target_member_srl)
{
$member_info = getModel('member')->getMemberInfoByMemberSrl($args->target_member_srl);
$args->target_member_srl = intval($member_info->member_srl);
$args->target_nick_name = strval($member_info->nick_name);
$args->target_user_id = strval($member_info->user_id);
$args->target_email_address = strval($member_info->email_address);
}
// 발신자 회원번호가 없는 경우 현재 로그인한 사용자 정보를 사용
elseif(Context::get('is_logged'))
{
$logged_info = Context::get('logged_info');
$args->target_member_srl = intval($logged_info->member_srl);
@ -1064,18 +1075,9 @@ class ncenterliteController extends ncenterlite
$args->target_user_id = strval($logged_info->user_id);
$args->target_email_address = strval($logged_info->email_address);
}
else if($args->target_member_srl)
{
$oMemberModel = getModel('member');
$member_info = $oMemberModel->getMemberInfoByMemberSrl($args->target_member_srl);
$args->target_member_srl = intval($member_info->member_srl);
$args->target_nick_name = strval($member_info->nick_name);
$args->target_user_id = strval($member_info->user_id);
$args->target_email_address = strval($member_info->email_address);
}
// 비회원인 경우
else
{
// 비회원
$args->target_member_srl = 0;
$args->target_nick_name = strval($args->target_nick_name);
$args->target_user_id = '';