LOGOWANIE NAZWY UŻYTKOWNIKA W QGIS I POSTGRESQL

Dzisiaj wpis techniczny, o logowaniu nazwy użytkownika dokonującego edycji w QGISie.

Scenariusz jest taki: mamy użytkowników, np. „klikaczy” wektoryzujących warstwę. Wszyscy pracują w QGISie i mają podłączoną jedną warstwę z postgreSQLa do której dodają obiekty. Aby do każdego obiektu dodanego do tabeli w bazie danych przypisana była nazwa użytkownika musimy zrobić co następuje: utworzyć kolumnę na nazwę użytkownika a następnie ustawić jej wartość domyślną na CURRENT_USER. Można to zrobić już przy tworzeniu tabeli, jak na przykładzie poniżej:

create table public.test_cur_user (id serial, geometria geometry, uzytkownik character varying(24) default current_user)

Można też wyklikać to sobie w pgAdminie tak:
cur_usr

We właściwościach kolumny na zakładce „definicja” wpisujemy to co na zrzucie powyżej.
Jeśli nic nie pokręcimy to w podanej kolumnie znajdą się wartości jakie użytkownicy mają poustawiane w QGISie we właściwościach połączenia do bazy postgreSQL.
qgs

Podane rozwiązanie jest o tyle dobre, że nie ma potrzeby pisania wyzwalaczy w plpgsql. Minusem rozwiązania jest to, że QGIS  zapisuje w pliku projektu na sztywno dane do połączenia do bazy, więc jeśli użytkownicy rozprzestrzenią między sobą jeden plik projektu QGISa to wszyscy będą pracować na jednym loginie. Nie wiem czy to bug QGISa i czy da się to jakoś obejść, nie zgłębiałem tematu, ale spotkałem się z takim przypadkiem.

Related Posts