Workflow: Zarządzanie uprawnieniami do elementu listy/dokumentu

Wpisem tym rozpoczynam na naszych łamach serię porad dotyczących pierwszych kroków z przepływami pracy w SharePoint. Równolegle opisując kombajn do zarządzania obiegami pracy od WEBCONa chcę pokazać wam do czego można zastosować przepływy pracy w SharePoincie oraz różnice dotyczące pracy na obu rozwiązaniach.  W pierwszym odcinku przedstawię wam metodę automatyzacji procesu nadawania uprawnień do dokumentów i elementów list.

workflow

Realizowany scenariusz

Scenariuszem jaki będziemy realizować to definiowanie uprawnień do zgłoszeń na liście SharePoint. Uprawnienia zostaną zdefiniowane w taki sposób by każde zgłoszenie posiadało indywidualnie zdefiniowane uprawnienia w następujący sposób:

– Osoba zgłaszająca  – Czytanie oraz edycja

– Grupa HelpDesk – Czytanie

– Grupa kierowników  – Współtworzenie

W tym wypadku chcemy zapewnić poufność informacji oraz przypisanie danego zgłoszenia do konkretnego użytkownika bez możliwości modyfikacji przez inne osoby.

Wymagania wstępne

Do rozpoczęcia pracy będziemy potrzebować:

  • SharePoint Designera 2010
  • dedykowane serwisowe konto w Active Directory z wysokimi uprawnieniami w SharePoint (np. administrator zbioru witryn lub pełna kontrola na witrynie)

Dedykowane konto będzie nam potrzebne gdyż przepływ pracy będziemy realizować z użyciem personifikacji. Oznaczać to będzie w praktyce, że każdy przepływ pracy (w tym wszystkie operacje w nim realizowane) będą w kontekście dedykowanego konta. Domyślnie realizowane są w kontekście użytkownika wywołującego przepływ.

Przygotowanie witryny SharePoint

Przed rozpoczęciem prac ważne jest by możliwie uprościć uprawnienia dostępowe do witryny. Proponuję zastosować model, w którym uprawnienia nadawane są dla 2 grup wymienionych powyżej oraz grupy dodatkowej Wszyscy użytkownicy.

uprawnieniaTworzymy listę Zgłoszenia, gdzie zdefiniujemy kolumny jak poniżej.

listaTworzymy przepływ pracy

1. Uruchamiamy SharePoint Designera oraz otwieramy witrynę SharePoint podając jej adres. Ważne! Należy SharePoint Designera uruchomić na dedykowanym koncie, które wcześniej przygotowaliśmy. Konto, którym będziemy pracować będzie tym, w kontekście którego będzie uruchamiany workflow.

2. Tworzymy nowy przepływ pracy poprzez wybranie odpowiedniej listy

zgloszenia1

oraz podanie nazwy i opisu przepływu:

zgloszenia2

3. Po utworzeniu wersji roboczej przepływu konieczne jest wybranie jego nazwy w pasku nawigacji oraz zaznamy automatyczne wywoływanie przepływu pracy w momencie tworzenia nowego elementu oraz jego edycji.

zgloszenia3

4. Przechodzimy do edycji przepływu. Pierwszym krokiem jaki należy wykonać jej dodanie Etapu personifikacji – operacje wykonywane w tym etapie będą realizowane w kontekście autora przepływu – naszego dedykowanego konta. Dodatkowo do zarządzania uprawnieniami w przepływach pracy konieczne jest zastosowanie właśnie tego elementu.

zgloszenia4

5. Po dodaniu etapu personifikacji przechodzimy do wykonania operacji na uprawnieniach. Pierwszą akcją będzie usunięcie uprawnień czytania dla wszystkich na nowo powstałym elemencie. W tym celu wybieramy akcje Usuń uprawnienia elementu listy

zgloszenia5

Następnie dokonujemy konfiguracji tej akacji wybierając grupę Grupa wszyscy oraz poziom uprawnień Czytanie. Należy pamiętać o wybraniu elementy Bieżący element.zgloszenia6

Kolejną akcją, którą użyjemy będzie dodanie uprawnień dla autora elementu listy. Wybieramy akcję Dodaj uprawnienia elementu listy. zgloszenia7

Wykonujemy analogiczną konfigurację do poprzedniej akcji. Wybieramy opcję: Użytkownik, który utworzył bieżący element oraz poziom uprawnień Współtworzenie. Również należy pamiętać o wybraniu opcji Bieżący element.zgloszenia8

W wypadku realizacji naszego scenariusza wystarczy powyższa konfiguracji by zdefiniować indywidualne uprawnienia dla każdego elementu listy.zgloszenia9

6. W tym momencie pozostało jedynie opublikować gotowy przepływ pracy. SharePoint Designer przypomni nam w komunikacie, że opublikowany przepływ będzie wykonywał się w kontekście użytkownika, na którym uruchomiliśmy Designera.zgloszenia10 zgloszenia11

Testujemy przepływ

Opublikowany przepływ będzie uruchamiał się w momencie utworzenie lub edycji elementu listy. Oznacza, że operacji realizowane w jego łamach wykonają się po upływie 2-3 sekund od zapisania zmian na elemencie lub utworzniu nowego elementu. Po utworzeniu nowego elementu możecie zauważyć nową kolumnę – Uprawnienia, która zawierać będzie status realizacji przepływu.zgloszenia12

W naszym wypadku możemy zweryfikować po prawidłowym ukończeniu przepływu, że uprawnienia zostały zmienione i są indywidualnie zdefiniowane na poziomie elementu.zgloszenia13

Uwagi końcowe

Jak widzicie nie potrzeba wiele pracy by zbudować fajne rozwiązania w oparciu o funkcje dostępnę w SharePoincie z pudełka. Warto więc funkcjonalnościom dostępnym w workflow’ach SharePointowych przyjrzeć się bliżej i lepiej je poznać. Korzystając w powyższego rozwiązania pamiętajcie jednak o kilku zagrożeniach:

  • Bałaganie w stworzonym przepływie. Zalecam czytelne tworzenie przepływów poprzez dzielenie ich na etapy – sugestia ta wynika z trudności z diagnozowaniem niepoprawnie wykonanych przepływów.
  • Uwzględnienie potencjalnych problemów wydajnościowych. Problemy mogą się pojawić jeśli elementów z zerwanymi uprawnieniami będzie co najmniej kilka tysięcy. Więcej pisałem o tym w wstępie do WEBCON BPSa. Jeśli widzicie tutaj zagrożenie warto zaplanować archiwizację elementów lub grupowanie ich w foldery
  • Działające dedykowane konto użytkownika. Ważne jest by konto, którego używamy w etapie personifikacji było aktywne oraz posiadało niezbędne uprawnienia. Warto zadbać o ten element, gdyż w innym wypadku obiegi nie będą działać prawidłowo.

 

PS. Kolejne przepływy jakie będę chciał opisać: dodatkowe powiadomienia mailowe, zapisy na szkolenia. Jeśli macie jakieś prośby, pytania lub sugestie w tym temacie dajcie znać 😉

One thought on “Workflow: Zarządzanie uprawnieniami do elementu listy/dokumentu”

  1. You really make it appear so easy together with your presentation but I to find
    this topic to be actually one thing which I think I might
    never understand. It kind of feels too complex and extremely vast for me.
    I’m taking a look forward to your subsequent post, I’ll attempt to get the dangle of it!

Leave a Reply

Your email address will not be published. Required fields are marked *