6.5.1       Podwójne potwierdzanie operacji sterujących

 

Czasem potrzebny jest trochę inny tryb pracy, w którym operator prowadzi proces, ale wykonanie niektórych operacji wymaga dodatkowego potwierdzenia innej osoby. Nie chcemy jednak zmieniać zalogowanego użytkownika. W tym celu użyjemy akcję operatorską ConfirmRole.

Właściwości podstawowe

 

Aktywny

Tak

 

Typ kursora

Hand

 

Typ przycisku

Przycisk prostokątny 3d

 

Tryb przełącznika

Nie

Właściwości stanowe, stan podstawowy

 

Włączony

Nie

 

Tekst wyłączenia

Wyślij

Zdarzenia

 

Wyłączenie przycisku

^Actions(ConfirmRole(Kierownik,$Always), SendControls($All))

 

Powyższy przykład to modyfikacja przycisku wysyłającego sygnał wykonania opóźnionych sterowań. Wykonywana akcja jest w tym przypadku złożeniem dwóch akcji ConfirmRole i SendControls. Użycie akcji ConfirmRole spowoduje otwarcia okna logowania. Po autoryzowaniu się użytkownika nastąpi sprawdzenie, czy pełni on rolę podaną w wywołaniu. Jeżeli tak, to kolejne akcje złożenia są wykonywane w kontekście nowego użytkownika. Po zakończeniu wszystkich akcji kontekst użytkownika zostanie odtworzony do stanu przed operacją. Błędna autoryzacja lub nie pełnienie wymaganej roli powoduje przerwanie wykonywania złożenia akcji. Zamiast akcji Actions można też stosować mechanizm akcji złożonych inicjowany wywołaniem ActionSet.

Taki sposób użycia akcji SendControls pozwala chronić obiekty z wbudowanymi mechanizmami sterującymi, np. Tekst, czy Słupek. Obiekty wykonujące sterowania (lub inne czynności) przy pomocy bezpośredniego wykonania akcji chroni się w podobny sposób.

 

Właściwości podstawowe

 

Aktywny

Tak

 

Tryb przełącznika

Nie

Właściwości stanowe, stan podstawowy

 

Włączony

Nie

 

Tekst wyłączenia

Włącz

 

Tekst włączenia

 

Zdarzenia

 

Wyłączenie przycisku

^Actions(ConfirmRole(Kierownik,$Always), SendControls($Diagram))

 

W tym przypadku obiekt przycisk w obsłudze zdarzenia Wyłączenie przycisku żąda weryfikacji roli użytkownika.

Akcja ConfirmRole ma też inne zastosowania. Możemy jej użyć jeżeli chcemy, żeby przez wykonaniem operacji zalogowany operator ponownie się autoryzował. Pozwoli to zabezpieczyć się przed sytuacją, że przy chwilowo nieobecnym operatorze, do komputera podeszła przypadkowa osoba.