module - components


(Mattia Minini) #1

ciao a tutti,

sto provando a creare un modulo per gestire un “backend” senza dover usare l’advanced template.

Il punto è che vorrei far loggare un utente nella parte backend(modulo), senza che risulti loggato nella parte frontend (applicazione)

Per farlo ho impostato nel file di configurazione del modulo, che vado a caricare




public function init()

    {

        parent::init();


        // load configuration

        \Yii::configure($this, require(__DIR__ . '/config/config.php'));




il component ‘user’ in questo modo




<?php

return [

	'layout'=>'main',

	'defaultRoute' => '/default',

	//'layoutPath' => '',

	'components' => [

        // list of component configurations

        'user' => [

            'class'=>'app\modules\backend\components\User',

            'identityClass' => 'common\modules\backend\models\User',

            'enableAutoLogin' => true,

            'identityCookie' => [

                'name' => '_identity-backend',  

                'httpOnly' => true

            ],

            'idParam' => 'id_backend', //this is important !

        ],

    ],

    'params' => [

        // list of parameters

    ],

];



Nella configurazione generica dell’app invece




'user' => [

            'identityClass' => 'app\models\User',

            'enableAutoLogin' => true,

            'identityCookie' => ['name' => '_identity-frontend', 'httpOnly' => true],

            'idParam' => 'id_', //this is important !

        ],



Una volta loggato, se guardo i cookie c’è il riferimento a quella del frontend e l’utente risulta loggato nella parte frontend.

E’ come se quello che imposto nella configurazione del modulo non viene presa in considerazione. La proprietà layout invece funziona correttamente e il modulo ha un altro layout rispetto all’app generale.

Grazie mille in anticipo,

Mattia


(Fabrizio Caldarelli) #2

Perchè reinventare la ruota quando esiste l’advanced template con il backend già pronto?

Male che vada, se sei partito con il basic, puoi scaricarti l’advanced e copiare la cartella del backend.


(Mattia Minini) #3

ciao Fabrizio,

nel forum inglese ho letto che tanti usavano la parte admin come modulo, e mi chiedevo a quel punto come facessero a utilizzare il doppio login. Dato che non ho trovato quasi nulla a riguardo immaginavo fosse molto facile gestirlo.

Inoltre ho letto che l’advanced ha bisogno di avere domini diversi per le varie app (anche se poi ho trovato come fare la configurazione in un shared host)

Come suggerisci te andrò sulla versione advanced.


(Giando Olini) #4

Ciao,

con yii2 APP advanced devi separare le due sessioni facendo un piccolo aggiornamento del file di configurazione,

le istruzioni le trovi qui:

http://www.yiiframework.com/wiki/686/configuring-different-sessions-for-backend-and-frontend-in-yii-advanced-app/

Puoi tranquillamente usare yii2 APP advanced sullo stesso dominio frontend/backend.