Handlowiec i marża

Firma ma aplikację z ofertami, klientami i kartoteką pracowników. Handlowiec pracuje na ofertach, kadry na kartotece, a księgowa na fakturach. W ofercie jest jednak pole z marżą, w karcie pracownika wynagrodzenie, a w karcie klienta jego dane osobowe. Szef nie chce, żeby handlowiec znał marżę, a handlowiec bez ofert nie zrobi swojej pracy.

Są dwa sposoby, żeby to rozwiązać, i warto wiedzieć, który z nich ma system firmy.

Uprawnienie do ekranu

Takie uprawnienie działa jak klucz do pokoju. Kto wejdzie, widzi wszystko, co w nim jest, a kto nie wejdzie, nie widzi nic. Ustawia się je łatwo i łatwo je zrozumieć.

Kłopot zaczyna się, gdy na jednym ekranie są dane jawne i wrażliwe. Jeśli firma zamknie ekran, ludzie nie mogą pracować. Proszą kolegów o wydruki albo eksportują dane do arkuszy i wysyłają je mailem, a nad tymi kopiami nikt już nie panuje. Jeśli otworzy, pokazuje wszystko i liczy na to, że nikt nie zajrzy tam, gdzie nie powinien.

Uprawnienie do pola

Tu uprawnienie dotyczy pojedynczego pola. Reguła może brzmieć „handlowcy czytają oferty, ale bez pola marży” albo „ta osoba może zmieniać w kartotece tylko koszt licencji”. Może też dotyczyć wierszy tabeli, na przykład tylko pozycji z bieżącego roku.

Takie uprawnienie chroni dokładnie to, co trzeba. Ma jednak słabe miejsce, którego zwykle nikt nie sprawdza.

Którędy ukryte pole wycieka

Pole schowane w formularzu wciąż może być widoczne w innych częściach systemu.

Wyszukiwarka znajduje ofertę po wpisaniu kwoty marży. Listę pracowników da się filtrować po wynagrodzeniu i choć kolumny nie widać, liczba wyników zdradza, kto zarabia powyżej progu. Suma na dole listy jest liczona z ukrytego pola. Tytuł dokumentu bywa złożony z pola, którego oglądający nie powinien znać. Historia zmian pokazuje wpis „zmieniono wynagrodzenie”.

Dlatego dobrze zbudowany system ma jedno miejsce, przez które przechodzi wszystko, co trafia do użytkownika, i tam usuwa z danych wszystko, czego ta osoba nie może widzieć. Dotyczy to dokumentu, list, filtrów, sum, tytułów, historii i wyszukiwarki. Jeśli o ukrywaniu ma pamiętać każdy ekran z osobna, prędzej czy później któryś zapomni.

Z tej zasady wynika kilka konkretnych reguł. Filtry i sumy liczą się tylko z tego, co dana osoba widzi. Pole, którego wartość program liczy z ukrytego pola, też jest ukryte, więc suma marż nie wycieka przez pole „razem”. W historii widać, że zmieniono jakieś ukryte pole, ale nie widać które. Inne pytania o historię zmian zebraliśmy w artykule „Kto to zmienił?”.

Osobna sprawa to zapis. Osoba, która nie widzi marży, może poprawić w ofercie termin i zapisać ją. System nie może wtedy wyczyścić marży tylko dlatego, że zapisywał ktoś, kto jej nie widział. A kto spróbuje zmienić pole, do którego nie ma prawa, dostaje komunikat przy tym polu.

Kompromis przy wyszukiwarce

Wyszukiwarka zwykle przygotowuje sobie zawczasu jeden wykaz słów z informacją, w których dokumentach występują, wspólny dla wszystkich użytkowników. Gdyby trafiały do niego słowa z ukrytych pól, wynik wyszukiwania zdradzałby ich treść. Najprostsze bezpieczne rozwiązanie to nie wpuszczać takich pól do wyszukiwarki wcale. Wtedy nikt ich nie wyszuka, także osoba, która może je czytać. Przy jednych polach to drobiazg, przy innych spora niewygoda, więc wykonawca powinien o tym powiedzieć, zanim ustali uprawnienia. Jak działa sama wyszukiwarka, opisujemy w artykule Wyszukiwarka, która podpowiada.

Które wybrać

Nie każde pole potrzebuje własnej reguły. W większości firm wrażliwych pól jest kilka, a reszta może być widoczna dla każdego, kto ma dostęp do dokumentu.

Czasem prościej jest wydzielić wrażliwe dane do osobnej części systemu, na przykład wynagrodzenia do osobnej kartoteki kadrowej. Wtedy wystarczy zwykłe uprawnienie do ekranu. Uprawnienia do pól opłacają się tam, gdzie dane wrażliwe i jawne muszą być w jednym dokumencie, jak marża w ofercie. Każdą regułę ktoś potem musi rozumieć i utrzymywać, więc warto je dodawać tylko tam, gdzie chronią coś realnego.

Sprawdzian na pięć minut

Wystarczy ukryć przed kimś pole z marżą i poprosić tę osobę, żeby wpisała kwotę marży w wyszukiwarkę. Jeśli znajdzie ofertę, ukryte pole wycieka.