Post by Robert TomasikZ punktu widzenia administracji systemem zmiana login, to po prostu
utworzenie nowego użytkownika. Jeśli system posiada zdolność
przenoszenia uprawnień i ustawień, to robisz to tak, że tworzysz nowe
konto, dajesz mu wszystkie uprawnienia i ustawienia starego. likwidujesz
stare konto.
To generalizacja - z jakiegoś, być może prawdziwego, przypadku
szczególnego stworzyłeś nieprawdziwą zasadę ogólną.
Uprawnienia i ustawienia, w tym konkretnym przypadku, może nie są
problemem. Np. historia - owszem. W szczególności historia może wymagać
bycia utrzymywaną przez X lat. Wtedy od razu możesz zapomnieć
o możliwości skasowania konta, a nowego nie założysz jeśli istnieje
stare (nawet jeśli dostęp do niego jest zablokowany).
Od strony technicznej, w znakomitej większości tego typu przypadków -
gdzie dane użytkowników przechowywane są w typowej "znormalizowanej"
relacyjnej bazie danych, zmiana loginu (nazwy użytkownika) wymaga tylko
i wyłącznie zmiany wartości jednego pola w tabeli (użytkowników).
Oczywiście, baza danych to tylko połowa sukcesu. "Front-end" musi mieć
zaprojektowaną i zaimplementowaną funkcję, która to (trywialne) zadanie
wykona. W takim przypadku typowo "brak funkcji" = "nie da się tego
zrobić" (bez naprawdę ważnej przyczyny).
"Admin" mógłby teoretycznie zrobić to ręcznie, coś w stylu "update users
set login = 'asdfg' where login = 'qwerty';" zapewne wystarczy. Tyle że
admin to nie jest user interface, a tego typu ręczne operacje nie
powinny być wykonywane, jeśli naprawdę nie muszą. Wystarczy sobie
wyobrazić co by się stało w przypadku pomyłki (np. gdyby admin nie dał
"where...", i gdyby akurat w tym przypadku baza nie wymuszała
unikalności kolumny login).
Kolejną sprawą (tu wątpliwą) są możliwe odniesienia do danego loginu
w innych systemach - to nie jest sklepik internetowy. Normalnie jednak
takie rzeczy używają np. generowanych automagicznie UUIDów (OIDów itp),
a nie loginów.
Wniosek: lepiej wybierać takie loginy, które będą dobre także za XX lat.
Ale nie wynika to wcale z uwarunkowań technicznych, dla techniki zmiana
loginu to nie jest problem.
--
Krzysztof Hałasa