Files
ExpenseCount/app/Model/GroupSetting.php
2026-06-25 13:03:45 +06:00

78 lines
2.3 KiB
PHP

<?php
class GroupSetting extends AppModel
{
var $name='GroupSetting';
private $restricted_modes = ['ON' => 1, 'OFF' => 0];
public function getGroupSettingByURL($unique_url,$custom_select = false){
$options = array(
'conditions' => array('GroupSetting.unique_url' => $unique_url)
);
if ($custom_select) {
$options['fields'] = array(
'GroupSetting.categories',
'GroupSetting.version',
'GroupSetting.is_restricted_mode'
);
}
$groupSettingData = $this->find('first', $options);
if (empty($groupSettingData) && empty($groupSettingData['GroupSetting'])) {
return false;
}
$groupSettingData['GroupSetting']['categories'] = json_decode($groupSettingData['GroupSetting']['categories'], true);
return $groupSettingData['GroupSetting'];
}
public function saveGroupSetting($groupSettingData)
{
$request = $this->_prepareFields($groupSettingData);
return $this->save($request);
}
public function PermissionEnabled($unique_url){
$group_setting = $this->getGroupSettingByURL($unique_url);
if (empty($group_setting)) {
return PUBLIC_PERMIT;
}
$isRestricted = isset($group_setting['is_restricted_mode']) &&
$group_setting['is_restricted_mode'] == $this->restricted_modes['OFF'];
if ($isRestricted) {
return NO_PERMIT;
}
return $group_setting;
}
protected function _prepareFields($data)
{
$returnData = array();
if (isset($data['is_restricted_mode'])) {
$returnData['is_restricted_mode'] = $data['is_restricted_mode'];
}
if (isset($data['expense_id'])) {
$returnData['expense_id'] = $data['expense_id'];
}
if (isset($data['unique_url'])) {
$returnData['unique_url'] = $data['unique_url'];
}
$returnData['categories'] = (!empty($data['categories'])) ? $data['categories'] : '[]';
if (!empty($data['id'])) {
$returnData['id'] = $data['id'];
$returnData['version'] = $data['version'] + 1;
}
else{
$returnData['version'] = 0;
}
return $returnData;
}
}