Aplikacja do zarządzania uprawnieniami użytkowników do poszczególnych spółek w Płatniku

Do napisania tej aplikacji skłoniła mnie konieczność zmiany uprawnień do różnych spółek dla wielu kont użytkowników w Płatniku. Program, którym współadministruję, zawiera 25 spółek (bieżących i archiwalnych) oraz ponad 70 aktywnych kont użytkowników (z Kadr i Płac). Ci, którzy korzystają z Płatnika, wiedzą, że zarządzanie użytkownikami jest mało wygodne, w szczególności nie da się zbiorowo ustawiać uprawnień, ani też listy tych uprawnień uzyskać choćby dla ogólnej weryfikacji czy wszystko jest zrobione poprawnie. Dla kilku kont nie jest to żaden problem, ale w przypadku kilkudziesięciu lub więcej kont już nie jest to takie proste. Dlatego postanowiłem napisać prostą aplikację (wykorzystując PHP oraz HTML i JavaScript) do wygodnego zarządzania uprawnieniami użytkowników poszczególnych spółek.

Zarządzanie uprawnieniami użytkowników
Na początek przygotowałem wyświetlanie zbiorczej tabeli, w której w kolumnach są wypisane poszczególne nazwy skrócone spółek, a w wierszach są wyszczególnieni wszyscy użytkownicy (konta). Żeby to zrobić, musiałem wykorzystać dane zawarte w kilku tabelach bazy SQL Płatnika:
  UZYTKOWNIK - zawiera dane poszczególnych użytkowników, mnie interesowały pola ID, LOGIN, IMIE i NAZWISKO;
  PLATNIK - zawiera dane poszczególnych płatników (spółek), mnie interesowały tylko pola ID i NAZWASKR;
  PLATN_IDENT - zawiera historię zmian danych poszczególnych firm, mnie interesowały pola ID_PLATNIK i NAZWASKR;
  UPRAWNIENIA - zawiera wykaz uprawnień (w postaci par użytkownik-spółka), pola te mają nazwy ID_UZYTKOWNIK i ID_PLATNIK;
Przy rozpracowywaniu zależności między polami nie korzystałem z dokumentacji programu Płatnik, ponieważ nie było to konieczne - wystarczyła prosta analiza na podstawie znajomości danych w Płatniku.

Kodowanie/dekodowanie haseł użytkowników
Aby zarządzać kontami użytkowników potrzebna jest też możliwość odczytu i ustawiania hasła. Hasła w Płatniku są kodowane dość prostym algorytmem, opisanym m.in. na stronie platnik.fork.pl, która jest zapewne dość dobrze znana większości użytkownikom tego programu, ponieważ można na niej szybko i prosto odkodować hasło administratora Płatnika. Hasła poszczególnych użytkowników są kodowane tym samym algorytmem, z tym że są one zapisywane w bazie danych, w przeciwieństwie do konta administratora, które jest zapisane w rejestrze systemowym. Na stronie serwisu Mariano znajduje się kod źródłowy programu w C++, służącego do kodowania i dekodowania haseł w Płatniku. Na podstawie tego kodu napisałem swoją wersję takiego programu (w języku JavaScript). Było to proste, ponieważ język ten jest bardzo zbliżony składnią do C/C++. Po przeanalizowaniu działającej wersji programu dokonałem dodatkowych optymalizacji oraz znacznie uprościłem kod programu (który aż się prosił, by to zrobić, ale widocznie nikt porzede mną się tego nie podjął). Dzięki temu kod programu jest znacznie krótszy, czytelniejszy i bardziej optymalny, co pokazuje niesamowity potencjał JavaScript. Działający program do kodowania i dekodowania haseł użytkowników udostępniam wszystkim potrzebującym. Program nie przesyła nigdzie wpisywanych przez użytkownika haseł, co jest ogromną zaletę - wszystkie operacje na haśle wykonują się lokalnie w przeglądarce użytkownika.

Podsumowanie
Na razie napisałem bardzo podstawą funkcjonalność, sprawdzam ją na kopii bazy danych Płatnika. Planuję stopniowe rozbudowywanie tego projektu tak, by zarządzanie uprawnieniami oraz kontami użytkowników było jeszcze wygodniejsze.

Powrót do strony z wykazem projektów

Valid HTML 4.01 TransitionalValid CSS