mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-06 18:21:39 +09:00
Fix #735 downloading files without points
- 포인트 부족시 다운로드를 금지하더라도 비회원에게 적용되지 않는 문제 해결 - 비회원이 첨부한 파일을 비회원이 다운로드하는 경우 적용되지 않는 문제 해결 - 해당 트리거 구조개선 및 주석 수정
This commit is contained in:
parent
1bd32d8d71
commit
4ddf8cf91f
1 changed files with 48 additions and 18 deletions
|
|
@ -359,32 +359,51 @@ class pointController extends point
|
||||||
$member_srl = $logged_info->member_srl;
|
$member_srl = $logged_info->member_srl;
|
||||||
$module_srl = $obj->module_srl;
|
$module_srl = $obj->module_srl;
|
||||||
if(!$module_srl) return new Object();
|
if(!$module_srl) return new Object();
|
||||||
|
|
||||||
// Pass if it is your file
|
// Pass if it is your file
|
||||||
if(abs($obj->member_srl) == abs($member_srl)) return new Object();
|
if($member_srl && abs($obj->member_srl) == $member_srl) return new Object();
|
||||||
|
|
||||||
$oModuleModel = getModel('module');
|
$oModuleModel = getModel('module');
|
||||||
$config = $oModuleModel->getModuleConfig('point');
|
$config = $oModuleModel->getModuleConfig('point');
|
||||||
$module_config = $oModuleModel->getModulePartConfig('point', $module_srl);
|
$module_config = $oModuleModel->getModulePartConfig('point', $module_srl);
|
||||||
// If it is set not to allow downloading for non-logged in users, do not permit
|
if (isset($module_config['download_file']))
|
||||||
|
{
|
||||||
|
$point = intval($module_config['download_file']);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$point = intval($config->download_file);
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the user is not logged in and download requires points, deny access.
|
||||||
if(!Context::get('is_logged'))
|
if(!Context::get('is_logged'))
|
||||||
{
|
{
|
||||||
if($config->disable_download == 'Y' && strlen($module_config['download_file']) == 0 && !is_int($module_config['download_file'])) return new Object(-1,'msg_not_permitted_download');
|
if($config->disable_download == 'Y' && $point)
|
||||||
else return new Object();
|
{
|
||||||
|
return new Object(-1,'msg_not_permitted_download');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return new Object();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the points of the member
|
// Get the points of the member
|
||||||
$oPointModel = getModel('point');
|
$oPointModel = getModel('point');
|
||||||
$cur_point = $oPointModel->getPoint($member_srl, true);
|
$cur_point = $oPointModel->getPoint($member_srl, true);
|
||||||
// Get the points
|
|
||||||
$point = $module_config['download_file'];
|
// If the member does not have enough points, deny access.
|
||||||
if(strlen($point) == 0 && !is_int($point)) $point = $config->download_file;
|
if ($config->disable_download == 'Y' && $cur_point + $point < 0)
|
||||||
// If points are less than 0, and if downloading a file is not allowed in this case, give an errors
|
{
|
||||||
if($cur_point + $point < 0 && $config->disable_download == 'Y') return new Object(-1,'msg_cannot_download');
|
return new Object(-1,'msg_cannot_download');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise, points will be adjusted after downloading (triggerDownloadFile).
|
||||||
return new Object();
|
return new Object();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief The trigger to give points for downloading the file
|
* @brief The trigger to give or take points for downloading the file
|
||||||
*/
|
*/
|
||||||
function triggerDownloadFile(&$obj)
|
function triggerDownloadFile(&$obj)
|
||||||
{
|
{
|
||||||
|
|
@ -394,21 +413,32 @@ class pointController extends point
|
||||||
$module_srl = $obj->module_srl;
|
$module_srl = $obj->module_srl;
|
||||||
$member_srl = $logged_info->member_srl;
|
$member_srl = $logged_info->member_srl;
|
||||||
if(!$module_srl) return new Object();
|
if(!$module_srl) return new Object();
|
||||||
|
|
||||||
// Pass if it is your file
|
// Pass if it is your file
|
||||||
if(abs($obj->member_srl) == abs($member_srl)) return new Object();
|
if($member_srl && abs($obj->member_srl) == $member_srl) return new Object();
|
||||||
|
|
||||||
// Get the point module information
|
// Get the point module information
|
||||||
$oModuleModel = getModel('module');
|
$oModuleModel = getModel('module');
|
||||||
$config = $oModuleModel->getModuleConfig('point');
|
$config = $oModuleModel->getModuleConfig('point');
|
||||||
$module_config = $oModuleModel->getModulePartConfig('point', $module_srl);
|
$module_config = $oModuleModel->getModulePartConfig('point', $module_srl);
|
||||||
|
if (isset($module_config['download_file']))
|
||||||
|
{
|
||||||
|
$point = intval($module_config['download_file']);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$point = intval($config->download_file);
|
||||||
|
}
|
||||||
|
|
||||||
// Get the points of the member
|
// Get the points of the member
|
||||||
$oPointModel = getModel('point');
|
$oPointModel = getModel('point');
|
||||||
$cur_point = $oPointModel->getPoint($member_srl, true);
|
$cur_point = $oPointModel->getPoint($member_srl, true);
|
||||||
// Get the points
|
|
||||||
$point = $module_config['download_file'];
|
// Increase or decrease points.
|
||||||
if(strlen($point) == 0 && !is_int($point)) $point = $config->download_file;
|
if ($point)
|
||||||
// Increase the point
|
{
|
||||||
$cur_point += $point;
|
$this->setPoint($member_srl, $cur_point += $point);
|
||||||
$this->setPoint($member_srl,$cur_point);
|
}
|
||||||
|
|
||||||
return new Object();
|
return new Object();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue