Multisito senza condividere la tabella SESSIONS

5 contenuti / 0 new
Ultimo contenuto
Multisito senza condividere la tabella SESSIONS

Salve a tutti,
vi chiedo un aiuto per la gestione di una installazione multisito.
Le necessità di base sono:
1) Mantenere il login utente passando da un sito all'altro
2) Tutti i siti condividono gli utenti e i loro ruoli (tabelle users, users_role etc condivise)
3) Ogni sito deve avere un suo database
4) Ogni sito deve avere una propria tabella sessions

COSA HO FATTO:
Supponiamo di avere due siti:sito1.com e sito2.com
1) Ho installato drupal normalmente
2) Ho generato tre database:
db_shared con le tabelle users,users_role,role,authmap,profile_fields,profile_values
db_sito_1 con tutte le tabelle di drupal escluse quelle in db_shared
db_sito_2 con tutte le tabelle di drupal escluse quelle in db_shared
Con l'utente e la password che fornisco, drupal può accedere a tutti e tre i db

2) Ho creato per ogni sito il file /sites/sitoX.com/settings.php
Al suo interno ho impostato:

$db_prefix = array(
  'default' => '',
  'users' => 'db_shared.',
  'users_roles' => 'db_shared.',
  'role' => 'db_shared.',
  'profile_values' => 'db_shared.',
  'profile_fields' => 'db_shared.',
  'authmap' => 'db_shared.',
);
$cookie_domain = '.multisito.com';

IL MIO PROBLEMA
I punti 2) e 3) sono risolti.
Il problema al punto 1) , login unico, lo risolverei egregiamente condividendo anche la tabella di sessione.
Ma, ecco il problema del punto 4), questo per me non è possibile perchè quando non operavo ancora in logica multisito avevo sviluppato alcuni moduli che fanno uso , delle variabili di sessione archiviate nella tabella di sessione. Quindi condividendo adesso la tabella le variabili di sessione si sovrapporrebbero per i diversi siti.
Vorrei allora trovare un meccanismo tale che quando eseguo il login da un sito, automaticamente il login sia impostato anche per tutti gli altri siti modificando le opportune variabili di sessione, così passando da un sito all'altro non ci sarebbe bisogno di rieseguire il login.

L'alternativa è di generare tutte le variabili di sessione con un prefisso diverso per ogni sito, impostato in settings.php, e condividere la tabella session.

Ho visto che esistono i moduli Organic Group e Single Sign-on, ma non li conosco.
Qualcuno sa se possono essere utili al mio problema? Qualcuno mi sa suggerire alternative o soluzioni?
Grazie
Enzo

P.S. uso Drupal 6.x

non so se ti può essere d'aiuto, ma io ho risolto utilizzando il Modulo Domain http://drupal.org/project/domain
che in pratica simula un'installazione multisito creando nuove tabelle nel db ma avendo la possibilità di condividerne alcune

---
"Solo gli imbecilli non hanno dubbi"
"Ne sei sicuro?"
"Non ho alcun dubbio!"
(da Il dubbio di Luciano De Crescenzo)

Grazie, ma la tabella sessions l'hai condivisa?

________________________________________________________________________________________
Quando risolverai il problema, scrivi come hai fatto, e se puoi scrivi [RISOLTO]
Sarà utile ad altri. Grazie
enzoazzolini.it

Una soluzione alternativa http://drupal.org/project/bakery

----------------------------------------
bI’Iqchugh’ yIvang !
Se sei triste, agisci!

Proverbio Klingon

no, io la tabella sessions non l'ho condivisa, ma ho condiviso la tabella user e condivido i contenuti e funziona bene

---
"Solo gli imbecilli non hanno dubbi"
"Ne sei sicuro?"
"Non ho alcun dubbio!"
(da Il dubbio di Luciano De Crescenzo)