リンクを経由してCPへのEE 2.7.3ログインにアップグレードしました

On 2.5.5 I had a link like this on the client's product pages: http://cl.ly/image/2c3G3m1X0a3D

Very simple, if they are logged into the CP on another tab, they click the edit link and it opens this product's CP edit page in a new tab. The link looks like this: http://www.domain.com/admin/index.php?D=cp&C=content_publish&M=entry_form&channel_id=12&entry_id=7832

何年も偉大な働きをした。これらのすべてが真である場合にのみリンクが表示されるので、現在のCPセッションにログインし、リンクを表示する権利があることがわかります。

    $is_admin = TRUE;

    if($this->EE->session->userdata('group_id') != '1' AND $this->EE->session->userdata('group_id') != '6') {
        $is_admin = FALSE;
    }

    if($this->EE->session->userdata('access_cp') != 'y') {
        $is_admin = FALSE;
    }

    if($this->EE->session->userdata('admin_sess') != 1) {
        $is_admin = FALSE;
    }

私はそれらを2.7.3に更新しました。そして、それらの同じリンクはCPログインページだけを持ち出します。これが動作しないようにするセッション/セキュリティモデルの変更点

1

1 答え

変更されたのは、EEがコントロールパネルのURLにセッションIDが必要になってしまうことです。 (これはS = e8a181fc77af1b35e47193c0e0b27a15の部分です)。

You can disable this at Admin -> Security and Privacy -> Security and Sessions, changing the Control Panel session type to Cookies Only.

Or, you can just add the session ID into your URLs, which is available in templates as {cp_session_id}

1
追加された
感謝のジェレミー - それは正しい方向に私を指摘した。私は実際にこのリンクをプラグインの内部に構築しているので、この場合は{cp_session_id}は利用できませんでしたが、それは正しい情報です。私は自分のフロントエンドタブのセッション情報を見て、私のEE session_idが他のタブのsession_idと異なっていたのに対し、同じsession_idを含むfingerprintというセッション変数があったので、$ this-> EE-> session-> userdata( '指紋')私のためにそれをしました。
追加された 著者 Rob Allen,