• Rejestracja
vBHELP.pl - polskie wsparcie vBulletin
  1. #1
    23kulpamens jest nieaktywny Początkujący
    Dołączył
    Oct 2009
    Posty
    7

    Question Rozszeżenie funkcji do zarządzania użytkowników poprzez system plugin/hook up

    Witam,

    chciałbym rozszerzyć sobie funkconalność opcji zarządzania użytkownikami w vBulletinie. A dokładnie to mam dwie dodatkowe aplikacje, które chcę jakoś połączyć z VB, tak żeby do wszystkiego był jeden login i hasło, a w przyszłości wspólne logowanie. No i udało mi się zrobić dodawanie użytkowników do bazy pozostałych dwóch aplikacji pisząc plugin dla hooka "register_addmember_complete" oraz "register_activate_process". No i zmieniłem proces hashowania hasła w tamtych aplikacji na ten z VB. Zrobiłem to trochę nieudolnie, gdyż żeby przechwycić id i inne dane użytkownika grzebałem po sessji i GPC. No, ale do rzeczy.

    Chcę teraz napisać hooki/pluginy do usuwania użytkownika, tak żeby usuwało ze wszystkich trzech baz. A także do zmiany hasła, z wiadomych przyczyn. Z tego co wiem, usuwanie użytkownika odbywa sie przy hook "userdata_delete". O tym gdzie się odbywa zmiana hasła nie mam pojęcia. No i pierwsze pytanie za 100 punktów. Skąd wziąć ID użytkownika, który aktualnie jest przetwarzany w procesie. I jeżeli usuwa się użytkowników masowo przez "usuń/przesuń" to czy wtedy hook dizała jakoś inaczej czy to już bez różnicy?

    Z góry dziekuję za wszelką pomoc.

    PS zapomniałem napisać że używam VB 3.8
    Ostatnio edytowane przez 23kulpamens ; 06.04.2011 o 15:55



  2. #2
    Seba jest nieaktywny Advanced Member
    Dołączył
    Feb 2009
    Posty
    1 059
    Przydatne posty
    44

    Domyślnie

    Zacznijmy od tego, że jeżeli chcesz łączyć CMS'y, to powinieneś mieć jedną tabelę użytkowników, a nie trzy oddzielne z identyko podstawowymi danymi.
    Profesjonalne modyfikacje vBulletin oraz style - gg 1981480 badz PW


  3. #3
    Awatar WoG
    WoG
    WoG jest nieaktywny vB Specialist
    Dołączył
    Feb 2008
    Posty
    2 812
    Przydatne posty
    298
    Wpisów
    1

    Domyślnie

    Witaj,

    odpowiem na Twoje pytanie, ale wcześniej uprzedzę Cię, że to co robisz jest na krótką metę.
    Żaden zarządca / programista dużych projektów nie pochwali używania trzech odrębnych baz danych w których pewne dane muszą się pokrywać. Optymalizacja na poziomie 0.
    Stanowczo mówię NIE - powinieneś wszystko sprowadzić do jednej (góra dwóch) baz danych.

    Podczepiłbym wszystko pod bazę danych jednej aplikacji, a do reszty trzeba by modyfikować resztę, ale to już wysoka poprzeczka.
    Innym ciekawym rozwiązaniem byłoby dorobienie kolumn odpowiednich relacji między użytkownikami poszczególnych aplikacji.
    Np. w tabeli users znajdą się kolumny: userid | app1userid | app2userid tak aby skrypt od razu wiedział, którego ID użytkownika ma szukać w innych aplikacjach. To samo w tabelach innych aplikacji.

    Cytat Zamieszczone przez 23kulpamens Zobacz posta
    O tym gdzie się odbywa zmiana hasła nie mam pojęcia.
    Spójrz w plik profile.php i poszukaj tego hooka: profile_updatepassword_start oraz profile_updatepassword_complete

    Cytat Zamieszczone przez 23kulpamens Zobacz posta
    Skąd wziąć ID użytkownika, który aktualnie jest przetwarzany w procesie.
    O który moment pytasz? Przy zmianie hasła jest to
    Kod:
    $vbulletin->userinfo['userid']
    Przy kasowaniu użytkownika (wewnątrz klasy DataManager_User) jest to
    Kod:
    $this->existing['userid']
    Cytat Zamieszczone przez 23kulpamens Zobacz posta
    I jeżeli usuwa się użytkowników masowo przez "usuń/przesuń" to czy wtedy hook działa jakoś inaczej czy to już bez różnicy?
    Jeżeli prawidłowo napisałeś wtyczkę userdata_delete to nie ma różnicy. Każdy z użytkowników skierowany do "usuń/przesuń" przechodzi przez pętle właśnie userdata_delete.
    Z poważaniem,
    WoG

    Ty też możesz pomóc spolszczać vBulletin 5: GitHub.com
    "Rozczarowanie spowodowane niską jakością pamięta się długo po przeminięciu radości spowodowanej niską ceną"


  4. #4
    23kulpamens jest nieaktywny Początkujący
    Dołączył
    Oct 2009
    Posty
    7

    Domyślnie

    Dzięki za pomoc. Fajny pomysł z tą dodatkową tabelą i tłumaczeniem numerów ID. Niestety musiałem zrobić lustrzane odbicia kluczowych danych w tym numerów ID. Oprogramowanie które zakupiła moja firma jest częściowo zaszyfrowane przez IonCube, no i nie mam dostępu do kluczowego kodu, od logowania użytkowników

    Nie pozostaje mi nic innego jak ujednolicić bazy i hakować przez JavaScript

    Chyba że wiecie coś o gotowym pluginie VB, który chociaż ułatwia łączenie logowania przez VB do innych aplikacji


Chmurka.pl

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67