Przejdź do treści
WordPress i Strony WWW

Role użytkowników WordPress - zarządzanie uprawnieniami

Publikacja: Aktualizacja:
Czytaj poradnik
Jasna ilustracja pracy nad stroną WordPress

Krótka odpowiedź

Rola WordPress grupuje uprawnienia, czyli capabilities. Dobierz ją do zadań użytkownika, a dostęp do konkretnej operacji sprawdzaj po stronie serwera odpowiednią capability, w razie potrzeby z identyfikatorem obiektu.

Ukrycie menu nie zabezpiecza danych. Po zmianie roli wykonaj test dozwolonych i zabronionych czynności na koncie o ograniczonym dostępie.

Osoba pisząca teksty, administrator techniczny i pracownik sklepu potrzebują innych dostępów. WordPress grupuje je w role, ale skuteczna kontrola zaczyna się od konkretnego zadania: kto może wykonać operację i na których danych. Nazwa roli pomaga w organizacji, lecz nie zastępuje sprawdzenia uprawnień.

W tym poradniku

Jakie role użytkowników ma WordPress?

WordPress ma pięć domyślnych ról dla pojedynczej witryny. Każda jest zestawem uprawnień dopasowanym do innego rodzaju pracy. Nie traktuj ich jednak jak ścisłej drabiny, na której każdy wyższy szczebel zawsze zawiera wszystkie możliwości niższego. Wtyczki, własny kod i ustawienia sieci mogą zmienić zakres dostępu.

RolaTypowe zadaniaIstotne ograniczenie
AdministratorUstawienia, użytkownicy, wtyczki i motywy witrynyW Multisite część operacji należy do administratora sieci
RedaktorPublikacja i edycja wpisów oraz stron, także cudzychDomyślnie nie instaluje wtyczek ani nie zarządza konfiguracją techniczną
AutorPublikacja i edycja własnych wpisów, przesyłanie mediówDomyślnie nie edytuje cudzych wpisów ani stron
WspółpracownikPrzygotowanie własnych nieopublikowanych wpisówDomyślnie nie publikuje i nie przesyła mediów
SubskrybentWłasny profil i dostęp wynikający z kontaNie otrzymuje prawa redagowania treści witryny

Punktem odniesienia jest dokumentacja ról i capabilities WordPress. W instalacji wielowitrynowej Super Administrator zarządza siecią, więc Administrator pojedynczej witryny nie ma identycznego zakresu jak w zwykłej instalacji. Kontekst opisujemy w poradniku WordPress Multisite.

Przydział rozpocznij od listy czynności. Autor zewnętrzny może tylko oddawać szkice, a wewnętrzny redaktor zatwierdzać publikację. Dostęp do samych wpisów nie oznacza automatycznie dostępu do produktów czy innych własnych typów treści. Zapisz te różnice przed wybraniem roli z listy.

Role: sprawdź konkretne działanie: zadanie, uprawnienie, kontrola.
Autorski schemat KC Mobile. Nazwa roli nie opisuje wszystkich uprawnień.

Opisz, co użytkownik ma móc zrobić, i podaj adres obecnej strony, jeśli już działa. Możesz dołączyć przykład. Dobierzemy zakres prac do istniejącej witryny, a nową stronę z dedykowanym projektem przygotujemy od 3 500 zł netto. Omów zmianę w WordPressie

Czym są capabilities i jak różnią się od ról?

Capabilities to pojedyncze uprawnienia, na przykład publish_posts albo install_plugins. Rola przechowuje ich zestaw, a funkcja current_user_can sprawdza możliwość wykonania działania przez aktualnego użytkownika. Weryfikacja samej nazwy roli jest krucha: niestandardowa rola może otrzymać potrzebną capability bez etykiety Administratora.

CapabilityCzego dotyczyNa co uważać
edit_postsPracy z wpisamiNie daje automatycznie edycji wszystkich opublikowanych lub cudzych wpisów
publish_postsPublikowania wpisówNie zastępuje uprawnień do ich późniejszej edycji
edit_others_postsEdycji cudzych wpisówZnaczenie ma również status konkretnego wpisu
upload_filesPrzesyłania mediówWymaga kontroli dopuszczanych typów i przetwarzania plików
manage_optionsUstawień witrynyNie przyznawaj jej tylko po to, by udostępnić jeden własny formularz
install_pluginsInstalowania wtyczekDostęp zależy także od Multisite i konfiguracji instalacji

Dla konkretnego wpisu użyj sprawdzenia obiektowego. W poniższym fragmencie $post_id oznacza wcześniej ustalony identyfikator wpisu; kod pokazuje jedynie decyzję o uprawnieniu, nie zapisuje treści:

if ( current_user_can( 'edit_post', $post_id ) ) {
    // Kontynuuj obsluge operacji na tym wpisie.
}

Dokumentacja current_user_can wyjaśnia przekazywanie dodatkowych argumentów dla uprawnień związanych z obiektem. W pełnym endpointcie sprawdź też poprawność danych wejściowych i właściwą ochronę żądania. Sam nonce pomaga chronić przed określonym nadużyciem żądania, ale nie nadaje użytkownikowi prawa do edycji obiektu.

