Ograniczanie widoczności pól formularzy

Wszystkie pola formularzy domyślnie dostępne są dla wszystkich użytkowników systemu (widoczność oraz prawo do edycji). Dostęp może zostać ograniczony poprzez funkcjonalność zarządzania uprawnieniami do pól. Niektóre formularze (dane kontrahenta na karcie Kontakt, dane sprawy lub dane urządzeni w serwisie) można modyfikować w tym zakresie z interfejsu użytkownika (Administrator może klikać prawym klawiszem na labele pól jak pokazano na rysunku), pozostałe wymienione poprzez edycję tabeli access.


Formularze w których zostało zaimplementowane sprawdzanie uprawnień do pól podstawowych (widoczne/niewidoczne/edycja) to:

  • zdarzenie karta ogólne (clsnam = EVENT.TODO lub inne w zależności od rodzaju koluman trmtyp)
  • sprawa karta ogólne
  • dokument karta ogólne
  • kartoteka kontrahenta - karta ogólne (również z interfejsu)
  • kartoteka urządzenia (również z interfejsu)

Aby móc ograniczyć widoczność pól w powyższych formularzach należy do tabeli access dodać odpowiedni wpis.

Szczególną uwagę należy zwrócić na kolumnę rights, gdyż to ona przechowuje poziom uprawnień zdefiniowany następująco:

  • 0 oznaczać będzie zabronienie pola
  • 1 oznaczać będzie udostępnienie bez prawa do zapisu
  • 3 oznaczać będzie udostępnienie z prawem do zapisu

Np. aby ograniczyć widoczność pola name_1 (nazwa kolumny z bazy, tabela contacts) tak aby tylko grupa o id 2 miała prawo tylko do odczytu tego pola, należy dodać wpis:

clsnam = CONTACT
keyval = name_1
grp_id = 2
rights = 1 (3 jeśli ma być odczyt i zapis)

Zapytanie SQL do powyższego przykładu:

INSERT INTO access (clsnam, keyval, grp_id, rights)
VALUES ('CONTACT', 'name_1', 2, 1);

Przykład pokazania pola "Prognozowana wartość" w sprawie tylko dla grupy o id 5:

clsnam = CONTACT
keyval = name_1
grp_id = 2
rights = 1 (3 jeśli ma być odczyt i zapis)

Zapytanie SQL do powyższego przykładu:

INSERT INTO access (clsnam, keyval, grp_id, rights)
VALUES ('PROCESS', 'forepa', 5, 1);

W przypadku dokumentów sprawa ma się nieco inaczej. Oprócz identyfikatora klasy "DOCUMENT" należy dodać identyfikator typu dokumentu (types_of_documents.dctpid) dla właściwego typu. I tak jeśli chcemy aby pole "Sprawa" w dokumencie typu Notatka służbowa było pokazywane tylko dla grupy o id = 2 to do tabeli access dodajemy wpis

clsnam = DOCUMENT.5
keyval = prc_id
grp_id = 2
rights = 1

Przy domyślnej instalacji Notatka służbowa ma dctpid = 5 w tabeli types_of_documents.

Od wersji 3.5.4 wpisanie w kolumnie rights = 0 oznacza zabronienie widoczności danego pola dla użytkownika albo grupy.

Dla przykładu aby grupa o id 6 nie mogła widzieć pola saldo_ na kartotece kontrahenta wystarczy do tabeli access dodać wpis

clsnam = CONTACT
keyval = saldo_
grp_id = 6
rights = 0

Zarządzanie cechami

Pola dynamiczne (cechy) mogą być zabraniane we wszystkich miejscach w których występują. Zarządzanie jest udostępnione poprzez panel sterowania. Przycisk Uprawnienia umieszczony poniżej nazwy pola przy edycji cechy.


Zarządzanie cechami dla pozycji (od wersji 4.2-beta38)

W przypadku cech pozycji (cechy pozycji np. faktury są kopiowane z cech produktów mają te same featid jednak różne tblnam przy powiązaniu) należy wykonać poniższe polecenie:

clsnam = FK_ELEMENTS_FEATURE.{fk_elements.fketpe np VATNOTE}
keyval = 12 - featid
grp_id = 6
rights = 0

Ograniczenie widoczności cech pozycji uwzględnia typy dokumentów na jakich te pozycję się znajdują. Typu można poznać dodając pozycje dla poszczególnych dokumentów i podglądnąć tabelę fk_elements.fketpe.

Zarządzanie widocznością zakładek w dokumentach

Aby wyłączyć zakładkę w dokumencie konkretnego typu (dctpid) należy do tabeli access dodać wpis w postaci:

clsnam = DOCUMENT.1 (1 to dctpid z tabeli types_of_documents dla pisma)
keyval = RIGHTSPLUGIN
grp_id = 2
rights = 0

Wpis taki oznacza, iż grupa o identyfikatorze (grp_id) = 2 nie posiada uprawnień do zakładki "Uprawnieni" dla dokumentu typu pismo.

Pole keyval w tym przypadku to identyfikator klasy zakładki i tak:

  • komentarze = DOCCOMMENTSPLUGIN
  • uprawnieni = RIGHTSPLUGIN
  • kopie = COPYINFOPLUGIN
  • instrukcje = ORDERSPLUGIN
  • po zapisie = AFTERSAVEPLUGIN
  • powiązania = DOCLINKSPLUGIN
  • dokument (mail) = EMAILPREVIEWPLUGIN
  • szczegóły (mail) = EMAILPLUGIN
  • historia = DOCHISTORYPLUGIN
  • załączniki = ATTACHMENTSPLUGIN (lista załączników musi być dostępna na osobnej zakładce)
  • pozycje (faktura) = PRODUCTS
  • koszty (faktura) = COSTS

W przypadku zakładki produkty (dla dokumentów na której ona występuje) należy dodać wpis:

clsnam = DOCUMENT.10 (1 to dctpid z tabeli types_of_documents dla danego dokumentu)
keyval = PRODUCTS -- nazwa taka sama niezależnie od dctpid
grp_id = 2
rights = 0

Dodatkowo istnieje możliwość całkowitego wyłączenia zakładki Szczegóły dla customowego dokumentu. Aby tego dokonać należy dodać wpis:

clsnam = DOCUMENT.100_PLUGINS (100 to dctpid z tabeli types_of_documents dla danego customowego dokumentu)
keyval = CUSTOMDOCUMENTPLUGIN -- nazwa taka sama niezależnie od dctpid
grp_id = 2
rights = 0

W przypadku jeśli chcemy zabronić dowolnej widoczności innej zakładki nie wymienionej na tej liście należy skontaktować się z programistami :)

Zarządzanie widocznością zakładek w sprawach

Aby wyłączyć zakładkę w sprawie, która jest w teczce określonej kategorii (dos_id) należy do tabeli access dodać wpis w postaci:

clsnam = PROCESS_1_TABS (1 to dos_id z tabeli doss_extract_list)
keyval = PROCESSPRODUCTSFORM
grp_id = 2
rights = 0

Wpis taki oznacza, iż grupa o identyfikatorze (grp_id) = 2 nie posiada uprawnień do zakładki "Produkty" dla sprawy w teczce o dos_id 1.

Pole keyval w tym przypadku to identyfikator klasy zakładki z tabeli proc_types_tabs_definition kolumna clsnam. Ważne jest aby do tabli access wpisać nazwę clsnam z dużych lier.

Mechanizm jest dostępny poprzez GUI po prawoklikiem na pasku zakładek.

Zarządzanie widocznością zakładek w zdarzeniach

Aby wyłączyć zakładkę w zadaniu, rozmowie telefonicznej lub innym obiekcie typu zdarzenie należy do tabeli access dodać wpis w postaci:

clsnam = TODO_TABS
keyval = EVENTCOMMENTSFORM
grp_id = 2
rights = 0

Wpis taki oznacza, iż grupa o identyfikatorze (grp_id) = 2 nie posiada uprawnień do zakładki "Komentarze" dla zadania.

Mechanizm jest dostępny poprzez GUI po prawoklikiem na pasku zakładek.

Zarządzanie widocznością pól na formatce płatności

clsnam = DOC_PAYMENT_POS
keyval = (nazwa kolumny z tabeli fk_doc_payment_pos)
grp_id = 2
rights = 0

Zarządzanie widocznością pól na formatce kosztu podróży w delegacji

clsnam = DELEGATION_TRAVEL_COST
keyval = (nazwa kolumny z tabeli delegation_travel_costs)
grp_id = 2
rights = 0

Zarządzanie widocznością przycisków

Obsługa umożliwia chowanie przycisków Paska zadań (na chwilę obecną działa tylko dla zakładki Produkty w Sprawie - kolejne realizowane będą po zgłoszeniu).

Insert do tabeli access, który aktywuje to:

clsnam = PROCESSPRODUCTSFORM
keyval = Demand
usr_id = 2
rights = 0

Powyższy insert wycina opcję Generuj -> Zapotrzebowanie.

Aby dodać dla innych przycisków/opcji z tego toolbara należy wykonać podobne inserty z innym keyval.

Keyval do przycisków toolbara to fraza znajdująca się z nawiasach [] dla atrybutu id (użyć należy Firebug, lub prawy klawisz myszy w Chrome i opcja Inspect Element ;)).

Dla menu to fraza dodatkowa różna od nazwy menu (element nadrzędny)

Order = Zamówienie obce (od klienta)
FS = Faktura sprzedaży
Demand = Zapotrzebowanie

UWAGA! Dla przycisków Custom Widget uprawnienia ustawiamy w definicji Custom Widget (dolny lewy róg formatki).

Zarządzanie przyciskami http://support.edokumenty.eu/trac/wiki/Documentation/Index/FieldsRights

Załączniki