Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Integracja systemów, czyli przechowywanie danych userów
DeyV
post
Post #1





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




W końcu doszło do tego, że nie mogę już dużej odwlekać zabrania się za tą pracę, a że nie mam pomysłu na to, jak zrobić to "dobrze", stąd chciałbym usłyszeć Wasze opinie.

Zadanie polega na integracji bazy użytkowników w kilku zupełnie różnych systemach.
Jest to forum, wiki, eZ i jeszcze chyba mantis. (nie trudno się domyślać, na czyje potrzeby (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) )
Problem wydawałoby sie - banalny - w końcu chodzi tylko o to, by można się było raz zalogować, i być zalogowanym od razu we wszystkich tych systemach (działających na różnych subdomenach) oraz by wszędzie działały te same hasła i loginy.

Niestety - mimo że każdy z tych systemów jest napisany obiektowo - i każdy ma jakąś klasę typu User, zajmującą się tego typu zadaniami - to jednak sposób przechowywania tych informacji, a także ich obsługa - jest mocno zróżnicowana.
Dodatkowo - każdy z tych systemów przechowuje różne specyficzne dla siebie, ustawienia profilu.
Dodatkowo - jak już wcześniej zauważyłem - każdy z nich działą w innych subdomenach, co może (choć chyba nie musi) nieco utrudniać przenoszenie się identyfikatora sesji.

Jak można to rozwiązać?
1. przygotować osobny mechanizm, któy będzie zawierał wszystkie dane użytkownika, w którym użytkownik będzie się logował, przypominal sobie hasła, konfigurował wszystkie ustawienia itp.
Teraz jednak ciąg dalszy może wyglądać tak:
a ) nasz mechanizm podczas tworzenia nowego użytkownika tworzy odpowiednie konta we wszystkich systemach do niego podpiętych, podczas aktualizacji danych - aktualizuje je również w odpowiednich działach.
Natomiast poszczególne systemy mają albo wyłączone panele konfiguracyjne, albo panele, które podczas zapisywania niektórych danych - zapisują je również w naszym mechaniźmie.
- zamiast automatycznego tworzenia wszystkich profili, użytkownik, podczas pierwszego wejścia na np. forum może zostać poproszony o uzupełnienie niezbędnych danych.

b ) centralny mechanizm staje się jedynym miejscem przechowywania danych użytkownika, wszystkie pozostałe systemy mają całkowicie wyłączoną możliwość przechowywania i edycji tych ustawień. Przez cały czas muszą więc odwoływać się do centrali. W przypadku niektórych z nich - np. forum, wymagałoby to chyba bardzo dużych zmian.

2. rozbudować największy z istniejących mechanizmów - najprawdopodobniej forum, tak by pozwalało na konfiguracę również innych programów.
poziom trudności - spory.
Co więcej - traci się intuicyjność, bo skąd użytkownik ma wiedzieć, że aby zmienić ilość tematów wyświetlanych na wiki, musi wejść na forum?
Utrudnia to również logowanie do poszczególnych systemów, bo zawsze należy zaczynać od forum.

Czy są jeszcze jakieś inne rozwiązania?
Najlepiej takie, ktore by maksymalnie obniżyły konieczność ingerencji w poszczególne systemy (bo to, jak wiadomo - znacznie obniża możliwości ich aktualizacji...)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wojto
post
Post #2





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 29.06.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Ja bym to widział tak jak anas, czyli stworzyc cos w rodzaju sterownika, ktory by pobieral z sesji głównej (zapisywane by tu były login i hasło użytkownika oraz wszystkie inne dane wymagane do zalogowania do wszystkich modułów (moduły mam na myśli forum, ez, wiki itp.)) i nastepnie w zaleznosci od miejsca jego wywolania wysylal by te dane do metody logowania juz w wybranym module.
Podczas rejestracji uzytkownik musialby wypelnic pola, ktore by byly sumą wszystkich przymusowych pol z kazdego modulu, pozniej user sie loguje do ktoregos z modulu, powiedzmy na forum, sterownik wywoluje metode z forum odpowiedzialna za logowanie, a jednoczesnie zapisuje dane login i haslo w tej glownej sesji. Nastepnie user chce wejsc na wiki, sterownik widzi, ze user usiluje tu wejsc i pobiera dane z glownej sesji i wysyla je do metody logowania w module wiki i analogicznie z ez i mantis.

Takie rozwiazanie wydaje mi sie byc proste w implementacji, gdyz wystarczy napisac ten sterownik (niezbyt trudne) oraz w kazdym module w logowaniu dodac metode dodawania danych do glownej sesji.
Oraz napisac wywolywanie metody sprawdzajacej z tego sterownika wykonywane na kazdej podstronie.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 05:38