Ticket #1047 (closed バグ指摘: 修正済)

Opened 11 years ago

Last modified 11 years ago

[管理画面]コンテンツ管理(ファイル管理):拡張子のないファイルを表示しようとするとエラー

Reported by: shutta Owned by: shutta
Priority: Milestone: EC-CUBE2.11.0 リファクタリングProject
Component: 管理画面 Version: 2.11.0 β
Keywords: Cc:
修正済み:

Description (last modified by shutta) (diff)

コンテンツ管理->ファイル管理で、
拡張子のないファイル(例:dummy)の表示ボタンを押すと、
ポップアップ画面の表示が、

エラーが発生しました。
もう一度ご確認のうえ、再度ログインしてください。

と、エラーになる。

Change History

comment:1 Changed 11 years ago by shutta

  • Description modified (diff)

comment:2 Changed 11 years ago by shutta

LC_Page_Admin_Contents_FileView.phpに、下記のように実装されているので、意図的にエラーにしているっぽい。

    /**
     * 表示するファイルにエラーチェックを行う
     *
     * @param SC_FormParam $objFormParam SC_FormParam インスタンス
     * @return boolen $file_check_flg エラーチェックの結果
     */
    function checkErrorDispFile($objFormParam) {
        $file_check_flg = false;

        // FIXME パスのチェック関数が必要
        $file = $objFormParam->getValue('file');

        // ソースとして表示するファイルを定義(直接実行しないファイル)
        $arrViewFile = array(
            'html',
            'htm',
            'tpl',
            'php',
            'css',
            'js',
        );

        // 拡張子取得
        $arrResult = split('\.', $objFormParam->getValue('file'));
        $ext = $arrResult[count($arrResult)-1];

        if (!preg_match('|\./|', $file) && in_array($ext, $arrViewFile)) {
            $file_check_flg = true;
        }

        return $file_check_flg;
    }

...

    function action() {

...

                // 表示するファイルにエラーチェックを行う
                if ($this->checkErrorDispFile($objFormParam)) {
                    $this->execFileView($objFormParam);
                } else {
                    SC_Utils_Ex::sfDispError('');
                }
                exit;

...

comment:3 Changed 11 years ago by shutta

  • Owner changed from somebody to shutta
  • Status changed from new to assigned

comment:4 Changed 11 years ago by shutta

  • Status changed from assigned to closed
  • Resolution set to 修正済

r20418 で修正。 #1016r20209 にて、リファクタリング後に元実装と挙動が変わってしまっていたのを修正。 元々は、arrViewFileにない拡張子のファイルは、エラーとせずにredirectしていたので、そっちに直した。

Note: See TracTickets for help on using tickets.