Uprawnienia CRM (Create)

Każde wdrożenie Dynamics CRM wiąże się z konfiguracją ról. Idealne podejście to takie kiedy użytkownik otrzymuje minimalne uprawnienia jakie są mu potrzebne do pracy. Jednakże kiedy konfiguracja ról zmienia się wraz z życiem systemu, może dojść do sytuacji kiedy role konfigurowaną są “na czuja”, przywileje nadawane są “aby działało”.

Poniższy wpis dla niektórych może być powtórką z rozrywki a dla niektórych stanowić może podsumowanie wiedzy, którą posiada. O czym będzie ? Odpowiemy sobie na pytanie: Co oznacza w matrycy uprawnień uprawnienie Create? Czy aby utworzyć komuś rekord muszę mieć możliwość przypisania rekordu (Append, Append To) do użytkownika ? Czy aby zmienić właściciela muszę mieć uprawnienie przypisania rekordu do użytkownika ? Itd. Być może odpowiedź jest trywialna, ale jak pokazuje doświadczenie i przegląd gotowych wdrożeń – nie zawsze tak jest :).

Zacznijmy więc od początku – czym jest rola w Dynamics CRM ? Rola to zbiór uprawnień wraz z poziomem uprawnień. Uprawnienie określa co możemy zrobić w kontekście danej encji (np. tworzenie Kontaktu). Poziom uprawnień określa zakres działania uprawnienia (np. możemy czytać tylko te kontakty, których jesteśmy właścicielem lub też możemy czytać wszystkie z całej organizacji).

Dynamics CRM udostępnia następujące uprawnienia oraz poziomy uprawnień:

Uprawnienia Poziomy Uprawnień
  • Create
  • Read
  • Write
  • Delete
  • Append
  • Append To
  • Assign
  • Share
  • None
  • User
  • Business Unit
  • Parent/Child Business Unit
  • Organization

Dla jednej encji możemy zatem mieć baaaaardzo dużo możliwości ustawienia roli. Zacznijmy od prostego przypadku – chcemy nadać użytkownikowi uprawnienia do tego, aby mógł tworzyć rekordy encji Account dla innych użytkowników.

Uprawnienie Create samego nie można nadać – bo aby móc w interfejsie użytkownika Dynamics CRM zobaczyć SubArea Account należy mieć prawo odczytu. Ustalamy zatem, że rola ma “na dzień dobry” odczyt na poziomie jednostki biznesowej. Idąc dalej chcemy nadać uprawnienia do tworzenia w połączeniu z uprawnieniami dla encji SystemUser (poniższa tabela nie przedstawia wszystkich kombinacji):

Poziom

Opis

Uprawnienia Read dla encji SystemUser (pozostałe ustawione na None)

Rezultat

None Użytkownik nie będzie miał praw do tworzenia rekordów encji Account. Brak przycisku utworzenia nowego rekordu w Dynamics CRM n.d. n.d.
User Użytkownik ma prawo do tworzenia rekordów encji Account. Przycisk “New” jest widoczny w Dynamics CRM. Na formularzu pole Owner jest edytowalne. n.d. Niezależnie od ustawień poziomu uprawnień dla odczytu encji SystemUser próba zapisania kończy się komunikatem: brak uprawnień do wykonania tej akcji …
Business Unit Użytkownik ma prawo do tworzenia rekordów encji Account. Przycisk “New” jest widoczny w Dynamics CRM. Na formularzu pole Owner jest edytowalne. None Nie można odczytać użytkowników – nie można wybrać innego
Business Unit Użytkownik ma prawo do tworzenia rekordów encji Account. Przycisk “New” jest widoczny w Dynamics CRM. Na formularzu pole Owner jest edytowalne. Business Unit Próba kończy się sukcesem. Wskazać można tylko użytkowników ze swojej jednostki biznesowej
Business Unit Użytkownik ma prawo do tworzenia rekordów encji Account. Przycisk “New” jest widoczny w Dynamics CRM. Na formularzu pole Owner jest edytowalne. Parent/Child Business Unit
Organization
Dla użytkowników z tej samej jednostki biznesowej sukces

Dla użytkowników z jednostek podrzędnych próba zapisania kończy się komunikatem: brak uprawnień do wykonania tej akcji …
Parent/Child Business Unit Użytkownik ma prawo do tworzenia rekordów encji Account. Przycisk “New” jest widoczny w Dynamics CRM. Na formularzu pole Owner jest edytowalne. Parent/Child Business Unit Jeśli właściciel jest z jednostki podrzędnej próba kończy się sukcesem, ale występuje błąd bo chcemy odczytać Account, którego nie możemy odczytać bo uprawnienia Read mamy na poziomie swojej jednostki biznesowej.
Parent/Child Business Unit Użytkownik ma prawo do tworzenia rekordów encji Account. Przycisk “New” jest widoczny w Dynamics CRM. Na formularzu pole Owner jest edytowalne. Organization Jeśli właściciel jest z jednostki podrzędnej próba kończy się sukcesem, ale występuje błąd bo chcemy odczytać Account, którego nie możemy odczytać bo uprawnienia Read mamy na poziomie swojej jednostki biznesowej.

Jeśli właściciel jest z niepowiązanej jednostki biznesowej to próba kończy się komunikatem: brak uprawnień do wykonania tej akcji …
Organization Użytkownik ma prawo do tworzenia rekordów encji Account. Przycisk “New” jest widoczny w Dynamics CRM. Na formularzu pole Owner jest edytowalne. n.d. Próba kończy się sukcesem. Wskazać można tylko użytkowników, do których ma się prawo odczytu.

Wnioski: Uprawnienie Create daje możliwość stworzenia rekordu “komuś” – ten ktoś określany jest na podstawie tego jakich użytkowników możemy odczytać a nie do jakich użytkowników mamy uprawnienia Append To albo czy mamy uprawnienia Append na encji Account czy też nie. Minimalny zestaw uprawnień, na których powinniśmy się skupić to Read (dla encji SystemUser oraz Account) oraz Create (dla encji Account). Dodatkowo: nowy właściciel musi mieć co najmniej prawo do odczytu Account aby móc stać się właścicielem. Dynamics CRM nie pozwoli przypisać konta użytkownikowi, który nie ma do tej encji żadnych uprawnień – kiedy nie ma w roli lub kiedy jest dezaktywowany.

image 

Powyższa tabela przedstawia w formie kolorystycznej to co wcześniejsza tabela opisuje ;) Kolor żółty przedstawia sytuacje kiedy odpowiedzią na pytanie “czy zadziała” będzie odpowiedź “to zależy … jakiego użytkownika wybierzesz”.