<commit_before><?php

namespace Fc2blog\Web\Controller\User;

use Fc2blog\Model\Model;
use Fc2blog\Web\Controller\AppController;
use Fc2blog\Web\Request;
use Fc2blog\Web\Session;

abstract class UserController extends AppController
{

  /**
   * ブログID取得
   * @param Request $request
   * @return array|int|mixed|null
   */
  public function getBlogId(Request $request)
  {
    return $request->get('blog_id');
  }

  /**
   * 管理画面ログイン中のブログIDを取得する
   */
  protected function getAdminBlogId()
  {
    return Session::get('blog_id');
  }

  /**
   * 管理画面ログイン中のUserIDを取得する
   */
  protected function getAdminUserId()
  {
    return Session::get('user_id');
  }

  /**
   * ログイン中のブログかどうかを返却
   * @param Request $request
   * @return bool
   */
  protected function isLoginBlog(Request $request)
  {
    // ログイン中判定
    $admin_blog_id = $this->getAdminBlogId();
    if (empty($admin_blog_id)) {
      return false;
    }
    // ログイン中のブログIDと判定
    $blog_id = $this->getBlogId($request);
    if ($admin_blog_id == $blog_id) {
      return true;
    }
    // ログイン判定
    return Model::load('Blogs')->isUserHaveBlogId($this->getAdminUserId(), $blog_id);
  }

  /**
   * ブログのパスワードキー
   * @param $blog_id
   * @return string
   */
  protected function getBlogPasswordKey($blog_id)
  {
    return 'blog_password.' . $blog_id;
  }

  /**
   * 記事のパスワードキー<commit_msg>Refactoring UserController: avoid use Model::load()<commit_after><?php

namespace Fc2blog\Web\Controller\User;

use Fc2blog\Model\BlogsModel;
use Fc2blog\Web\Controller\AppController;
use Fc2blog\Web\Request;
use Fc2blog\Web\Session;

abstract class UserController extends AppController
{

  /**
   * ブログID取得
   * @param Request $request
   * @return array|int|mixed|null
   */
  public function getBlogId(Request $request)
  {
    return $request->get('blog_id');
  }

  /**
   * 管理画面ログイン中のブログIDを取得する
   */
  protected function getAdminBlogId()
  {
    return Session::get('blog_id');
  }

  /**
   * 管理画面ログイン中のUserIDを取得する
   */
  protected function getAdminUserId()
  {
    return Session::get('user_id');
  }

  /**
   * ログイン中のブログかどうかを返却
   * @param Request $request
   * @return bool
   */
  protected function isLoginBlog(Request $request)
  {
    // ログイン中判定
    $admin_blog_id = $this->getAdminBlogId();
    if (empty($admin_blog_id)) {
      return false;
    }
    // ログイン中のブログIDと判定
    $blog_id = $this->getBlogId($request);
    if ($admin_blog_id == $blog_id) {
      return true;
    }
    // ログイン判定
    $blogs_model = new BlogsModel();
    return $blogs_model->isUserHaveBlogId($this->getAdminUserId(), $blog_id);
  }

  /**
   * ブログのパスワードキー
   * @param $blog_id
   * @return string
   */
  protected function getBlogPasswordKey($blog_id)
  {
    return 'blog_password.' . $blog_id;
  }

  /**
   * 記事のパスワードキー
{'fraction_non_alphanumeric': 0.13465703971119133, 'fraction_numerical': 0.0036101083032490976, 'mean_word_length': 3.105185185185185, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '816601', 'n_tokens_mistral': 1138, 'n_tokens_neox': 1095, 'n_words': 168}