LuckPerms to plugin do zarządzania uprawnieniami. Decyduje, kto może używać których poleceń i funkcji, oraz przydziela graczom grupy takie jak VIP, Moderator czy Admin, łącznie z prefiksem na czacie. Najpierw wyjaśnimy, jak działają uprawnienia, a potem krok po kroku zbudujemy kompletną strukturę grup dla typowego serwera.
Czego potrzebujesz
- Serwer Minecraft typu Paper lub Purpur (LuckPerms istnieje też dla Fabric, Forge i NeoForge, różnice opisujemy niżej)
- Dostęp do zakładek Konsola i Pluginy (właściciel lub członek z uprawnieniami Konsola i Pliki)
- Do prefiksów na czacie: Vault i plugin formatujący czat (na przykład EssentialsX Chat), zobacz Polecane pluginy
- Około 30 minut
Jak działają uprawnienia#
| Pojęcie | Co to jest | Przykład |
|---|---|---|
| Uprawnienie (permission, node) | Tekst rozdzielony kropkami, który odblokowuje jedno polecenie lub funkcję. Każdy plugin ma własne uprawnienia. | essentials.home pozwala na polecenie /home |
| Wartość | true nadaje uprawnienie, false wyraźnie je odbiera. Nieustawione uprawnienie zwykle zachowuje się jak false. | essentials.fly = false |
Symbol wieloznaczny * | Nadaje wszystkie uprawnienia, które zaczynają się tak samo. | essentials.* = wszystkie uprawnienia EssentialsX |
| Grupa (group) | Zestaw uprawnień, który nadajesz graczom za jednym razem. | vip, moderator, admin |
Grupa default | Należy do niej automatycznie każdy gracz. Nie można jej usunąć ani zmienić jej nazwy. | Podstawowe polecenia dla wszystkich |
| Dziedziczenie (parent) | Grupa przejmuje uprawnienia innej grupy. Gracz dziedziczy po swoich grupach. | moderator dziedziczy po helper |
| Waga (weight) | Liczba określająca priorytet grupy. Gdy dwie grupy gracza ustawiają to samo uprawnienie inaczej, wygrywa grupa z wyższą wagą. Prefiks ma własny priorytet (zobacz Prefiksy na czacie). | admin 400 wygrywa z vip 100 |
| Kontekst (context) | Warunek określający, gdzie uprawnienie obowiązuje. | world=world_nether, gamemode=creative |
Nazwy uprawnień znajdziesz w dokumentacji każdego pluginu. Uprawnienia poleceń samego Minecrafta mają na Paperze postać minecraft., na przykład minecraft.command.kick albo minecraft. (polecenie /tp). Jeśli nie znasz uprawnienia, LuckPerms potrafi je wykryć sam, zobacz Sprawdzanie i szukanie błędów.
Instalacja i przechowywanie danych#
- W zakładce Pluginy › Przeglądaj wyszukaj
LuckPermsi kliknij Zainstaluj (albo prześlij plik z luckperms.net/download (otwiera się w nowym oknie) do folderuplugins, zobacz Instalacja pluginów). - Zrestartuj serwer.
- W konsoli sprawdź, czy LuckPerms się włączył (linia
[LuckPerms] Enabling LuckPerms …bez błędów). Przy pierwszym starcie plugin pobiera swoje biblioteki, więc start może potrwać nieco dłużej.
LuckPerms tworzy folder plugins/LuckPerms z ustawieniami w pliku config.yml. Gdzie zapisuje dane, decyduje opcja storage-method:
Wartość storage-method | Gdzie są dane | Kiedy wybrać |
|---|---|---|
h2 (domyślnie) | Plik plugins/ (w starszych wersjach luckperms-h2.mv.db) | Jeden serwer. Nic nie musisz ustawiać. |
yaml lub json | Czytelne pliki w folderze yaml-storage lub json-storage | Gdy chcesz czytać lub edytować dane w plikach |
mariadb lub mysql | Baza danych z zakładki Baza danych | Kilka serwerów ze wspólnymi grupami (sieć przez Velocity) albo dużo graczy |
Przy jednym serwerze zostaw h2. Konfigurację MySQL opisuje artykuł MySQL dla pluginów. Jeśli zmieniasz magazyn danych później, dane nie przeniosą się same:
- Wyeksportuj je poleceniem
lp export prevod. Powstanie plikplugins/.LuckPerms/ prevod. json. gz - Zatrzymaj serwer i w
plugins/zmieńLuckPerms/ config. yml storage-method(przy MySQL także dane logowania). - Uruchom serwer i wczytaj dane poleceniem
lp import prevod.json.gz. Nazwę pliku wpisz razem z rozszerzeniem.json.gz.
Zamiast prevod możesz użyć dowolnej nazwy bez spacji i polskich znaków.
Kopia zapasowa uprawnień
Polecenie lp export zaloha-opravneni zapisuje wszystkie grupy i graczy do pliku plugins/. Uruchamiaj je przed każdą większą zmianą. Z powrotem wczytasz je poleceniem lp import zaloha-opravneni.json.gz (z opcją --replace na końcu zastąpi bieżące dane, bez niej dane zostaną scalone).
Pełne prawa dla siebie#
Po instalacji do poleceń LuckPerms nie ma dostępu nikt poza konsolą i operatorami. Operatorzy mogą domyślnie używać poleceń LuckPerms (opcja commands-allow-op: true w plugins/).
Połącz się z serwerem, aby LuckPerms poznał Twoje konto.
W zakładce Konsola wpisz:
Konsolatext lp user <NICK> permission set luckperms.* truelp– skrót polecenia LuckPerms (długa forma toluckperms).user <NICK>– edytujemy gracza. Zamiast<NICK>wpisz swoją nazwę w grze, na przykładSteve.permission set– ustawiamy uprawnienie.luckperms.*– wszystkie uprawnienia LuckPerms, czyli dostęp do wszystkich jego poleceń.true– nadaj uprawnienie (falsewyraźnie by go zabroniło).
W grze używasz potem poleceń z ukośnikiem (/lp …), w konsoli bez ukośnika.
Nie nadawaj sobie uprawnienia `*`
Uprawnienie * (absolutnie wszystko) wygląda wygodnie, ale włącza też uprawnienia, które zmieniają zachowanie pluginów: omijanie ochrony terenu, odporność na bany, podgląd prywatnych wiadomości i tym podobne. Ochrona WorldGuarda sprawia wtedy wrażenie, że nie działa, bo niejawnie ją omijasz. Dla siebie użyj grupy owner z wybranymi uprawnieniami (niżej) i do tego praw operatora.
Tworzenie grup i dziedziczenia#
Zbudujemy strukturę, która pasuje do większości serwerów:
default
├── vip
└── helper
└── moderator
└── admin
└── ownerKażda grupa dziedziczy wszystko po grupie nad sobą. Admin może więc wszystko to, co moderator, moderator wszystko to, co helper, a wszyscy wszystko to, co default. VIP to osobna gałąź, więc VIP nie dostaje praw ekipy.
Utwórz grupy razem z wagą. Wpisuj do konsoli po kolei:
Konsolatext lp creategroup vip 100 lp creategroup helper 200 lp creategroup moderator 300 lp creategroup admin 400 lp creategroup owner 500creategroup <grupa>– tworzy pustą grupę. Nazwy pisz małymi literami, bez polskich znaków i spacji.- Liczba za nazwą to waga. Wyższa waga ma pierwszeństwo. Odstępy co sto zostawiają miejsce na późniejsze grupy (na przykład
vip-plusz wagą 150).
Ustaw dziedziczenie:
Konsolatext lp group vip parent add default lp group helper parent add default lp group moderator parent add helper lp group admin parent add moderator lp group owner parent add admingroup <grupa>– edytujemy grupę.parent add <rodzic>– grupa zaczyna dziedziczyć uprawnienia rodzica. Dziedziczenie łączy się w łańcuch, więcownerdostaje uprawnienia wszystkich grup pod sobą.
Nadaj grupom nazwy, które zobaczą gracze (opcjonalnie):
Konsolatext lp group moderator setdisplayname ModeratorWyświetlana nazwa może zawierać polskie znaki. W ten sposób możesz pokazywać grupę
defaultjako „Gracz” bez faktycznej zmiany jej nazwy.
Uprawnienia dla grup#
Uprawnienie dodasz poleceniem lp group <grupa> permission set <uprawnienie> [true|false] [kontekst…]. Jeśli pominiesz wartość, zostanie użyte true.
Podstawy dla wszystkich graczy (grupa
default), przykład dla EssentialsX:Konsolatext lp group default permission set essentials.home lp group default permission set essentials.sethome lp group default permission set essentials.delhome lp group default permission set essentials.spawn lp group default permission set essentials.tpa lp group default permission set essentials.tpaccept lp group default permission set essentials.tpdeny lp group default permission set essentials.back lp group default permission set essentials.msg lp group default permission set essentials.warp lp group default permission set essentials.warp.listGracze dostają w ten sposób domy (
/home,/sethome,/delhome), powrót na spawn, prośby o teleport (/tpa,/tpaccept,/tpdeny), powrót do ostatniego miejsca (/back), prywatne wiadomości i warpy.VIP z większą liczbą domów i stołem rzemieślniczym w dowolnym miejscu:
Konsolatext lp group vip permission set essentials.sethome.multiple lp group vip permission set essentials.sethome.multiple.vip lp group vip permission set essentials.workbench lp group vip permission set essentials.hatLiczbę domów dla „vip” ustawia się w
plugins/w sekcjiEssentials/ config. yml sethome-multiple(domyślnie 5), zobacz Polecane pluginy.Ekipa (helper, moderator, admin):
Konsolatext lp group helper permission set essentials.mute lp group helper permission set essentials.kick lp group helper permission set coreprotect.inspect lp group helper permission set coreprotect.lookup lp group moderator permission set essentials.tempban lp group moderator permission set essentials.vanish lp group moderator permission set essentials.invsee lp group moderator permission set essentials.tp lp group moderator permission set coreprotect.rollback lp group moderator permission set coreprotect.restore lp group admin permission set essentials.ban lp group admin permission set essentials.unban lp group admin permission set essentials.gamemode lp group admin permission set essentials.fly lp group admin permission set worldedit.* lp group admin permission set worldguard.region.* lp group owner permission set luckperms.* lp group owner permission set essentials.*Uprawnienia CoreProtect, WorldEdit i WorldGuard wyjaśnia artykuł Polecane pluginy. Symbol wieloznaczny
worldedit.*nadaje wszystkie uprawnienia WorldEdita.
Zakazy i wyjątki#
Wartość false wyraźnie zabrania uprawnienia, nawet jeśli grupa je dziedziczy. Przykład: na Paperze gracze mogą domyślnie wyświetlić listę pluginów poleceniem /plugins. Jeśli chcesz ją ukryć:
lp group default permission set bukkit.command.plugins falsePolecenie lp group <grupa> permission unset <uprawnienie> z kolei całkowicie usuwa ustawienie (uprawnienie wraca do stanu „nieustawione”).
Uprawnienia tylko w niektórych miejscach: konteksty#
Na końcu polecenia możesz dodać kontekst. Uprawnienie obowiązuje wtedy tylko pod danym warunkiem:
lp group vip permission set essentials.fly true world=world
lp group default permission set essentials.home false world=pvp_arenaworld=world– VIP może latać tylko w świecie z folderemworld(nie w Netherze,world_nether).world=pvp_arena– na arenie nie działa/home.
Inne konteksty to gamemode=creative albo server=<NAZWA_SERWERA> dla sieci serwerów (nazwę serwera ustawia opcja server w plugins/).
Uprawnienia tymczasowe#
lp user <NICK> permission settemp essentials.fly true 1dsettemp dodaje uprawnienie na określony czas. Czas zapisuje się jako 30m (minuty), 12h (godziny), 7d (dni), 1mo (miesiąc) albo ich kombinację, na przykład 1mo3d12h.
Prefiksy na czacie#
Prefiks to tekst przed nazwą gracza na czacie, na przykład [Admin] Steve: cześć. LuckPerms tylko go przechowuje. Wyświetla go dopiero plugin, który formatuje czat (na przykład EssentialsX Chat), a ten odczytuje go przez plugin Vault. Bez obu prefiks na czacie się nie pojawi.
Ustaw prefiksy grupom:
Konsolatext lp group vip meta setprefix 100 "&6[VIP] " lp group helper meta setprefix 200 "&a[Helper] " lp group moderator meta setprefix 300 "&9[Moderator] " lp group admin meta setprefix 400 "&c[Admin] " lp group owner meta setprefix 500 "&4[Właściciel] "meta setprefix– ustawia prefiks i zastępuje poprzedni prefiks grupy.- Liczba (od
100do500) to priorytet prefiksu. Gdy gracz należy do kilku grup, wyświetla się prefiks z najwyższym priorytetem. Moderator, który jest też VIP-em, dostanie więc prefiks[Moderator]. - Tekst w cudzysłowie to prefiks. Cudzysłów jest potrzebny ze względu na spację na końcu, która oddziela prefiks od nazwy.
&6,&a… to kody kolorów (tabela niżej).
Sprawdź, czy plugin czatu odczytuje prefiks: w konsoli wpisz
vault-info. Wynik musi podawać LuckPerms jako źródło uprawnień i czatu.
| Kod | Kolor | Kod | Kolor |
|---|---|---|---|
&0 | czarny | &8 | ciemnoszary |
&1 | ciemnoniebieski | &9 | niebieski |
&2 | ciemnozielony | &a | zielony |
&3 | turkusowy | &b | jasnoniebieski |
&4 | ciemnoczerwony | &c | czerwony |
&5 | fioletowy | &d | różowy |
&6 | złoty | &e | żółty |
&7 | szary | &f | biały |
&l | pogrubienie | &o | kursywa |
&n | podkreślenie | &r | reset formatowania |
Kody formatowania (&l, &o, &n) wstawiaj za kodem koloru, na przykład &c&l[Admin].
Dodawanie gracza do grupy#
Gracz powinien przynajmniej raz połączyć się z serwerem, aby LuckPerms znał jego konto.
lp user <NICK> parent add vipparent add <grupa>– dodaje graczowi grupę. Pozostałe grupy zostają. Przydaje się do nadania VIP-a członkowi ekipy.
lp user <NICK> parent set moderatorparent set <grupa>– ustawia graczowi tylko tę grupę, a pozostałe mu odbiera. Przydaje się do zmiany rangi.
lp user <NICK> parent remove vipparent remove <grupa>– usuwa grupę. Jeśli gracz nie ma żadnej innej, wraca dodefault.
lp user <NICK> parent addtemp vip 30dparent addtemp <grupa> <czas>– grupa na określony czas (tutaj 30 dni), na przykład VIP na miesiąc. Po upływie czasu LuckPerms sam ją usunie.
Edytor WWW#
Zamiast poleceń możesz wszystko edytować w przeglądarce.
W konsoli wpisz
lp editor.LuckPerms wypisze link. Otwórz go w przeglądarce.
Po lewej wybierz grupę lub gracza. Uprawnienia dodasz w polu Add Permission (edytor podpowiada znane uprawnienia), wartości zmienisz kliknięciem w tabelę. Kontekst dodasz przyciskiem Add Contexts.
Kliknij Save (albo Ctrl+S).
Edytor pokaże polecenie w postaci
/lp applyedits <KOD>. Kliknięciem je skopiujesz.Wklej je do konsoli bez ukośnika na początku i naciśnij Enter.
Konsola wypisze podsumowanie zmian. Dopiero teraz zostały zapisane.
Zmiany z edytora nie zapiszą się bez applyedits
Zapisanie w przeglądarce nie wysyła zmian na serwer. Musisz uruchomić wygenerowane polecenie lp applyedits. Edytor dla jednej grupy otworzysz poleceniem lp group <grupa> editor.
W edytorze waga, prefiks i rodzic są zapisywane jako specjalne uprawnienia: weight.400, prefix.400.&c[Admin] i group.moderator.
Awanse po drabince (tracks)#
Track to drabinka grup, po której awansujesz graczy jednym poleceniem. Nie wpływa na dziedziczenie.
Utwórz track i dodaj do niego grupy we właściwej kolejności:
Konsolatext lp createtrack tym lp track tym append helper lp track tym append moderator lp track tym append adminAwansuj i degraduj:
Konsolatext lp user <NICK> promote tym lp user <NICK> demote tympromote– przesuwa gracza o stopień wyżej i odbiera mu poprzednią grupę z tracka. Jeśli gracza jeszcze nie ma na tracku, dostaje pierwszą grupę (helper).demote– przesuwa gracza o stopień niżej.
Sprawdzanie i szukanie błędów#
| Polecenie | Co pokazuje |
|---|---|
lp user <NICK> info | Grupę główną, wszystkie grupy gracza, bieżący kontekst i prefiks |
lp user <NICK> permission check <uprawnienie> | Czy gracz ma uprawnienie i skąd je dostał |
lp group <grupa> info | Wagę, rodziców i liczbę uprawnień grupy |
lp group <grupa> permission info | Listę uprawnień grupy |
lp group <grupa> listmembers | Graczy w grupie |
lp user <NICK> meta info | Wszystkie prefiksy gracza posortowane według priorytetu |
Gdy nie wiesz, jakiego uprawnienia potrzebuje polecenie, użyj trybu verbose:
- W konsoli wpisz
lp verbose record <NICK>. - Poproś gracza, aby w grze użył polecenia, które nie działa.
- Wpisz
lp verbose upload. LuckPerms wypisze link do przeglądu wszystkich sprawdzeń uprawnień. Szukaj linii z wynikiemfalse.
Zalecana struktura dla typowego serwera#
| Grupa | Waga | Dziedziczy po | Dla kogo | Przykładowe uprawnienia |
|---|---|---|---|---|
default | – | – | Każdy gracz | essentials.home, essentials.sethome, essentials.spawn, essentials.tpa, essentials.msg |
vip | 100 | default | Wspierający | essentials., essentials., essentials.workbench |
helper | 200 | default | Nowi członkowie ekipy | essentials.mute, essentials.kick, coreprotect.inspect |
moderator | 300 | helper | Moderatorzy | essentials.tempban, essentials.vanish, coreprotect.rollback |
admin | 400 | moderator | Administratorzy | essentials.ban, essentials.gamemode, worldedit.* |
owner | 500 | admin | Właściciel | luckperms.*, essentials.* + prawa operatora |
Zasady: nadawaj tylko uprawnienia, których grupa naprawdę potrzebuje. Nowe uprawnienia dodawaj najniższej grupie, która ma je mieć, a wyższe grupy je odziedziczą. Wyjątki rozwiązuj wartością false albo kontekstem, a nie kopiowaniem uprawnień do kilku grup.
LuckPerms na Fabricu, Forge i NeoForge#
LuckPerms istnieje też jako mod. Polecenia są takie same, plik trafia do folderu mods, a ustawienia znajdziesz w folderze config, w podfolderze LuckPerms. Różnica: Fabric nie sprawdza uprawnień przy poleceniach samego Minecrafta, więc uprawnienia typu minecraft. nie działają na Fabricu bez dodatkowego moda. Polecenia modów, które obsługują LuckPerms, działają normalnie.
Szybkie przepisy#
| Chcę… | Polecenie do konsoli |
|---|---|
| Dać graczowi VIP-a na 30 dni | lp user <NICK> parent addtemp vip 30d |
| Odebrać graczowi VIP-a | lp user <NICK> parent remove vip |
| Zrobić z gracza moderatora (i odebrać mu pozostałe grupy) | lp user <NICK> parent set moderator |
Pozwolić VIP-om latać tylko w świecie lobby | lp group vip permission set essentials.fly true world=lobby |
Sprawdzić, kto jest w grupie admin | lp group admin listmembers |
| Skopiować grupę jako bazę nowej | lp group vip clone vip-plus |
| Zmienić nazwę grupy | lp group vip-plus rename mvp |
| Usunąć grupę | lp deletegroup mvp |
| Wypisać wszystkie grupy | lp listgroups |
| Zrobić kopię zapasową wszystkich uprawnień do pliku | lp export zaloha-opravneni |
Zamiast <NICK> wpisz nazwę gracza w grze. W grze wpisuj polecenia z ukośnikiem (/lp …).
LuckPerms w sieci serwerów (Velocity)#
Gdy prowadzisz kilka serwerów połączonych proxy Velocity, zwykle chcesz mieć wszędzie te same grupy. Procedura w skrócie:
- Zainstaluj LuckPerms na każdym serwerze i na proxy (wersję dla Velocity). Na proxy polecenia wpisuje się jako
lpvzamiastlp. - Utwórz jedną bazę danych MariaDB lub MySQL, z którą połączą się wszystkie instancje, zobacz MySQL dla pluginów.
- Na każdej instancji edytuj
plugins/(przy zatrzymanym serwerze):LuckPerms/ config. yml
| Ustawienie | Co robi | Zalecana wartość | Kiedy zmienić |
|---|---|---|---|
server | Nazwa instancji. Używana w kontekście server=… dla uprawnień obowiązujących tylko na niektórych serwerach. | Krótka nazwa, na przykład lobby albo survival | Domyślne global zostaw tylko na samodzielnym serwerze. |
storage-method | Gdzie LuckPerms zapisuje dane. Wszystkie instancje muszą używać tego samego magazynu. | mysql (działa z MySQL i MariaDB) | mariadb, jeśli wiesz, że serwer bazy danych to MariaDB (LuckPerms zaleca ją dla MariaDB). |
data (address, database, username, password) | Dane logowania do bazy danych. Port wpisuje się do address w postaci host:port. | Dane z zakładki Baza danych | Przy zmianie hasła bazy danych. |
messaging-service | Jak instancje powiadamiają się nawzajem o zmianach, żeby działały od razu. | sql (ze wspólną bazą danych) | pluginmsg w małej sieci z jednym proxy, gdzie LuckPerms działa wszędzie. |
- Zrestartuj wszystkie serwery i proxy. Zmiana wprowadzona na jednym serwerze pojawi się wtedy także na pozostałych.
Konfigurację samej sieci opisuje artykuł Sieć serwerów przez Velocity.
Weryfikacja#
- Wpisz
lp user <NICK> infodla testowego gracza. W wyniku zobaczysz jego grupy i prefiks. - Połącz się jako zwykły gracz (bez operatora, polecenie
deop <NICK>) i wypróbuj polecenia, które grupa ma móc używać, oraz te, których nie powinna. - Napisz wiadomość na czacie i sprawdź prefiks.
Rozwiązywanie problemów#
Po wpisaniu /lp wyświetla się tylko wersja pluginu#
Nie masz uprawnienia do żadnego polecenia LuckPerms. Nadaj je sobie z konsoli poleceniem lp user <NICK> permission set luckperms.* true.
Uprawnienia nie działają, choć gracz jest w grupie#
- Na serwerze jest inny plugin do uprawnień (PermissionsEx, GroupManager i podobne). LuckPerms musi być jedyny, inne usuń.
- Testujesz jako operator. Operator ma uprawnienia pluginów automatycznie, co zafałszowuje wynik. Testuj bez opa.
- Literówka w nazwie uprawnienia. Sprawdź ją przez
lp verbose(wyżej). - Uprawnienie jest gdzieś ustawione na
false. Polecenielp user <NICK> permission check <uprawnienie>pokaże, skąd pochodzi wartość.
Prefiks nie wyświetla się na czacie#
Brakuje Vaulta albo pluginu formatującego czat. Zainstaluj Vault (lub VaultUnlocked) i EssentialsX Chat, a potem zrestartuj serwer. W EssentialsX Chat format czatu musi zawierać {DISPLAYNAME} albo {PREFIX}. Jeśli gracz widzi inny prefiks, niż oczekujesz, porównaj priorytety w lp user <NICK> meta info.
Zmiany z edytora WWW nie zadziałały#
Nie uruchomiono polecenia lp applyedits <KOD> wygenerowanego po zapisaniu. Zapisz ponownie i uruchom polecenie.
lp user nie znajduje gracza#
Gracz jeszcze nie łączył się z serwerem, więc LuckPerms nie zna jego konta. Poproś go, żeby się połączył, albo użyj jego UUID zamiast nazwy.
Gracz w grupie nie ma prefiksu ani uprawnień po dodaniu przez parent set#
Sprawdź nazwę grupy (lp listgroups). Polecenie parent set z grupą, która nie istnieje, kończy się błędem i niczego graczowi nie dodaje.
Podsumowanie
- Uprawnienia nadaje się grupom, a gracze je dziedziczą. Każdy gracz jest automatycznie w grupie
default. - Twórz grupy z wagą (
lp creategroup admin 400) i łącz je przezparent add. - Uprawnienia:
lp group <grupa> permission set <uprawnienie>; gracz do grupy:lp user <NICK> parent add <grupa>. - Prefiks:
lp group <grupa> meta setprefix <priorytet> "<tekst>". Do wyświetlenia potrzebujesz Vaulta i pluginu czatu. - Zmiany z
lp editorzapisuje dopiero polecenielp applyedits. - Nikomu nie nadawaj uprawnienia
*i testuj bez operatora.