diff --git a/.github/workflows/setup-php.sh b/.github/workflows/setup-php.sh index ef9b1656c..e978e92a0 100644 --- a/.github/workflows/setup-php.sh +++ b/.github/workflows/setup-php.sh @@ -4,27 +4,47 @@ sudo add-apt-repository -y ppa:ondrej/php # Install all required packages -sudo apt -y install \ - php$1-apcu \ - php$1-bcmath \ - php$1-cli \ - php$1-common \ - php$1-curl \ - php$1-gd \ - php$1-intl \ - php$1-mbstring \ - php$1-mysql \ - php$1-readline \ - php$1-sqlite3 \ - php$1-xml \ - php$1-zip +if [[ "$1" == "8.5" ]]; then + sudo apt -y install \ + php$1-bcmath \ + php$1-cli \ + php$1-common \ + php$1-curl \ + php$1-gd \ + php$1-intl \ + php$1-mbstring \ + php$1-mysql \ + php$1-readline \ + php$1-sqlite3 \ + php$1-xml \ + php$1-zip +else + sudo apt -y install \ + php$1-apcu \ + php$1-bcmath \ + php$1-cli \ + php$1-common \ + php$1-curl \ + php$1-gd \ + php$1-intl \ + php$1-mbstring \ + php$1-mysql \ + php$1-opcache \ + php$1-readline \ + php$1-sqlite3 \ + php$1-xml \ + php$1-zip +fi # Adjust php.ini settings -sudo bash -c "echo 'register_argc_argv = On' >> /etc/php/$1/cli/php.ini" -sudo bash -c "echo 'opcache.enable = 1' >> /etc/php/$1/cli/conf.d/10-opcache.ini" -sudo bash -c "echo 'opcache.enable_cli = 1' >> /etc/php/$1/cli/conf.d/10-opcache.ini" -sudo bash -c "echo 'opcache.jit = tracing' >> /etc/php/$1/cli/conf.d/10-opcache.ini" -sudo bash -c "echo 'opcache.jit_buffer_size = 128M' >> /etc/php/$1/cli/conf.d/10-opcache.ini" +if [[ "$1" == "8.5" ]]; then + sudo bash -c "echo 'register_argc_argv = On' >> /etc/php/$1/cli/php.ini" +else + sudo bash -c "echo 'opcache.enable = 1' >> /etc/php/$1/cli/conf.d/10-opcache.ini" + sudo bash -c "echo 'opcache.enable_cli = 1' >> /etc/php/$1/cli/conf.d/10-opcache.ini" + sudo bash -c "echo 'opcache.jit = tracing' >> /etc/php/$1/cli/conf.d/10-opcache.ini" + sudo bash -c "echo 'opcache.jit_buffer_size = 128M' >> /etc/php/$1/cli/conf.d/10-opcache.ini" +fi # Enable APCu if [ -f "/etc/php/$1/cli/conf.d/20-apcu.ini" ]; then diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index a24ed24e3..0c9f71190 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -139,7 +139,7 @@ class Context */ private static $_check_patterns = array( '@<(?:\?|%)@' => 'DENY ALL', - '@ diff --git a/modules/editor/editor.model.php b/modules/editor/editor.model.php index f6a430aef..bcc20d225 100644 --- a/modules/editor/editor.model.php +++ b/modules/editor/editor.model.php @@ -469,11 +469,6 @@ class EditorModel extends Editor if ($type === 'document') { $option->upload_target_type = 'doc'; - // For dispWidgetAdminAddContent - if ($primary_key_name === 'module_srl') - { - $option->upload_target_type = 'mod'; - } } elseif ($type === 'comment') { diff --git a/modules/file/file.controller.php b/modules/file/file.controller.php index ba8876dbf..cf1842a9e 100644 --- a/modules/file/file.controller.php +++ b/modules/file/file.controller.php @@ -307,7 +307,7 @@ class FileController extends File $file_srl = Context::get('file_srl'); $sid = Context::get('sid'); - $filename_arg = htmlspecialchars_decode(Context::get('filename') ?? ''); + $filename_arg = Context::get('filename'); // Get file information from the DB $file_obj = FileModel::getFile($file_srl); @@ -318,7 +318,7 @@ class FileController extends File { throw new Rhymix\Framework\Exceptions\TargetNotFound('msg_file_not_found'); } - if ($filename_arg !== '' && $filename_arg !== $filename) + if ($filename_arg !== null && $filename_arg !== $filename) { throw new Rhymix\Framework\Exceptions\TargetNotFound('msg_file_not_found'); } @@ -434,7 +434,7 @@ class FileController extends File // Get requsted file info $file_srl = Context::get('file_srl'); $file_key = Context::get('file_key'); - $filename_arg = htmlspecialchars_decode(Context::get('filename') ?? ''); + $filename_arg = Context::get('filename'); $columnList = array('source_filename', 'uploaded_filename', 'file_size'); $file_obj = FileModel::getFile($file_srl, $columnList); @@ -460,7 +460,7 @@ class FileController extends File } // Check filename if given - if ($filename_arg !== '' && $filename_arg !== $filename) + if ($filename_arg !== null && $filename_arg !== $filename) { throw new Rhymix\Framework\Exceptions\TargetNotFound('msg_file_not_found'); } diff --git a/modules/file/file.model.php b/modules/file/file.model.php index ba69f6c6e..4a1c40e7b 100644 --- a/modules/file/file.model.php +++ b/modules/file/file.model.php @@ -476,8 +476,8 @@ class FileModel extends File $nullList = array(); foreach ($output->data as $file) { - $file->download_url = self::getDownloadUrl($file->file_srl, $file->sid, 0, $file->source_filename); $file->source_filename = escape($file->source_filename, false); + $file->download_url = self::getDownloadUrl($file->file_srl, $file->sid, 0, $file->source_filename); $fileList[] = $file; if ($file->upload_target_type === null) { diff --git a/modules/layout/layout.view.php b/modules/layout/layout.view.php index b83713a16..ee6e87b7c 100644 --- a/modules/layout/layout.view.php +++ b/modules/layout/layout.view.php @@ -320,7 +320,7 @@ class LayoutView extends Layout */ function dispLayoutPreview() { - if(!Rhymix\Framework\Security::checkCSRF()) + if(!checkCSRF()) { throw new Rhymix\Framework\Exceptions\InvalidRequest; } diff --git a/modules/member/lang/en.php b/modules/member/lang/en.php index 874008eb8..305947b29 100644 --- a/modules/member/lang/en.php +++ b/modules/member/lang/en.php @@ -152,7 +152,6 @@ $lang->cmd_modify_nickname_allow = 'Allow Nickname Change'; $lang->cmd_modify_nickname_log = 'Nickname Change Log'; $lang->cmd_nickname_symbols = 'Allow Symbols in Nickname'; $lang->cmd_nickname_symbols_list = 'Only Allow:'; -$lang->cmd_nickname_allow_spaces = 'Allow Spaces'; $lang->cmd_member_profile_view = 'Show member profile picture'; $lang->cmd_allow_duplicate_nickname = 'Allow Duplicate Nicknames'; $lang->about_allow_duplicate_nickname = 'Allow more than one member to use the same nickname.'; diff --git a/modules/member/lang/ko.php b/modules/member/lang/ko.php index fd29a4d81..d49ba42ea 100644 --- a/modules/member/lang/ko.php +++ b/modules/member/lang/ko.php @@ -154,7 +154,6 @@ $lang->cmd_modify_nickname_allow = '닉네임 변경 허용'; $lang->cmd_modify_nickname_log = '닉네임 변경 기록'; $lang->cmd_nickname_symbols = '닉네임에 특수문자 허용'; $lang->cmd_nickname_symbols_list = '다음의 문자만 허용:'; -$lang->cmd_nickname_allow_spaces = '띄어쓰기 허용'; $lang->cmd_member_profile_view = '회원 프로필사진 보이기'; $lang->cmd_allow_duplicate_nickname = '닉네임 중복 허용'; $lang->about_allow_duplicate_nickname = '여러 회원이 동일한 닉네임을 사용하는 것을 허용합니다. 주의: 잘못 사용할 경우 혼란이 발생할 수 있습니다.'; diff --git a/modules/member/member.admin.controller.php b/modules/member/member.admin.controller.php index 1bc72fe41..c9aebbfae 100644 --- a/modules/member/member.admin.controller.php +++ b/modules/member/member.admin.controller.php @@ -24,7 +24,7 @@ class MemberAdminController extends Member // if(Context::getRequestMethod() == "GET") return new Object(-1, "msg_invalid_request"); // Extract the necessary information in advance $logged_info = Context::get('logged_info'); - if($logged_info->is_admin != 'Y' || !Rhymix\Framework\Security::checkCSRF()) + if($logged_info->is_admin != 'Y' || !checkCSRF()) { throw new Rhymix\Framework\Exceptions\InvalidRequest; } @@ -127,26 +127,18 @@ class MemberAdminController extends Member } // remove whitespace - foreach (['user_id', 'email_address'] as $val) + foreach(['user_id', 'nick_name', 'email_address'] as $val) { - if (isset($args->{$val})) + if(isset($args->{$val})) { $args->{$val} = preg_replace('/[\pZ\pC]+/u', '', utf8_clean(html_entity_decode($args->{$val}))); } } - if (isset($args->user_name)) + foreach(['user_name'] as $val) { - $args->user_name = utf8_normalize_spaces(utf8_clean(html_entity_decode($args->user_name))); - } - if (isset($args->nick_name)) - { - if (isset($config->nickname_spaces) && $config->nickname_spaces === 'Y') + if(isset($args->{$val})) { - $args->nick_name = utf8_normalize_spaces(utf8_clean(html_entity_decode($args->nick_name))); - } - else - { - $args->nick_name = preg_replace('/[\pZ\pC]+/u', '', utf8_clean(html_entity_decode($args->nick_name))); + $args->{$val} = utf8_normalize_spaces(utf8_clean(html_entity_decode($args->{$val}))); } } @@ -264,7 +256,6 @@ class MemberAdminController extends Member 'update_nickname_log', 'nickname_symbols', 'nickname_symbols_allowed_list', - 'nickname_spaces', 'allow_duplicate_nickname', 'member_profile_view' ); @@ -356,7 +347,6 @@ class MemberAdminController extends Member $args->nickname_symbols = 'Y'; } $args->nickname_symbols_allowed_list = utf8_trim($args->nickname_symbols_allowed_list); - $args->nickname_spaces = (isset($args->nickname_spaces) && $args->nickname_spaces === 'Y') ? 'Y' : 'N'; $oModuleController = getController('module'); $output = $oModuleController->updateModuleConfig('member', $args); diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index a47d72a55..8796115ad 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -163,7 +163,7 @@ class MemberController extends Member */ function procMemberScrapDocument() { - $document_srl = intval(Context::get('document_srl') ?: Context::get('target_srl')); + $document_srl = (int) (Context::get('document_srl') ?: Context::get('target_srl')); if(!$document_srl) { throw new Rhymix\Framework\Exceptions\InvalidRequest; @@ -272,7 +272,7 @@ class MemberController extends Member if(!Context::get('is_logged')) throw new Rhymix\Framework\Exceptions\MustLogin; $logged_info = Context::get('logged_info'); - $document_srl = intval(Context::get('document_srl') ?: Context::get('target_srl')); + $document_srl = (int)Context::get('document_srl'); if(!$document_srl) { throw new Rhymix\Framework\Exceptions\InvalidRequest; @@ -312,8 +312,8 @@ class MemberController extends Member if(!Context::get('is_logged')) throw new Rhymix\Framework\Exceptions\MustLogin; $logged_info = Context::get('logged_info'); - $document_srl = intval(Context::get('document_srl') ?: Context::get('target_srl')); - $folder_srl = intval(Context::get('folder_srl')); + $document_srl = (int)Context::get('document_srl'); + $folder_srl = (int)Context::get('folder_srl'); if(!$document_srl || !$folder_srl) { throw new Rhymix\Framework\Exceptions\InvalidRequest; @@ -524,7 +524,7 @@ class MemberController extends Member if(!Context::get('is_logged')) throw new Rhymix\Framework\Exceptions\MustLogin; $logged_info = Context::get('logged_info'); - $document_srl = intval(Context::get('document_srl') ?: Context::get('target_srl')); + $document_srl = (int)Context::get('document_srl'); if(!$document_srl) throw new Rhymix\Framework\Exceptions\InvalidRequest; $oDocument = DocumentModel::getDocument($document_srl); @@ -796,34 +796,25 @@ class MemberController extends Member } // remove whitespace - foreach (['user_id', 'email_address'] as $val) + foreach(['user_id', 'nick_name', 'email_address'] as $val) { - if (isset($args->{$val})) + if(isset($args->{$val})) { $args->{$val} = preg_replace('/[\pZ\pC]+/u', '', utf8_clean(html_entity_decode($args->{$val}))); } } - if (isset($args->user_name)) + foreach(['user_name'] as $val) { - $args->user_name = utf8_normalize_spaces(utf8_clean(html_entity_decode($args->user_name))); - } - if (isset($args->nick_name)) - { - if (isset($config->nickname_spaces) && $config->nickname_spaces === 'Y') + if(isset($args->{$val})) { - $args->nick_name = utf8_normalize_spaces(utf8_clean(html_entity_decode($args->nick_name))); + $args->{$val} = utf8_normalize_spaces(utf8_clean(html_entity_decode($args->{$val}))); } - else - { - $args->nick_name = preg_replace('/[\pZ\pC]+/u', '', utf8_clean(html_entity_decode($args->nick_name))); - } - } // Check symbols in nickname if($config->nickname_symbols === 'N') { - if(preg_match('/[^\pL\d\s]/u', $args->nick_name, $matches)) + if(preg_match('/[^\pL\d]/u', $args->nick_name, $matches)) { throw new Rhymix\Framework\Exception(sprintf(lang('msg_invalid_symbol_in_nickname'), escape($matches[0]))); } @@ -831,7 +822,7 @@ class MemberController extends Member elseif($config->nickname_symbols === 'LIST') { $list = preg_quote($config->nickname_symbols_allowed_list, '/'); - if(preg_match('/[^\pL\d\s' . $list . ']/u', $args->nick_name, $matches)) + if(preg_match('/[^\pL\d' . $list . ']/u', $args->nick_name, $matches)) { throw new Rhymix\Framework\Exception(sprintf(lang('msg_invalid_symbol_in_nickname'), escape($matches[0]))); } @@ -1107,28 +1098,19 @@ class MemberController extends Member $args->extra_vars = serialize($extra_vars); // remove whitespace - foreach (['user_id', 'email_address'] as $val) + foreach(['user_id', 'nick_name', 'email_address'] as $val) { - if (isset($args->{$val})) + if(isset($args->{$val})) { $args->{$val} = preg_replace('/[\pZ\pC]+/u', '', utf8_clean(html_entity_decode($args->{$val}))); } } - if (isset($args->user_name)) + foreach(['user_name'] as $val) { - $args->user_name = utf8_normalize_spaces(utf8_clean(html_entity_decode($args->user_name))); - } - if (isset($args->nick_name)) - { - if (isset($config->nickname_spaces) && $config->nickname_spaces === 'Y') + if(isset($args->{$val})) { - $args->nick_name = utf8_normalize_spaces(utf8_clean(html_entity_decode($args->nick_name))); + $args->{$val} = utf8_normalize_spaces(utf8_clean(html_entity_decode($args->{$val}))); } - else - { - $args->nick_name = preg_replace('/[\pZ\pC]+/u', '', utf8_clean(html_entity_decode($args->nick_name))); - } - } // Check if nickname change is allowed @@ -1152,7 +1134,7 @@ class MemberController extends Member // Check symbols in nickname if($config->nickname_symbols === 'N') { - if(preg_match('/[^\pL\d\s]/u', $args->nick_name, $matches)) + if(preg_match('/[^\pL\d]/u', $args->nick_name, $matches)) { throw new Rhymix\Framework\Exception(sprintf(lang('msg_invalid_symbol_in_nickname'), escape($matches[0]))); } @@ -1160,7 +1142,7 @@ class MemberController extends Member elseif($config->nickname_symbols === 'LIST') { $list = preg_quote($config->nickname_symbols_allowed_list, '/'); - if(preg_match('/[^\pL\d\s' . $list . ']/u', $args->nick_name, $matches)) + if(preg_match('/[^\pL\d' . $list . ']/u', $args->nick_name, $matches)) { throw new Rhymix\Framework\Exception(sprintf(lang('msg_invalid_symbol_in_nickname'), escape($matches[0]))); } diff --git a/modules/member/tpl/default_config.html b/modules/member/tpl/default_config.html index 0155e3140..ceb2b259e 100644 --- a/modules/member/tpl/default_config.html +++ b/modules/member/tpl/default_config.html @@ -83,7 +83,6 @@
{$lang->about_nickname_symbols}
- - -suffix; - $__Context->employees = [ - ['name' => 'Alice', 'age' => 30], - ['name' => 'Bob', 'age' => 25], - ['name' => 'Charlie', 'age' => 35], - ]; - $__Context->suffix = '님'; - $__Context->names = array_map(function($e, $key = 'name') use ($suffix) { - return $e[$key] . $suffix; - }, $__Context->employees); - function convert_names(array $names = array()): array - { - return array_map(function($name) { - return ucfirst($name); - }, $names); - } -?> -