mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-06 18:21:39 +09:00
Support user config of notification types, fixes #994
코어에서 지원하는 알림 종류 및 알림 수신 방법이 늘어남에 따라, 관리자가 설정한 범위 내에서 회원들이 알림 수신 방법을 선택할 수 있도록 합니다. 기존에는 수신 여부만 선택할 수 있었으나 이제 더 세부적인 설정이 가능합니다. 예를 들어 웹 알림과 푸시알림은 받고, 메일 알림과 문자 알림은 끌 수 있습니다. 이 기능을 지원하기 위해 ncenterlite_user_set 테이블 스키마를 대폭 조정합니다. 기존 설정은 가능하면 그대로 유지하려고 노력하였습니다.
This commit is contained in:
parent
3032784ca7
commit
c52187a8f2
14 changed files with 435 additions and 531 deletions
|
|
@ -48,27 +48,30 @@ class ncenterliteView extends ncenterlite
|
|||
throw new Rhymix\Framework\Exception('msg_not_use_user_setting');
|
||||
}
|
||||
|
||||
$oMemberModel = getModel('member');
|
||||
$member_srl = Context::get('member_srl');
|
||||
$logged_info = Context::get('logged_info');
|
||||
if(!Context::get('is_logged')) throw new Rhymix\Framework\Exception('ncenterlite_stop_login_required');
|
||||
|
||||
if($logged_info->is_admin == 'Y' && $member_srl)
|
||||
if(!Rhymix\Framework\Session::getMemberSrl())
|
||||
{
|
||||
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
|
||||
throw new Rhymix\Framework\Exceptions\MustLogin;
|
||||
}
|
||||
|
||||
if($logged_info->is_admin != 'Y' && $member_srl)
|
||||
$member_srl = Context::get('member_srl');
|
||||
if($this->user->isAdmin() && $member_srl)
|
||||
{
|
||||
if($member_srl != $logged_info->member_srl)
|
||||
$member_info = MemberModel::getMemberInfoByMemberSrl($member_srl);
|
||||
}
|
||||
if(!$this->user->isAdmin() && $member_srl)
|
||||
{
|
||||
if($member_srl != $this->user->member_srl)
|
||||
{
|
||||
throw new Rhymix\Framework\Exception('ncenterlite_stop_no_permission_other_user');
|
||||
throw new Rhymix\Framework\Exceptions\NotPermitted('ncenterlite_stop_no_permission_other_user');
|
||||
}
|
||||
}
|
||||
$output = $oNcenterliteModel->getUserConfig($member_srl);
|
||||
|
||||
|
||||
Context::set('member_info', $member_info);
|
||||
Context::set('user_config', $output->data);
|
||||
Context::set('user_config', NcenterliteModel::getUserConfig($member_srl));
|
||||
Context::set('module_config', NcenterliteModel::getConfig());
|
||||
Context::set('notify_types', NcenterliteModel::getNotifyTypes());
|
||||
Context::set('sms_available', Rhymix\Framework\SMS::getDefaultDriver()->getName() !== 'Dummy');
|
||||
Context::set('push_available', count(Rhymix\Framework\Config::get('push.types')) > 0);
|
||||
$this->setTemplateFile('userconfig');
|
||||
}
|
||||
|
||||
|
|
@ -89,19 +92,17 @@ class ncenterliteView extends ncenterlite
|
|||
|
||||
if(!Rhymix\Framework\Session::getMemberSrl())
|
||||
{
|
||||
throw new Rhymix\Framework\Exception('ncenterlite_stop_login_required');
|
||||
throw new Rhymix\Framework\Exceptions\MustLogin;
|
||||
}
|
||||
|
||||
$member_srl = Context::get('member_srl');
|
||||
|
||||
if(!$member_srl)
|
||||
{
|
||||
$member_srl = $this->user->member_srl;
|
||||
}
|
||||
|
||||
if($this->user->is_admin !== 'Y' && intval($this->user->member_srl) !== intval($member_srl))
|
||||
if(!$this->user->isAdmin() && intval($this->user->member_srl) !== intval($member_srl))
|
||||
{
|
||||
throw new \Rhymix\Framework\Exception('msg_unsubscribe_not_permission');
|
||||
throw new Rhymix\Framework\Exceptions\NotPermitted('msg_unsubscribe_not_permission');
|
||||
}
|
||||
|
||||
$args = new stdClass();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue