mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-04 17:21:39 +09:00
Implement admin functions for FCM and APNs configuration
This commit is contained in:
parent
3c15c34aa1
commit
e49c77926a
7 changed files with 135 additions and 1 deletions
|
|
@ -115,6 +115,7 @@ $lang->tag = 'Tag';
|
|||
$lang->mail = 'Mail';
|
||||
$lang->email = 'E-mail';
|
||||
$lang->sms = 'SMS';
|
||||
$lang->push_notification = 'Push Notification';
|
||||
$lang->allow_comment = 'Allow Comments';
|
||||
$lang->lock_comment = 'Block Comments';
|
||||
$lang->allow_trackback = 'Allow Trackbacks';
|
||||
|
|
|
|||
|
|
@ -117,6 +117,7 @@ $lang->tag = '태그';
|
|||
$lang->mail = '메일';
|
||||
$lang->email = '이메일';
|
||||
$lang->sms = 'SMS';
|
||||
$lang->push_notification = '푸시 알림';
|
||||
$lang->allow_comment = '댓글 허용';
|
||||
$lang->lock_comment = '댓글 잠금';
|
||||
$lang->allow_trackback = '엮인글 허용';
|
||||
|
|
|
|||
|
|
@ -569,7 +569,7 @@ class adminAdminController extends admin
|
|||
$conf_value = $vars->{'sms_' . $sms_driver . '_' . $conf_name} ?: null;
|
||||
if (!$conf_value)
|
||||
{
|
||||
throw new Rhymix\Framework\Exception('msg_advanced_mailer_smtp_host_is_invalid');
|
||||
throw new Rhymix\Framework\Exception('msg_advanced_mailer_sms_config_invalid');
|
||||
}
|
||||
$sms_driver_config[$conf_name] = $conf_value;
|
||||
}
|
||||
|
|
@ -579,6 +579,61 @@ class adminAdminController extends admin
|
|||
$sms_driver_config[$conf_name] = $conf_value;
|
||||
}
|
||||
|
||||
// Validate the selected Push drivers.
|
||||
$push_config = array('types' => array());
|
||||
$push_drivers = Rhymix\Framework\Push::getSupportedDrivers();
|
||||
$push_driver_list = $vars->push_driver ?: [];
|
||||
foreach ($push_driver_list as $driver_name)
|
||||
{
|
||||
if (array_key_exists($driver_name, $push_drivers))
|
||||
{
|
||||
$push_config['types'][$driver_name] = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Rhymix\Framework\Exception('msg_advanced_mailer_sending_method_is_invalid');
|
||||
}
|
||||
}
|
||||
|
||||
// Validate the Push driver settings.
|
||||
foreach ($push_drivers as $driver_name => $driver_definition)
|
||||
{
|
||||
foreach ($push_drivers[$driver_name]['required'] as $conf_name)
|
||||
{
|
||||
$conf_value = utf8_trim($vars->{'push_' . $driver_name . '_' . $conf_name}) ?: null;
|
||||
if (!$conf_value && in_array($driver_name, $push_driver_list))
|
||||
{
|
||||
throw new Rhymix\Framework\Exception('msg_advanced_mailer_push_config_invalid');
|
||||
}
|
||||
$push_config[$driver_name][$conf_name] = $conf_value;
|
||||
|
||||
// Save certificates in a separate file and only store the filename in config.php.
|
||||
if ($conf_name === 'certificate')
|
||||
{
|
||||
$filename = Rhymix\Framework\Config::get('push.' . $driver_name . '.certificate');
|
||||
if (!$filename)
|
||||
{
|
||||
$filename = './files/config/' . $driver_name . '/cert-' . Rhymix\Framework\Security::getRandom(32) . '.pem';
|
||||
}
|
||||
|
||||
if ($conf_value !== null)
|
||||
{
|
||||
Rhymix\Framework\Storage::write($filename, $conf_value);
|
||||
$push_config[$driver_name][$conf_name] = $filename;
|
||||
}
|
||||
elseif (Rhymix\Framework\Storage::exists($filename))
|
||||
{
|
||||
Rhymix\Framework\Storage::delete($filename);
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach ($push_drivers[$driver_name]['optional'] as $conf_name)
|
||||
{
|
||||
$conf_value = utf8_trim($vars->{'push_' . $driver_name . '_' . $conf_name}) ?: null;
|
||||
$push_config[$driver_name][$conf_name] = $conf_value;
|
||||
}
|
||||
}
|
||||
|
||||
// Save advanced mailer config.
|
||||
getController('module')->updateModuleConfig('advanced_mailer', (object)array(
|
||||
'sender_name' => trim($vars->mail_default_name),
|
||||
|
|
@ -606,6 +661,7 @@ class adminAdminController extends admin
|
|||
Rhymix\Framework\Config::set("sms.$sms_driver", $sms_driver_config);
|
||||
Rhymix\Framework\Config::set("sms.allow_split.sms", toBool($vars->allow_split_sms));
|
||||
Rhymix\Framework\Config::set("sms.allow_split.lms", toBool($vars->allow_split_lms));
|
||||
Rhymix\Framework\Config::set("push", $push_config);
|
||||
if (!Rhymix\Framework\Config::save())
|
||||
{
|
||||
throw new Rhymix\Framework\Exception('msg_failed_to_save_config');
|
||||
|
|
|
|||
|
|
@ -424,6 +424,18 @@ class adminAdminView extends admin
|
|||
Context::set('sms_drivers', $sms_drivers);
|
||||
Context::set('sms_driver', config('sms.type') ?: 'dummy');
|
||||
|
||||
// Load Push drivers.
|
||||
$push_drivers = Rhymix\Framework\Push::getSupportedDrivers();
|
||||
uasort($push_drivers, function($a, $b) { return strcmp($a['name'], $b['name']); });
|
||||
Context::set('push_drivers', $push_drivers);
|
||||
Context::set('push_config', config('push') ?: []);
|
||||
$apns_certificate = false;
|
||||
if ($apns_certificate_filename = config('push.apns.certificate'))
|
||||
{
|
||||
$apns_certificate = Rhymix\Framework\Storage::read($apns_certificate_filename);
|
||||
}
|
||||
Context::set('apns_certificate', $apns_certificate);
|
||||
|
||||
// Workaround for compatibility with older version of Amazon SES driver.
|
||||
config('mail.ses.api_key', config('mail.ses.api_user'));
|
||||
config('mail.ses.api_secret', config('mail.ses.api_pass'));
|
||||
|
|
|
|||
|
|
@ -337,6 +337,60 @@
|
|||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="section">
|
||||
|
||||
<h2>{$lang->push_notification}</h2>
|
||||
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label">{$lang->cmd_admin_sending_method}</label>
|
||||
<div class="x_controls">
|
||||
<!--@foreach($push_drivers as $driver_name => $driver_definition)-->
|
||||
<label for="push_driver_{$driver_name}" class="x_inline"><input type="checkbox" name="push_driver[]" id="push_driver_{$driver_name}" value="{$driver_name}" checked="checked"|cond="isset($push_config['types'][$driver_name])" /> {$driver_definition['name']}</label>
|
||||
<!--@end-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--@foreach($push_drivers as $driver_name => $driver_definition)-->
|
||||
|
||||
{@ $conf_names = array_merge($driver_definition['required'], $driver_definition['optional'])}
|
||||
|
||||
<!--@foreach($conf_names as $conf_name)-->
|
||||
|
||||
{@ $conf_value = escape(config("push.$driver_name.$conf_name"))}
|
||||
|
||||
<!--@if($conf_name === 'api_key')-->
|
||||
<div class="x_control-group hidden-by-default show-for-{$driver_name}">
|
||||
<label class="x_control-label" for="push_{$driver_name}_api_key">{$lang->cmd_advanced_mailer_fcm_api_key}</label>
|
||||
<div class="x_controls">
|
||||
<input type="password" name="push_{$driver_name}_api_key" id="push_{$driver_name}_api_key" value="{$conf_value|escape}" />
|
||||
</div>
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
||||
<!--@if($conf_name === 'certificate')-->
|
||||
<div class="x_control-group hidden-by-default show-for-{$driver_name}">
|
||||
<label class="x_control-label" for="push_{$driver_name}_certificate">{$lang->cmd_advanced_mailer_apns_certificate}</label>
|
||||
<div class="x_controls full-width">
|
||||
<textarea name="push_{$driver_name}_certificate" id="push_{$driver_name}_certificate">{$apns_certificate|escape}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
||||
<!--@if($conf_name === 'passphrase')-->
|
||||
<div class="x_control-group hidden-by-default show-for-{$driver_name}">
|
||||
<label class="x_control-label" for="push_{$driver_name}_passphrase">{$lang->cmd_advanced_mailer_apns_passphrase}</label>
|
||||
<div class="x_controls">
|
||||
<input type="password" name="push_{$driver_name}_passphrase" id="push_{$driver_name}_passphrase" value="{$conf_value|escape}" />
|
||||
</div>
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
||||
<!--@end-->
|
||||
|
||||
<!--@end-->
|
||||
|
||||
</section>
|
||||
|
||||
<div class="x_clearfix btnArea">
|
||||
<div class="x_pull-right">
|
||||
|
|
|
|||
|
|
@ -35,6 +35,9 @@ $lang->cmd_advanced_mailer_api_type_free = 'Free account';
|
|||
$lang->cmd_advanced_mailer_api_type_paid = 'Paid account';
|
||||
$lang->cmd_advanced_mailer_api_user = 'Username';
|
||||
$lang->cmd_advanced_mailer_api_pass = 'Password';
|
||||
$lang->cmd_advanced_mailer_fcm_api_key = 'FCM API key';
|
||||
$lang->cmd_advanced_mailer_apns_certificate = 'APNs certificate file';
|
||||
$lang->cmd_advanced_mailer_apns_passphrase = 'APNs certificate passphrase';
|
||||
$lang->cmd_advanced_mailer_sender_key = 'Sender key';
|
||||
$lang->cmd_advanced_mailer_sender_identity = 'Sender Identity';
|
||||
$lang->cmd_advanced_mailer_about_sender_identity = 'You can change the sender\'s name and e-mail address in the <a href="index.php?module=admin&act=dispAdminConfigNotification" target="_blank">Notification Settings</a> screen.';
|
||||
|
|
@ -103,6 +106,8 @@ $lang->msg_advanced_mailer_recipient_email_is_invalid = 'The recipient\'s email
|
|||
$lang->msg_advanced_mailer_test_success = 'The test was successful. Please check your email.';
|
||||
$lang->msg_advanced_mailer_google_account_security = 'Either your login credentials are incorrect, or the SMTP connection was blocked by Google account security settings.<br />Please <a href="https://support.google.com/mail/answer/14257" target="_blank">see here</a> for more information.';
|
||||
$lang->msg_advanced_mailer_naver_smtp_disabled = 'Either your login credentials are incorrect, or POP3/SMTP is not enabled on your Naver account.';
|
||||
$lang->msg_advanced_mailer_sms_config_invalid = 'There are errors or omissions in the SMS API configuration.';
|
||||
$lang->msg_advanced_mailer_push_config_invalid = 'There are errors or omissions in the push notification configuration.';
|
||||
$lang->msg_advanced_mailer_unknown_error = 'An unknown error occurred.';
|
||||
$lang->msg_advanced_mailer_log_is_empty = 'There are no entries to display.';
|
||||
$lang->cmd_advanced_mailer_status_sender = 'Sender';
|
||||
|
|
|
|||
|
|
@ -35,6 +35,9 @@ $lang->cmd_advanced_mailer_api_type_free = '무료';
|
|||
$lang->cmd_advanced_mailer_api_type_paid = '유료';
|
||||
$lang->cmd_advanced_mailer_api_user = '아이디';
|
||||
$lang->cmd_advanced_mailer_api_pass = '비밀번호';
|
||||
$lang->cmd_advanced_mailer_fcm_api_key = 'FCM API 키';
|
||||
$lang->cmd_advanced_mailer_apns_certificate = 'APNs 인증서 파일';
|
||||
$lang->cmd_advanced_mailer_apns_passphrase = 'APNs 인증서 암호';
|
||||
$lang->cmd_advanced_mailer_sender_key = '센더 키';
|
||||
$lang->cmd_advanced_mailer_sender_identity = '보낸이 설정';
|
||||
$lang->cmd_advanced_mailer_about_sender_identity = '보낸이의 이름과 메일 주소는 <a href="index.php?module=admin&act=dispAdminConfigNotification" target="_blank">알림 설정</a> 화면에서 변경할 수 있습니다.';
|
||||
|
|
@ -103,6 +106,8 @@ $lang->msg_advanced_mailer_recipient_email_is_invalid = '받는이 메일 주소
|
|||
$lang->msg_advanced_mailer_test_success = '테스트에 성공하였습니다. 메일을 확인해 보시기 바랍니다.';
|
||||
$lang->msg_advanced_mailer_google_account_security = '아이디 또는 비밀번호가 틀렸거나, 구글 보안 설정 때문에 SMTP 접속이 차단되었습니다.<br />자세한 정보는 <a href="https://support.google.com/mail/answer/14257?hl=ko" target="_blank">여기</a>를 참고하시기 바랍니다.';
|
||||
$lang->msg_advanced_mailer_naver_smtp_disabled = '아이디 또는 비밀번호가 틀렸거나, 네이버 계정 환경설정에서 POP3/SMTP를 사용하지 않도록 설정되어 있습니다.';
|
||||
$lang->msg_advanced_mailer_sms_config_invalid = 'SMS API 설정에 잘못되었거나 누락된 부분이 있습니다. 확인해 주십시오.';
|
||||
$lang->msg_advanced_mailer_push_config_invalid = '푸시 알림 설정에 잘못되었거나 누락된 부분이 있습니다. 확인해 주십시오.';
|
||||
$lang->msg_advanced_mailer_unknown_error = '알 수 없는 오류가 발생하였습니다.';
|
||||
$lang->msg_advanced_mailer_log_is_empty = '표시할 항목이 없습니다.';
|
||||
$lang->cmd_advanced_mailer_status_sender = '보낸이';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue