Site Collection Administrator dostaje odmowę dostępu dodając solucje
Ostatnio znalazłem się w sytuacji, gdy po utworzeniu nowej Modern Site (to była Team Site), moje konto, które pomimo faktu bycia zarówno administratorem kolekcji witryn oraz administratorem SharePoint, nie miało dostępu do linków prowadzących do galerii witryny (solucji, szablonów list, web partów, czy funkcji zapisywania list i witryn jako szablonów). Co więcej, przy próbie dostępu do wybranej funkcji używając bezpośredniego linka i wykonaniu operacji np. wgrania solucji, otrzymywałem odmowę dostępu.
Zwykle, takie objawy wiązały się z faktem ustawień w Centralnej Administracji, w sekcji „Custom Scripts”, gdy konfiguracja wskazywała na „Prevent” (domyślne ustawienia). Lekarstwem jest zmiana ich na „Allow”:
Wiedziałem o tym, a mając również na uwadze fakt, iż zmiana tych ustawień korzystając z interfejsu przeglądarkowego, może potrzebować nawet 24 godzin na uruchomienie, zmieniłem te ustawienia od razu po otrzymaniu nowego tenanta, w zasadzie wiele dni przed tą sytuacją.
Wróciłem więc do witryny i sprawdziłem swoje uprawnienia. Okazało się, że wciąż mam „odmowę” dla opcji „Dodawanie i Modyfikowanie Stron”:
Ale ta sytuacja miała miejsce WYŁĄCZNIE w Modern Sites. Nic podobnego nie miało miejsca w klasycznych witrynach.
Rozwiązanie
Okazało się dość proste. Pomimo tego, że ustawienia dla „Custom Scripts” są wspólne, dla wszystkich kolekcji w całym SharePoint Online, wygląda na to, że Modern Sites są jednak ponad to. Aby to zmienić, użyłem po prostu SharePoint Online Management Shell (możesz pobrać aplikację stąd) i zmieniłem te ustawienia dla tej, konkretnej kolekcji witryn:
Connect-SPOService Set-SPOSite -Identity https://<your-tenant-name>.sharepoint.com/sites/<your-modern-site-collection-name> -DenyAddAndCustomizePages $false
Gdy wkleisz i uruchomisz skrypt, zostaniesz poproszony o podanie adresu URL do administracyjnej kolekcji witryn i danych logowania (użytkownik musi mieć co najmniej uprawnienia administratora SPO).
[tds_info] Administracyjna kolekcja witryn oznacza tę, która ma adres URL w takim schemacie: https://<your-tenant-name>-admin.sharepoint.com/[/tds_info]
Gdy skrypt zakończył swoje działanie, uprawnienie „Deny” zniknęło z listy i wszystkie funkcje zostały przywrócone natychmiast 🙂