/**
 * プラグイン規定関数::ブロック型で呼び出された場合の処理
 * 認証済みの場合: 何もしない(空の画面を生成する)
 * 認証情報が指定されている場合: 認証処理を行う
 * 認証情報が指定されていない場合: 認証画面を生成する
 *
 * 引数: なし
 *
 * @return string 画面(html)
 */
function plugin_movieviewer_auth_convert()
{
    global $vars;
    $manager = plugin_movieviewer_get_auth_manager();
    $req_user_id = filter_input(INPUT_POST, "movieviewer_user");
    // 認証開始
    if ($req_user_id !== null && $req_user_id !== "") {
        try {
            plugin_movieviewer_validate_csrf_token();
        } catch (MovieViewerValidationException $ex) {
            return plugin_movieviewer_auth_move_to_authpage(true);
        }
        try {
            plugin_movieviewer_validate_user_id($req_user_id);
        } catch (MovieViewerValidationException $ex) {
            return plugin_movieviewer_auth_move_to_authpage(true);
        }
        try {
            $maybe_user = plugin_movieviewer_get_user_repository()->findById($req_user_id);
        } catch (MovieViewerRepositoryObjectNotFoundException $ex) {
            plugin_movieviewer_auth_move_to_authpage(true);
        }
        $user_password = filter_input(INPUT_POST, 'movieviewer_password');
        if (!$maybe_user->verifyPassword($user_password)) {
            return plugin_movieviewer_auth_move_to_authpage(true);
        }
        $manager->login($maybe_user);
        return '';
    }
    // 認証済み
    if ($manager->isAuthenticated()) {
        return '';
    }
    // 認証なし
    return plugin_movieviewer_auth_move_to_authpage(false);
}
function plugin_movieviewer_validate_review_pack_request_id($id)
{
    list($user_id, $formatted_requested_date) = explode("###", $id, 2);
    plugin_movieviewer_validate_user_id($user_id);
    plugin_movieviewer_validate_review_pack_formatted_date_requested($formatted_requested_date);
}