Drupal 7 multisite shared users

makgab képe

Üdv!

D6-ban szépen működik a multisite osztott useradatokkal (azaz a főadatbázisből azonosította a második site usereit is).
D7-ben is szeretném ezt megoldani. A neten levő infokból az alábbira jutottam.
A fő site 'settings.php'-je, pl.:

...
$databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => 'drupal7',
      'username' => 'user',
      'password' => 'pass',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',
    ),
  ),
);
...

A második site:

...
$databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => 'drupal7_multisite',
      'username' => 'user2',
      'password' => 'pass2',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => => array(
                 'default'   => '',
                 'users'     => 'drupal7.',
                 'sessions'  => 'drupal7.',
                 'role'      => 'drupal7.',
                 'authmap'   => 'drupal7.',
                 // profile_fields => 'drupal7.',
                 // profile_values => 'drupal7.',
                 ),
    ),
  ),
);
...

Elvileg ez lenne a helyes beállítás?

Germán Zsolt képe

Szia, ezt próbáld ki légy szíves:

-- fő site --

  1. $databases = array (
  2. 'default' =>
  3. 'default' =>
  4. 'database' => 'drupal7',
  5. 'username' => 'user',
  6. 'password' => 'pass',
  7. 'host' => 'localhost',
  8. 'port' => '',
  9. 'driver' => 'mysql',
  10. 'prefix' => 'drupal7_',
  11. ),
  12. ),
  13. );

-- másik site --

  1. $databases = array (
  2. 'default' =>
  3. 'default' =>
  4. 'database' => 'drupal7',
  5. 'username' => 'user',
  6. 'password' => 'pass',
  7. 'host' => 'localhost',
  8. 'port' => '',
  9. 'driver' => 'mysql',
  10. 'prefix' => 'other_',
  11. ),
  12. ),
  13. );
  14.  
  15. $db_prefix = array(
  16. 'users' => 'drupal7_'
  17. );

Ezzel ugyanazt az adatbázist fogja használni a két site, de más prefix-szel. Viszont users tábla esetén a $db_prefix beállítása miatt a fő site tábláját fogja használni.

Igazából még nem foglalkoztam ilyennel, de több oldalon is láttam, hogy inkább ehhez hasonló kódokkal próbálkoztak. Persze ez csak néhány site esetén működik jól, sok site esetén tényleg jobb, ha külön adatbázisban vannak.

Ha sikerült megnézned, légy szíves írj vissza, hogy működik-e, vagy ha esetleg máshogy sikerült megoldanod, akkor azt is várjuk vissza.

Üdv, Zsolt

0
0
pp képe

Figyelj oda, hogy míg hatosig nagyjából meg lehetett mondani, hogy mely táblák kapcsolódnak a felhasználóhoz, addig hetesben a field modul miatt már nem lesz igaz. (vagy elfogadod, hogy a különböző szájtokon különböző fieldjei és - akár azonos fieldek esetén - különböző beállításai lesznek a júzereknek)

Én más megoldást keresnék, valamilyen SSO-t.

pp

2
0
makgab képe

Ebből indultam ki: http://drupal.org/node/1043724
De találtam SSO modult, pl.: http://drupal.org/project/bakery
ezzel csak annyi gond van, hogy aldomain-t kezel csak:
"Can I use Bakery on different domains?
No, Bakery only works for sites on the same domain, like store.example.org and www.example.org and will not work for sites on different domains."

Én két különböző domain-t szeretnék így kezelni.

0
0
snufkin képe

En is amondo volnek, mint PP, az esetek tobbsegeben adatbazis tabla megosztas bar lehetseges, de nem egy nyero otlet. Esetleg elmondod a use-case-t, ami miatt meg akarod osztani a usereket?

0
0
makgab képe

Egyszerűen van két site, amin végülis ugyanazon téma van és ne kelljen két helyen regisztrálni.
Ez volt az igény.

D6 alatt tökéletesen működik régóta.

0
0
makgab képe

Illetve, ha már shared users, akkor a multisite:

$databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => 'drupal7_multisite',
      'username' => 'user2',
      'password' => 'pass2',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => => array(
                 'default'   => '',
                 'users'     => 'drupal7.',
                 'sessions'  => 'drupal7.',
                 'role'      => 'drupal7.',
                 'authmap'   => 'drupal7.',
                 'users_roles' => 'drupal7.',
                 ),
    ),
  ),
);
0
0