Akcja "Dodaj/usuń użytkownika."

Facebooktwitterpinterestlinkedinmail
Dotyczy wersji 8.3.x i wyższych; Autor: Mariusz Burek

Modyfikacja przynależności do grup SharePoint.

Uzyskanie informacji do jakich grup przynależy dany użytkownik jest dość czasochłonną czynnością, tak samo jak ręczne dodawanie/usuwanie pojedynczego użytkownika w wielu grupach. BPS umożliwia modyfikowanie zawartości grup SPS za pomocą dokumentu Workflow z wykorzystaniem akcji „Dodaj/usuń użytkownika”

1. Konfiguracja akcji.

1.1  Tryby akcji

Akcja jest dostępna w grupie „SharePoint – uprawnienia”

Rysunek 1. Menu wyboru akcji

Posiada ona 2 główne tryby działania:

– Dodawanie użytkownika/ów do wskazanej grupy

– Usuwanie użytkownika/ów ze wskazanej grupy

Rysunek 2. Tryby konfiguracji akcji

Zadanie może zostać wykonane w czasie trwania transakcji, lub poza nią. Wykonanie zadania w trakcie trwania transakcji wydłuży okres przeładowania dokumentu do czasu wykonania się akcji. Jeżeli dodawana/usuwana jest duża liczba użytkowników zalecane jest ze względów wydajnościowych wykonywanie akcji poza transakcją.

 

1.2  Wybór grupy do modyfikacji

Akcja posiada 2 sposoby wyboru grupy, która ma zostać zmodyfikowana:

Statyczny

Dynamiczny

W trybie statycznym grupa zostaje wpisana na stałe w konfiguracji akcji.

Rysunek 3. Statyczny tryb wyboru grupy

W trybie dynamicznym należy umieścić w okienku konfiguracji wąs wskazujący na atrybut zawierający informacje o grupie SPS. Informacja musi być zwracana w formacie http://nazwa_witryny|@|id_grupy, np. http://intranet.company.com|@|5

Rysunek 4. Dynamiczny tryb wyboru grupy

 

1.3 Wybór kont użytkowników

Podczas wyboru konta/kont użytkowników mamy 3 możliwości konfiguracyjne:

Statycznie

Dynamicznie

Zapytanie (SQL lub CAML)

 

Statyczny wybór członków działa analogicznie jak dla sekcji z wyborem grupy, z tą tylko różnicą, że zamiast grupy wybierane są konta pojedynczych użytkowników.

Rysunek 5. Statyczny wybór konta użytkownika

Wybór dynamiczny także jest analogiczny dla wyboru grup, jednakże w tym przypadku musimy wskazać wąs na pole zawierające sam login użytkownika w formie DOMENA\login, np. WEBCON\j.kowalski. Atrybut może zwracać więcej niż jeden login. Należy pamiętać, aby kolejne loginy oddzielone były za pomocą przecinka lub średnika np. DOMENA\user1;Domena\user2

Rysunek 6. Dynamiczny wybór kont użytkowników

Ostatnią z możliwości wskazania kont użytkowników jest napisanie zapytania SQL lub CAML, które zwróci loginy kont, które mają zostać dodane lub usunięte z grupy. Zwracane loginy muszą być oddzielone średnikami lub muszą znajdować się w osobnych wierszach

Rysunek 7. Wybór kont poprzez zapytanie (SQL lub CAML)

2. Przykład użycia

Jako przykład użycia akcji został skonfigurowany proces zarządzania przynależnością do grup dla wybranego użytkownika. W polu Użytkownik należy wybrać osobę, której konto chcemy zmodyfikować. Następnie na liście Usuwanie z grup zostaną załadowane wszystkie grupy, do których użytkownik aktualnie należy (odznaczenie checkboxa w kolumnie „Czy należy” spowoduje usunięcie użytkownika z danej grupy). Na liście Dodawanie do grup osoba rejestrująca dokument ma możliwość dodania użytkownika do wybranej przez siebie grupy. Zmiany w grupach następują od razu po przejściu ścieżką. Zmiany w BPSowym cache dopiero po jego przeładowaniu (zależy od harmonogramu aktualizacji cache)

Animacja

 

3. Przykład użycia – Wgląd do obiegu

Poniżej znajduje się pogląd konfiguracji poszczególnych komponentów obiegu

 

3.1 Atrybuty

1_Atrybuty

Rysunek 1. Lista atrybutów procesu

 

Mapowanie atrybutów na pola w bazie (dla prezentowanego przykładu):

– Dodawanie do grup

– Grupa – DET_Att1

– T: dodano do grupy? – DET_Att2

– Usuwanie z grup

– Czy należy do grupy? – DET_Att1

– Grupa – DET_Att2

– T: Usunięto z grupy? – DET_Att3

– T: identyfikator grupy – WFD_AttText1

– Użytkownik – WFD_AttPeople1

 

Rysunek 2. Konfiguracja listy "Dodawanie do grup"


Rysunek 3. Konfiguracja kolumny "Grupa" – Lista "Dodawanie do grup"


Rysunek 4. Konfiguracja listy "Usuwanie z grup"


Rysunek 5. Inicjalizacja listy "Usuwanie z Grup"

 

Podczas przygotowywania zapytania z powyższego zrzutu ekranu, bardzo ważne jest wprowadzenie odpowiedniej nazwy bazy contentu SharePoint. W tym przypadku jest to fragment:

join [WDR01_WSS_Content].[dbo].[Groups] groups on groups.ID=gr.coset_tokenPart


UWAGA!

Korzystanie z zapytań bezpośrednio do baz contentu SharePoint jest stanowczo niezalecane.

Z takich zapytań należy korzystać w ostateczności, oraz z pełną świadomością konsekwencji.


_

3.2 Schemat graficzny obiegu

Rysunek 6. Schemat graficzny obiegu

 

3.3 Konfiguracja kroku “Czy istnieją dodane nowe grupy?”

Rysunek 7. Zapytanie SQL sterujące obiegiem wpisane w oknie będącym efektem zastosowania funkcji SQL COMMAND w edycji reguły biznesowej. Jest to konfiguracja kroku "Czy istnieją dodane nowe grupy"

 

Rysunek 8. Akcje zawarte na kroku "Czy istnieją dodane nowe grupy" (ścieżka "TAK")

 

Rysunek 9. Krok "Czy istnieją dodane nowe grupy" – konfiguracja akcji "Pobierz identyfikator grupy"

 

Rysunek 10. Krok "Czy istnieją dodane nowe grupy" – konfiguracja akcji "Aktualizuj listę Dodawanie Do Grup".

 

Rysunek 11. Krok "Czy istnieją dodane nowe grupy" – konfiguracja akcji "Dodaj użytkownika do grupy".

 

3.4 Konfiguracja kroku „Czy dodano do wszystkich grup?”

Rysunek 12. Zapytanie sterujące obiegiem w konfiguracji kroku "Czy dodano do wszystkich grup".

 

3.5 Konfiguracja kroku „Czy usunięto z wszystkich grup?”

Rysunek 13. Zapytanie sterujące obiegiem w konfiguracji kroku "Czy usunięto z wszystkich grup"

 

Rysunek 14. Akcje zawarte na kroku "Czy usunięto z wszystkich grup".

 

Rysunek 15. Krok "Czy usunięto z wszystkich grup" – konfiguracja akcji "Pobierz identyfikator grupy".

 

Rysunek 16. Krok "Czy usunięto z wszystkich grup" – konfiguracja akcji "Aktualizuj listę Usuwanie z Grup".

 

Rysunek 17. Krok "Czy usunięto z wszystkich grup" – konfiguracja akcji "Usuń użytkownika z grupy".

3 thoughts to “Akcja "Dodaj/usuń użytkownika."”

  1. Zapytanie wspomniane w artykule działa tylko dla wersji 8.3. Zapytanie działające dla wersji 2016 oraz 2017 zamieszczam poniżej:

    select groups.Title as Det_Att2,
    1 as Det_Att1
    From [dbo].[cacheorganizationstructure] u
    left join [dbo].[cacheorganizationstructureextendedtokens] gr on gr.coset_cosid = u.cos_id
    left join [WSS_Content].[dbo].[Groups] groups on groups.ID=substring(gr.coset_tokenPart,patindex('%|@|%',gr.coset_tokenPart)+3,1000)
    where u.cos_login= 'login_użytkownika'
    and ISNUMERIC(substring(gr.coset_tokenPart,patindex('%|@|%',gr.coset_tokenPart)+3,1000))=1

  2. Jakich uprawnień w AD wymaga użytkownik, który próbuje wpisać z poziomu BPSa do AD? Aby nie otrzymać komunikatu
    Inner exception:
    Message: Access is denied.
    Type: System.UnauthorizedAccessException
    Source: Active Directory

    1. Aby nie otrzymać powyższego komunikatu, należy mieć uprawnienia zapisu, czyli np. "Full control" lub "Write" – generalnie uprawnienia do AD do którego istnieje potrzeba wpisania użytkowników.

Komentarze są zamknięte.