Jak stworzyć własną rolę i aktualizować jej uprawnienia?

Własna rola ma sens, gdy domyślne zestawy nie pasują do zadania. Przykładowo osoba od marketingu może publikować własne wpisy, aktualizować je po publikacji i przesyłać ilustracje, ale nie zarządzać wtyczkami. Do ustalenia pozostaje edycja cudzych materiałów, usuwanie wpisów i zmiana kategorii. Nie dopisuj tych uprawnień przez przyzwyczajenie.

Edytor ról, taki jak Members, pozwala pracować z capabilities w panelu. Przed zapisem porównaj planowane zmiany z listą zadań. Nie przyznawaj nieznanej capability tylko dlatego, że jej nazwa przypomina potrzebną funkcję; najpierw sprawdź, która wtyczka ją definiuje i gdzie egzekwuje.

Własny kod najlepiej umieścić we wtyczce odpowiedzialnej za funkcję, aby rola nie zależała od wyglądu strony. Poniższy fragment pokazuje utworzenie przykładowego zestawu. To kod zmieniający konfigurację ról, przeznaczony do kontrolowanego etapu instalacji na środowisku testowym:

add_role( 'kc_marketing', 'Marketing', array(
    'read'                 => true,
    'edit_posts'           => true,
    'edit_published_posts' => true,
    'publish_posts'        => true,
    'upload_files'         => true,
) );

Funkcja add_role dodaje rolę, jeśli ta jeszcze nie istnieje. Gdy istnieje, zwraca null i nie aktualizuje jej capabilities. Zmiana tablicy w powyższym kodzie nie zmieni zatem automatycznie dostępu osób już korzystających z roli. Potrzebna jest jawna migracja istniejącej konfiguracji, na przykład przez metody add_cap i remove_cap obiektu roli.

Zapisz wersję schematu uprawnień, wykonaj migrację w kontrolowanym kroku i sprawdź jej wynik. Nie usuwaj i nie odtwarzaj roli przy każdym wejściu na stronę. Dla aktualizacji określ również sposób wycofania zmiany, zwłaszcza jeśli z danej roli korzystuje aktywny zespół.

Jak role wpływają na bezpieczeństwo witryny?

Zasada najmniejszych uprawnień oznacza przyznanie dostępu wystarczającego do zadania. Administrator potrzebny do instalacji integracji nie musi pozostać Administratorem po zakończeniu wdrożenia. Jednocześnie konto Autora także wymaga ochrony: jego przejęcie może służyć publikacji szkodliwej treści, podmianie materiałów lub nadużyciu dostępu do plików. Mniejszy zakres nie oznacza braku ryzyka.

Praktyczny porządek dostępów obejmuje indywidualne konta, silne uwierzytelnianie i 2FA, rozdzielenie codziennej redakcji od administracji oraz termin przeglądu uprawnień. Nie współdziel konta z wykonawcą, bo utrudnisz odebranie dostępu i ustalenie autora zmian. Przy szerszym przeglądzie zobacz zasady bezpieczeństwa sklepu internetowego.

Ukrycie pozycji menu albo przekierowanie z wp-admin porządkuje interfejs, lecz nie zastępuje autoryzacji. Operację trzeba zabezpieczyć w miejscu, które ją wykonuje, również w REST API i AJAX. Użytkownik nie powinien uzyskać zabronionych danych po bezpośrednim otwarciu adresu pominiętego w menu.

Testuj uprawnienia na osobnym koncie z docelową rolą. Sprawdź edycję własnego szkicu, własnego opublikowanego wpisu i cudzego wpisu. Zapisz oczekiwane odmowy, nie tylko czynności dozwolone. Powtórz istotne testy po zmianach wtyczek zgodnie z procedurą aktualizacji WordPressa.

Jakie role dodaje WooCommerce?

WooCommerce dodaje role Customer i Shop Manager. Pierwsza służy kupującemu, druga obsłudze sklepu. Ich rzeczywisty zakres trzeba sprawdzić w działającej instalacji, ponieważ rozszerzenia mogą wprowadzać dodatkowe capabilities oraz własne formularze.

RolaTypowe zadanieWażny zakres
CustomerWłasne konto i zamówieniaDane innych klientów pozostają poza dozwolonym zakresem
Shop ManagerProdukty, zamówienia i raportyObejmuje także zarządzanie ustawieniami WooCommerce

Zgodnie z dokumentacją WooCommerce Shop Manager nie jest wyłącznie operatorem pakowania zamówień. Dostęp do ustawień sklepu ma znaczenie dla bezpieczeństwa konfiguracji. Nie utożsamiaj go również z Administratorem WordPressa, który zarządza warstwą techniczną witryny.

Jeśli magazynier ma widzieć tylko informacje potrzebne do realizacji, samo schowanie cen lub menu nie wystarczy. Trzeba ustalić zestaw udostępnianych danych, sprawdzić obsługujące je endpointy i potwierdzić, że rola nie otwiera szerszego widoku zamówienia. Test powinien objąć również eksport oraz używane integracje. Projektowanie takiego dostępu warto uwzględnić już podczas budowy strony internetowej z funkcjami sprzedażowymi.

