LOGIN ID Password Auto Login Register Now! Lost Password?
XUGJ Forum

d3コメント統合の、元記事閲覧権限連動ハック

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています

投稿ツリー


前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2009/12/24 9:14
Maria  2nd Class 居住地: ☆☆☆  投稿数: 16
なーおさん、こんにちは。

同じ箇所があったので試してみましたがうまくいきませんでした。
記事概要の表示方法の変更もしてみましたが変わらずでした。

修正コードの1行目(if文の行)が、なーおさんのpiCal用のと表記がだいぶ違うのでこの辺を何とかしたら…とか思ったのですが…
まだよくわかっていないので手をつけられません。
投票数:3 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2009/12/24 18:55 | 最終変更
naao  Commander 居住地: 2006年10月頃~  投稿数: 509
Mariaさん、こんにちは。

引用:
修正コードの1行目(if文の行)が、なーおさんのpiCal用のと表記がだいぶ違うのでこの辺を何とかしたら…とか思ったのですが…
まだよくわかっていないので手をつけられません。

ここは、モジュール毎にまったく違うコードになります。 d3blogの権限周りは私もあまり見通したことがなく、 作者のhodaka様か、他の方のお力添えをいただきますようお願いします。
投票数:3 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2009/12/27 18:28 | 最終変更
naao  Commander 居住地: 2006年10月頃~  投稿数: 509
Mariaさん、こんにちは。

少し時間が出来たので、簡単な方法でやってみました。
同じクラス内の Validate_idメソッド内の処理をそのままコピペした手抜きな方法ですので、問題などありましたら、どなたかフォローお願いします。

一応、私の環境では権限が無い時にリダイレクトしてくれています。 なお、私のd3blogのバージョンが1.03でしたので、ご使用のバージョンを編集してください。

function fetchSummary( $external_link_id )
{
    $db =& Database::getInstance();

    $return = array();
    
    if( preg_match( '/[^0-9a-zA-Z_-]/' , $this->mydirname ) ) die( 'Invalid mydirname' );

    $mydirname = $this->mydirname;  // just to get module instance
    require_once dirname(dirname(__FILE__)).'/include/prepend.inc.php';
    $myModule = call_user_func(array($mydirname, 'getInstance'));

	// PERMISSION
    global $currentUser;
    if($currentUser->blog_perm($myModule->module_id) < D3BLOG_CAN_VIEW) {
//        return $return;
	redirect_header(XOOPS_URL.'/user.php',3,_NOPERM);	// added by naao
	exit();		// added by naao
    }
	
    $entry_handler =& $myModule->getHandler('entry');
    
    // added by naao from
    $entry =& $entry_handler->getEntry(intval($external_link_id), false);
    
    if(!is_object($entry)) {
	redirect_header(XOOPS_URL.'/user.php',3,_NOPERM);
	exit();
    }
    // added by naao to

    $criteria = new criteriaCompo(new criteria('bid', intval($external_link_id)));
    $entry = $entry_handler->getOne($criteria);

    if(is_object($entry)){
        $return['dirname'] = htmlspecialchars($mydirname, ENT_QUOTES);
        $return['module_name'] = $myModule->module_name;
        $return['uri'] = sprintf('%s/modules/%s/details.php?bid=%d', XOOPS_URL, htmlspecialchars($mydirname, ENT_QUOTES), intval($external_link_id));  
        $return['subject'] = $entry->title();
        $return['summary'] = $entry->pingExcerpt();
    }

    return $return;
}

(追記)
 蛇足になりますが、 d3blogのモジュールアップデートの際に編集したクラスファイルを上書きする危険性があるので、 別クラス名に編集する方法をお勧めします。例として、
・「d3blogD3commentEntry.class.php」 → 「d3blogD3commentEntry2.class.php」 としてコピー作成。
・コピー先ファイルを編集します。
class d3blogD3commentEntry2 extends D3commentAbstract
・d3forumの統合先フォーラム設定の編集
 (左の「d3blog」はインストールディレクトリ名に変更)
d3blog:d3blogD3commentEntry2::d3blog
投票数:5 平均点:8.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2009/12/28 14:02
Maria  2nd Class 居住地: ☆☆☆  投稿数: 16
なーおさん、こんにちは。

1.05ですが、これと同じ方法で権限が無い場合にリダイレクトするようになりました。
ありがとうございます!
投票数:4 平均点:10.00
  条件検索へ

Back to Page Top
MainMenu
Manuals
Search
XOOPS Official & Dev.
XOOPS Communities