Egyszeres bejelentkezés (Single login)

Maximilian képe

Szervusztok! :)

Egyik oldalon, amin barbárkodom szeretném elérni, hogy egy felhasználónév alatt egyszerre csak egyvalaki jelentkezhessen be. Erre azért volna szükség, mert Übercartos webáruház és ha valaki bejelentkezik úgy, hogy más már aktívan vásárolgat, akkor szép tele kocsival indul :o)

Megoldásként kipróbáltam a Single login nevezetű modult, ami eléri, hogy csak egyvalaki legyen bejelentkezve, azáltal hogy azonnal kidobja az előző felhasználót amint új bejelentkezés történik. Ez bizony nem az igazi.

Tehát: Tudtok-e olyan modul/megoldás létezéséről, amivel el lehet érni, hogy egy adott felhasználónévre bannolva legyen egy X ideig az újbóli bejelentkezés, ha a valamennyi ideje volt felhasználói aktivitás?

Köszi előre is!

Drupal verzió: 
Nagy Gusztáv képe

Nem túl tipikus, hogy ugyanarról a felhasználói névről egyszerre több helyről legyenek bejelentkezve. Hogyan, miért fordul ez elő? És ha elő is fordul, ezzel nem neked, hanem az ügyfélnek kellene foglalkoznia. Ha két külön kosarat akar, akkor két külön felhasználói névvel kellene bejelentkeznie, nem?

Én itt a háttérben valami komoly tervezési hibát sejtek.

0
0

Nagy Gusztáv

Maximilian képe

Egy fotográfus barátomnak készítem a weboldalt, a mostani tablófotó szezonra. A cél az volna, hogy az osztály megtekinthesse a próbaképeit, illetve rendelhessen is belőlük.

Kézenfekvőnek tűnt, hogy egy osztály egy felhasználót kapjon és a Checkout résznél megadja a megrendelő diák a saját nevét. Ezzel elkerülhető az, hogy össze kelljen gyűjteni mindenkinek nevét/e-mail címét és ez alapján létrehozni tonnányi felhasználót (minthogy nem egy, hanem sok osztályról lenne szó).

Amúgy személy szerint én egy körlevelet javasoltam az egész webáruházasdi helyett :)

0
0
Nagy Gusztáv képe

ennyi felhasználót, akkor más megoldást kell keresni. Pl. egy képviselő az osztály részéről.

De miért is kellene összegyűjteni? Mindenki regisztrálja magát, aki akarja. Mi a gond?

0
0

Nagy Gusztáv

Maximilian képe

A szabad regisztrációval az a gond, hogy minden jöttment netező regisztrálhatná magát és letölthetné azokat a képeket, amikhez semmi köze. Az megoldás lenne persze, hogy addig ne lásson tartalmakat amíg a nevéből ítélve meg nem bizonyosodik az adminisztrátor, hogy tényleg az osztály egy tagja... de ez így is hercehurca! :(

A képviselő az osztály részéről a működő dolog lehet, de akkor így valóban nem sok értelme lesz a webáruháznak mert nem mindenki akkor és annyit rendelhet meg, ahogy szottyan.

Amit írtál arról viszont eszembe jutott, hogy 2 felhasználó/osztállyal talán jobban működhetne: egy rendelésre és egy csak böngészésre. Akárhány többszörös bejelentkezéssel.

Illetve hasznos volna egy olyan megoldás, hogy felhasználó bejelentkezésekor kiüríteni a kosarat... remélem találok valahol.

Köszi!

0
0
york képe

Akkor miert nem csinaljatok azt, hogy bekeritek a diakok nevet es mail cimet, es ti regisztraljatok be oket, es akkor lehet tudni ki mit rendelt.

0
0
Maximilian képe

Hát, legalább 300 felhasználóról lenne szó évente: felvinni őket, beállítani a jogosultságokat majd törölni őket. :-S

A portál egyik célja az időnyereség lett volna, hogy ne kelljen annyi próbafotót kinyomtatni, elszállítani és papíron visszakérni a rendelést. Persze az anyagköltségen így is lehetne spórolni, de az idő és egyszerűség volna a fő szempont. :(

Nem nagyon találtam arra sem megoldást, hogy hogyan üríthetném ki a Kosarat bejelentkezést követően.

0
0
york képe

Es ha minden osztalynak adsz egy invite kodot es azzal regisztral?
Akkor a kodbol tudod, hogy honnan jott a tobbi adatat meg megadja.

0
0
pp képe

Van egy képviselő aki tud feladni vásárlást(esetleg beállítani a kulcsot). Ő egy azonosított user. És van egy kulcs amivel meg lehet nézni a képeket a névtelen felhasználóknak.

pp

0
0
Illyés Edit képe

Írsz egy kis modult, amiben „megvalósítod” a hook_user()-t.

<?php
function MODULNEVE_user($op, &$edit, &$account, $category = NULL) {
  if ($op == 'login') {
    // Megnézed, hogy van-e a sessions táblában az $account->uid-nek aktív munkamenet-azonosítója.
    $session = db_result(db_query('SELECT uid FROM {sessions} WHERE uid = %d', $account->uid));
    //Ha van, akkor az imént belépett felhasználót kidobod:
    if (!empty($session)) {
      user_logout();
    }
  }
}
?>

Nem biztos, hogy működik, lehet, hogy belefutsz valami rekurzióba, de én erre kezdenék próbálkozni. Ahhoz, hogy ez rendesen menjen, nagyon frissen kell tartani a session táblát, mondjuk 5 percenként futtatni a garbage collector-t és az inaktív azonosítók 100 százalékát törölni, mert ha az első látogató nem lép ki, akkor ott marad utána a session, ami ha jól tudom, alapbeállítás szerint 3 hétig érvényes. Azaz 3 hétig nem tud más belépni az első látogató után. Ezt a settings.php-ben tudod szabályozni, de nem emlékszem, pontosan hogyan, ott elég rendesen kommentelve van a fájl.

Szerk.: a fenti kód biztos nem jó, beküldés után rögtön láttam. :) Mivel az éppen belépett látogatónak is van már azonosítója rögtön a belépés után. Tehát nem empty-re kellene vizsgálni, hanem megnézni, van-e > 1 session ugyanahhoz a felhasználóhoz rendelve.

0
0
Illyés Edit képe

Itt egy jó leírás a settings.php-ben található értékek jelentéséről. (A debianos problémával már én is találkoztam – érdemes Drupal installálás után egy ideig figyelni az adatbázist, hogy fut-e a takarító, és ha nem megy, reklamálni a tárhelyszolgáltatónál.)

0
0