Jak odebrać dostęp i uporządkować dalszą opiekę?

Po zakończeniu współpracy odbierz uprawnienia, sprawdź aktywne sesje i powiązane metody dostępu. Klucze integracji czy hasła aplikacji wymagają osobnego przeglądu; nie zakładaj, że zmiana widocznej roli zamyka każdą drogę. Zapisz osobę odpowiedzialną za odbiór oraz datę zakończenia dostępu.

Zmiana roli sama w sobie nie kasuje wpisów użytkownika. Usunięcie konta jest inną operacją i może wymagać decyzji o przypisaniu treści. Przed usunięciem ustal, które materiały mają pozostać i kto przejmuje ich redakcję. W Multisite odróżnij usunięcie z jednej witryny od operacji dotyczącej konta w sieci.

Jeśli chcesz uporządkować uprawnienia, opisz zakres pracy zespołu. W ramach obsługi WordPressa możemy przygotować role, test dostępu i instrukcję przekazania. Późniejsze korekty oraz przeglądy da się objąć małym pakietem godzinowym; zakres opieki i SLA ustalamy indywidualnie, zależnie od funkcji strony.

Wspomniane narzędzia

MembersUser Role EditorCapabilitiesRoles

Najczęściej zadawane pytania

Czy ukrycie wp-admin zabezpiecza dostęp?
Ukrycie menu lub przekierowanie z wp-admin nie zabezpiecza samo w sobie operacji WordPressa. Dostęp trzeba sprawdzić po stronie serwera odpowiednią capability, także w REST API i AJAX. Interfejs może ułatwiać pracę, ale nie powinien być jedyną barierą. Po wdrożeniu przetestuj zabronione żądania bezpośrednio na koncie o ograniczonych uprawnieniach oraz dostęp do cudzych obiektów.
Czy Shop Manager ma uprawnienia Administratora?
Shop Manager nie jest Administratorem WordPressa, ale ma szeroki dostęp do obsługi sklepu, w tym ustawień WooCommerce. Nie przydzielaj tej roli automatycznie osobie, która tylko pakuje zamówienia. Spisz potrzebne czynności i dane, a następnie sprawdź możliwości konkretnej instalacji. W razie potrzeby przygotuj węższą rolę oraz test odmowy dostępu do pozostałych operacji sklepowych.
Dlaczego zmiana add_role nie aktualizuje uprawnień?
Funkcja add_role nie zmienia istniejącej roli WordPressa. Jeśli rola została wcześniej utworzona, kolejne wywołanie zwróci null, więc nowa tablica capabilities nie zaktualizuje dostępu użytkowników. Zmianę przeprowadź jako kontrolowaną migrację istniejącego obiektu roli. Zapisz wersję konfiguracji i przetestuj zarówno dozwolone czynności, jak i oczekiwane odmowy, zanim wdrożysz zmianę na witrynie używanej przez zespół.
Czy odebranie roli usuwa wcześniejsze wpisy?
Zmiana lub odebranie roli WordPressa nie usuwa automatycznie wcześniejszych wpisów użytkownika. Wpływa na jego uprawnienia, natomiast materiały wymagają osobnej decyzji redakcyjnej. Przy usuwaniu konta sprawdź możliwość przypisania treści innej osobie i nie zatwierdzaj kasowania bez przeglądu. W instalacji Multisite dodatkowo rozróżnij usunięcie użytkownika z jednej witryny od usunięcia konta z całej sieci.
Czy Administrator ma taki sam dostęp w Multisite?
Administrator witryny w WordPress Multisite nie ma automatycznie wszystkich możliwości administratora pojedynczej instalacji. Część operacji technicznych należy do Super Administratora zarządzającego siecią, a dostęp zależy również od jej ustawień. Przy nadawaniu roli wskaż konkretną witrynę i zadania użytkownika. Następnie sprawdź uprawnienia w tym kontekście, zamiast oceniać je wyłącznie po nazwie widocznej w panelu.
#wordpress#roles#uprawnienia#użytkownicy#bezpieczeństwo
Zdjęcie autora: Krzysztof Czapnik
O autorze

Krzysztof Czapnik

Founder & Technical Lead, KC Mobile

Projektuję i rozwijam strony WordPress, sklepy WooCommerce oraz aplikacje internetowe. Łączę projektowanie z programowaniem, integracjami i technicznym SEO. Projekty KC Mobile prowadzę osobiście.

Potrzebujesz pomocy z tym tematem? Napisz - odpowiem osobiście w 24h.

Potrzebujesz konkretnej funkcji na stronie?

Opisz, co użytkownik ma móc zrobić, i podaj adres obecnej strony, jeśli już działa. Możesz dołączyć przykład. Dobierzemy zakres prac do istniejącej witryny, a nową stronę z dedykowanym projektem przygotujemy od 3 500 zł netto.