Konfigurera adminpanelen för Modx Revolution-klienten med inställning av åtkomsträttigheter. MODx Revolution: Skapa resurser och ladda upp filer från Modx Frontend-filkälla Fälttyp Bild

God eftermiddag till alla läsare av WebHow-bloggen! Jag hittade äntligen en bra artikelkod som lyfter fram plugin, och nu kan jag börja på allvar. Så, skämt åsido, idag kommer det att finnas ett hårt inlägg för dem som drömmer om att organisera en anslagstavla, katalog eller någon annan tjänst på sin MODx-sida, där besökarna själva lägger upp sitt innehåll.

Alla som åtminstone är lite bekanta med MODx vet att för att kunna lägga upp innehåll måste användaren ha tillgång till adminpanelen. Naturligtvis vill du inte distribuera det åt vänster och höger. Därför är det nödvändigt att se till att användare kan skapa resurser och ladda upp filer till dem direkt från webbplatsens sidor.

Jag är ingen programmerare, och när jag först var tvungen att skapa en anslagstavla på MODx var allt jag kunde göra att leta efter en färdig lösning. Det fanns en hel del olika alternativ för ett utdrag som skulle tillåta att publicera en resurs från frontend för MODx Revolution.

Principen är ungefär densamma för alla: med hjälp av FormIt skapas en sida med ett formulär, i vars anrop namnet på utdraget skrivs. Varje annonstyp har sina egna tv-fält, till exempel stad, telefonnummer eller ett fält för uppladdning av bilder. När användaren skickar in formuläret skapas resursen.

Men nästan alla klipp som jag kunde hitta var väldigt besvärliga: varje TV-parameter måste skrivas i klippkoden, och det passade inte mig. För för varje typ av annons skapade jag minst 3 ytterligare fält, och skriver alla i ett stycke ... nej, det finns ett bättre och enklare sätt. Det hittades av mig på den engelska delen av det officiella MODx.com-forumet Och om du inte talar och läser engelska så bra eller om du bara är för lat för att leta efter ett lämpligt alternativ från flera i ämnet, kommer jag att berätta hur att använda den.

Om detta ämne spelade jag in en steg-för-steg videoinstruktion. Du hittar allt material till den precis under spelaren.

kodavsnitt formit2resource

getObject("modResource",array("id"=>$hook->getValue("resource_id"))); if (tom($doc))( $doc = $modx->newObject("modResource"); $doc->set("skapad av", $modx->user->get("id")); ) annat ( $doc->set("editedby", $modx->user->get("id")); ) $allFormFields = $hook->getValues(); foreach ($allFormFields som $field=>$value) (if ($field !== "spam" && $field !== "resource_id")( $doc->set($field, $value); ) ) $ alias = $doc->cleanAlias($fields["pagetitle"]); if($modx->getCount(modResource, array("alias"=>$alias))!= 0) ( $count = 1; $newAlias ​​​​= $alias; while($modx->getCount(modResource, array (" alias"=>$newAlias))!= 0) ( $newAlias ​​​​= $alias; $newAlias ​​​​.= "-" . $count; $count++; ) $alias = $newAlias; ) $doc- >set("alias", $alias); $doc->set("mall", $mall); $doc->save(); foreach ($allFormFields som $field=>$value) (if (!empty($value) && $tv = $modx->getObject("modTemplateVar", array ("name"=>$field))) ( /* hanterar kryssrutor & multiple select-element */ if (is_array($value)) ( $featureInsert = array(); while (list($featureValue, $featureItem) = each($value)) ( $featureInsert = $featureItem; ) $ värde = implode("||",$featureInsert); ) $tv->setValue($doc->get("id"), $value); $tv->save(); ) ) $modx- >cacheManager ->refresh(); returnera sant;

kodavsnitt formit2file

user->get("id"); // Sökväg från root som användaren anger // skapa unik sökväg för denna formulärinlämning $uploadpath = "tillgångar/uppladdningar/".$mydir."/"; // få fullständig sökväg till den unika mappen $target_path = $modx->config["base_path"] . $uploadpath; // få uppladdade filnamn: $submittedfiles = array_keys($_FILES); // gå igenom filer föreach ($submittedfiles som $sf) ( // Hämta filnamn och se till att det är bra. $filename = basename($_FILES[$sf]["name"]); // Hämta filens tillägg $ ext = sökvägsinfo($filnamn, PATHINFO_EXTENSION); $ext = mb_strtolower($ext); // skiftlägesokänslig // är filnamnet tomt (ingen fil uppladdad) if($filnamn != "") ( // är är det rätt typ av fil? if(in_array($ext, $ext_array)) ( // rensa upp filnamnet och gör unikt $filnamn = $counter . "." . $ext; $filnamn = str_replace(" ", " _" , $filnamn); // blanksteg för att understryka $filnamn = datum("Y-m-d_G-i-s_") . $filnamn; // lägg till datum och tid // fullständig sökväg till den nya filen $myTarget = $target_path . $filnamn ; // skapa katalog att flytta filen till om den inte finns mkdir($target_path, 0755, true); // har filen flyttats till rätt mapp framgångsrikt? if(move_uploaded_file($_FILES[$sf][] "tmp_name "], $myTarget)) ( // ställ in en ny platshållare med den nya fullständiga sökvägen (om du behöver den i efterföljande hooks) $myFile = $uppladdning väg. $filnamn; $hook->setValue($sf,$myFile); // ställ in behörigheterna för filen if (!chmod($myTarget, 0644)) ( /*någon felsökningsfunktion*/ ) ) else ( // File not uploaded $errorMsg = "Det uppstod ett problem med att ladda upp filen."; $hook->addError($sf, $errorMsg); $output = false; // generera inlämningsfel ) ) else ( // Filtyp inte tillåten $errorMsg = "Typ av fil är inte tillåten."; $hook->addError ($sf, $errorMsg); $output = false; // generera inlämningsfel ) // om det inte finns någon fil, fel inte, men returnera tomt ) annars ( $hook->setValue($sf, ""); ) $counter = $counter + 1; ) returnera $output;

Vänner! Glöm inte att ersätta dina TV-fält och ID:n för dina resurser med formulärkoden. Var försiktig så kommer du att lyckas.

Ring FormIt

[[!FormIt? &hooks=`formit2file,formit2resource,redirect` &redirectTo=`ID för sidan som innehåller meddelandet` &template=`ID för annonsmallen` ]]

Villkor för att anropa en bit med ett formulär

[[!+modx.user.id:is=`0`:then=`Auktorisering krävs för att lägga upp annonser [[!Loginza? &groups=`3` &profileFields=`användarnamn,e-post,fullständigt namn,foto`]]`:else=`[[$form_add]]`]]

Exempel på formulärkod

[[+fi.error.error_message]]

namn
[[+fi.error.pagetitle]]
*
Stad
[[+fi.error.city]]
*

Detaljerad beskrivning

[[+fi.error.content]]

Bifoga bilder:

Du kan placera upp till fem bilder i katalogen. Godkända format: .jpg, .png, .gif
Huvudfoto eller logotyp * [[+fi.error.img]]
Ytterligare foto (1) [[+fi.error.foto1]]
Ytterligare foto (2) [[+fi.error.foto2]]
Ytterligare foto (3) [[+fi.error.foto3]]
Ytterligare foto (4) [[+fi.error.foto4]]

Villkor för att visa en bild

[[*img:notempty=``]]
Nu kan användare av din webbplats inte bara placera annonser, utan också komplettera dem med foton, precis som på vilken anslagstavla som helst. Men vad händer om ett fel gjordes när du fyllde i formuläret? Till exempel har en person skrivit fel och angett fel telefonnummer, eller så kanske de bara ville lägga till en annons eller ändra priset på sin produkt.

Jag berättar nästa gång. Och det var allt för idag, jag hoppas att den här artikeln var användbar för dig.

I Evolution var allt ganska enkelt: du skapar rättigheter för användaren och du är klar! Och här behöver du göra en massa steg, men å andra sidan - i Modx Revolution med rättigheterna till dokument och filer kan du göra vad du vill (såvida du inte förstår detta förstås). Nåväl, låt oss börja!

1. Gå till "Säkerhet" - "Åtkomstkontroll" i toppmenyn på adminpanelen

2. Gå till fliken "Åtkomstpolicy".

3. Klicka på knappen "Skapa åtkomstpolicy".

Ett fönster med fält öppnas. I fältet Namn skriver vi "manager", åtkomstpolicymallen är AdministratorTemplate. Klicka på spara-knappen

4. Efter att ha sparat åtkomstpolicyn för "hanterare" ser vi att den dök upp i vår lista över åtkomstpolicyer

5. Redigera chef

6. Ta bort kryssrutorna för onödiga parametrar

Längst ner på den här sidan som öppnas finns en lista med alternativ (behörigheter). Vi måste avmarkera de parametrar som är ansvariga för att visa eventuella resurser i adminpanelen för att undvika att redigera eller ta bort nödvändiga dokument, filer, element för att webbplatsen ska fungera korrekt.

Avmarkera rutorna för följande alternativ:

  • access_permissions Visa sida med inställningar för användarrättigheter
  • instrumentpaneler Visa och hantera instrumentpaneler
  • element_tree Möjlighet att se elementträd i vänster nav
  • menu_reports Visa "Rapporter" i toppmenyn
  • menu_security Visa objektet "Säkerhet" i toppmenyn
  • menu_system Visa alternativet "System" i toppmenyn
  • menu_tools Visa "Verktyg" i toppmenyn
  • new_static_resource Skapa nya statiska resurser.
  • remove_locks Ta bort alla lås på sidan

7. Gå till fliken "Säkerhet" - "Åtkomstkontroll" - "Roller"


8. Klicka på knappen "Skapa ny", i fältet Namn vi kör i Manager, Rank - 9, klicka på knappen "Spara"


9. Spara ändringarna och gå till menyn "Säkerhet" - "Åtkomstkontroll" - "Användargrupper"


Högerklicka på "Administratör" och klicka på "Skapa användargrupp"

10. Skapa en ny grupp: Namn - Manager, Backend-policy - ingen policy, klicka på "Spara"

11. Vi hittar den i listan över användargrupper och klickar på "redigera"

12. Gå till menyn "Åtkomst till sammanhang" och klicka på "Lägg till sammanhang"

13. Kontext - administratör, Minsta roll - Chef - 9, Åtkomstpolicy - Chef

14. Lägga till ett annat sammanhang

Eller snarare, vi redigerar den befintliga webben: Kontext - webb, Minimiroll - Chef - 9, Åtkomstpolicy - Administratör. Klicka på knappen "Spara".

15. Vi kommer att se en sådan bild! Vi sparar allt på fliken "Användargrupp: Manager"

16. Nästa: "Säkerhet" - "Användarhantering"

17. Skapa en ny användare (detta kommer att vara vår kund) - klicka på knappen "Ny användare".

Du kan ge honom vilket namn som helst, jag kallar honom manager

18. Användarnamn - chef, klicka på kryssrutan - Aktiv, kör in e-post

19. Ange ett lösenord

20. Innan du sparar, gå till fliken "Behörigheter".

21. Klicka på knappen "Lägg till användare i grupp", Användargrupp - "Manager", Roll - "Manager"

Vi sparar. Detta slutför skapandet av adminpanelen, där klienten endast har tillgång till att redigera och skapa sidor i dokumentträdet. Men den här användaren har fortfarande tillgång till alla systemfiler. Och så kommer vi nu att göra det så att han bara har tillgång till en mapp, som vi kommer att skapa i roten på Modx Revolution-webbplatsen

22. Gå till fliken "Verktyg" - "Filkällor"

23. En lista över alla filkällor öppnas. Som standard skapas endast en - Filsystem

Innan du skapar en ny filkälla måste du först ändra denna. Klicka på "Filsystem" med höger musknapp och välj "Redigera"

24. Ett sådant här fönster öppnas. Klicka på "Lägg till användargrupp"

25. Användargrupper - Administratör, Minsta roll - Superanvändare - 0, Policy - Mediekälla Admin. Klicka på "Spara"

26. Gå tillbaka till filkällor och skapa en ny filkälla

Låt oss kalla det "Manager", Filkälla Tim - Filsystem

27. Högerklicka på den nya filkällan "Hanterare" och välj "Redigera"

28. Ett sådant fönster öppnas! Vi måste ändra de första 4 parametrarna

I basePath, i värdefältet, kör vi in /chef/, basePathRelative och baseUrlRelative lämnar som de är med värdena "Ja", i baseUrl-fältet skriver vi chef/

29. Gå till tv-parameter

30. Klicka på den senaste fliken "Filkällor"

och ändra filkällan från "Filsystem" till "Hanterare". Spara!

31. Lägg till en användargrupp i "Manager"

Nu, efter alla steg som tagits, gå till "Filkälla" - "Hanterare" och lägg till en grupp användare till denna filkälla

32. Användargrupper - Chef, Minimiroll - Chef - 9, Policy - Mediekälla Admin. Klicka på "Spara"

Omedelbart efter sparandet försvinner filkällan "Manager" för administratören. För att kunna redigera denna filkälla måste du gå till menyn "Säkerhet - Åtkomstkontroll". Öppna chefsgruppen för redigering: Manager och på fliken "Filkällor" hitta och ta bort källhanteraren . Först då kommer vi att kunna redigera denna källa igen från administratören.

33. För säkerhets skull, rensa cachen

och vår användare med begränsade rättigheter och tillgång till filsystemet skapas!

Jag kommer inte att säga att det är lätt nog, men om du gör det automatiskt kommer det inte att verka som något svårt. Jag hoppas att allt löste sig för dig! Lycka till med dina projekt!

I Evolution var allt ganska enkelt: du skapar rättigheter för användaren och du är klar! Och här behöver du göra en massa steg, men å andra sidan - i Modx Revolution med rättigheterna till dokument och filer kan du göra vad du vill (såvida du inte förstår detta förstås). Nåväl, låt oss börja!

1. Gå till "Säkerhet" - "Åtkomstkontroll" i toppmenyn på adminpanelen

2. Gå till fliken "Åtkomstpolicy".

3. Klicka på knappen "Skapa åtkomstpolicy".

Ett fönster med fält öppnas. I fältet Namn skriver vi "manager", åtkomstpolicymallen är AdministratorTemplate. Klicka på spara-knappen

4. Efter att ha sparat åtkomstpolicyn för "hanterare" ser vi att den dök upp i vår lista över åtkomstpolicyer

5. Redigera chef

6. Ta bort kryssrutorna för onödiga parametrar

Längst ner på den här sidan som öppnas finns en lista med alternativ (behörigheter). Vi måste avmarkera de parametrar som är ansvariga för att visa eventuella resurser i adminpanelen för att undvika att redigera eller ta bort nödvändiga dokument, filer, element för att webbplatsen ska fungera korrekt.

Avmarkera rutorna för följande alternativ:

  • access_permissions Visa sida med inställningar för användarrättigheter
  • instrumentpaneler Visa och hantera instrumentpaneler
  • element_tree Möjlighet att se elementträd i vänster nav
  • menu_reports Visa "Rapporter" i toppmenyn
  • menu_security Visa objektet "Säkerhet" i toppmenyn
  • menu_system Visa alternativet "System" i toppmenyn
  • menu_tools Visa "Verktyg" i toppmenyn
  • new_static_resource Skapa nya statiska resurser.
  • remove_locks Ta bort alla lås på sidan

7. Gå till fliken "Säkerhet" - "Åtkomstkontroll" - "Roller"


8. Klicka på knappen "Skapa ny", i fältet Namn vi kör i Manager, Rank - 9, klicka på knappen "Spara"


9. Spara ändringarna och gå till menyn "Säkerhet" - "Åtkomstkontroll" - "Användargrupper"


Högerklicka på "Administratör" och klicka på "Skapa användargrupp"

10. Skapa en ny grupp: Namn - Manager, Backend-policy - ingen policy, klicka på "Spara"

11. Vi hittar den i listan över användargrupper och klickar på "redigera"

12. Gå till menyn "Åtkomst till sammanhang" och klicka på "Lägg till sammanhang"

13. Kontext - administratör, Minsta roll - Chef - 9, Åtkomstpolicy - Chef

14. Lägga till ett annat sammanhang

Eller snarare, vi redigerar den befintliga webben: Kontext - webb, Minimiroll - Chef - 9, Åtkomstpolicy - Administratör. Klicka på knappen "Spara".

15. Vi kommer att se en sådan bild! Vi sparar allt på fliken "Användargrupp: Manager"

16. Nästa: "Säkerhet" - "Användarhantering"

17. Skapa en ny användare (detta kommer att vara vår kund) - klicka på knappen "Ny användare".

Du kan ge honom vilket namn som helst, jag kallar honom manager

18. Användarnamn - chef, klicka på kryssrutan - Aktiv, kör in e-post

19. Ange ett lösenord

20. Innan du sparar, gå till fliken "Behörigheter".

21. Klicka på knappen "Lägg till användare i grupp", Användargrupp - "Manager", Roll - "Manager"

Vi sparar. Detta slutför skapandet av adminpanelen, där klienten endast har tillgång till att redigera och skapa sidor i dokumentträdet. Men den här användaren har fortfarande tillgång till alla systemfiler. Och så kommer vi nu att göra det så att han bara har tillgång till en mapp, som vi kommer att skapa i roten på Modx Revolution-webbplatsen

22. Gå till fliken "Verktyg" - "Filkällor"

23. En lista över alla filkällor öppnas. Som standard skapas endast en - Filsystem

Innan du skapar en ny filkälla måste du först ändra denna. Klicka på "Filsystem" med höger musknapp och välj "Redigera"

24. Ett sådant här fönster öppnas. Klicka på "Lägg till användargrupp"

25. Användargrupper - Administratör, Minsta roll - Superanvändare - 0, Policy - Mediekälla Admin. Klicka på "Spara"

26. Gå tillbaka till filkällor och skapa en ny filkälla

Låt oss kalla det "Manager", Filkälla Tim - Filsystem

27. Högerklicka på den nya filkällan "Hanterare" och välj "Redigera"

28. Ett sådant fönster öppnas! Vi måste ändra de första 4 parametrarna

I basePath, i värdefältet, kör vi in /chef/, basePathRelative och baseUrlRelative lämnar som de är med värdena "Ja", i baseUrl-fältet skriver vi chef/

29. Gå till tv-parameter

30. Klicka på den senaste fliken "Filkällor"

och ändra filkällan från "Filsystem" till "Hanterare". Spara!

31. Lägg till en användargrupp i "Manager"

Nu, efter alla steg som tagits, gå till "Filkälla" - "Hanterare" och lägg till en grupp användare till denna filkälla

32. Användargrupper - Chef, Minimiroll - Chef - 9, Policy - Mediekälla Admin. Klicka på "Spara"

Omedelbart efter sparandet försvinner filkällan "Manager" för administratören. För att kunna redigera denna filkälla måste du gå till menyn "Säkerhet - Åtkomstkontroll". Öppna chefsgruppen för redigering: Manager och på fliken "Filkällor" hitta och ta bort källhanteraren . Först då kommer vi att kunna redigera denna källa igen från administratören.

33. För säkerhets skull, rensa cachen

och vår användare med begränsade rättigheter och tillgång till filsystemet skapas!

Jag kommer inte att säga att det är lätt nog, men om du gör det automatiskt kommer det inte att verka som något svårt. Jag hoppas att allt löste sig för dig! Lycka till med dina projekt!

En artikel där vi kommer att titta på hur systemet med åtkomsträttigheter är organiserat i MODX Revolution, samt några typiska instruktioner för att ställa in behörigheter för användare.

Behörighetssystem i MODX

MODX Revolution tillåter dig inte att direkt tilldela behörigheter till en användare. I detta system utförs denna åtgärd genom grupp av användare.

Med andra ord, för att bevilja vissa rättigheter till användaren, är det nödvändigt:

  • skapa en grupp och tilldela nödvändiga privilegier till den;
  • placera en eller flera användare i denna grupp.

Men att vara användare i en grupp betyder inte att han kommer att få alla dess privilegier. Rättigheterna som användaren kommer att få kommer att bestämmas av rollen som han tilldelats i denna grupp. Rollen (rankningen) för användaren i gruppen definieras med ett tal från 0 till 9999. Detta värde avgör vilken användare som kommer att få gruppbehörighet och vilken som inte får.

Med andra ord roll- det här är en sorts mekanism som låter dig tilldela olika rättigheter till olika användare inom samma grupp.

Låt oss ta ett litet exempel.


I det här exemplet:

  • Användare Användare 1 tillhör gruppen Grupp 1. Den har de gruppprivilegier vars roll är mer 2000 .
  • Användare Användare 2är i 2 grupper. Den har 2 gruppprivilegier. Från den första gruppen Grupp 1) den har de privilegier vars roll är större än eller lika med 1000 . Och från den andra ( grupp2) - de privilegier vars roll är större än eller lika med 9999 .
  • Användare Användare 3är i en grupp grupp2. Denna grupp ger honom de rättigheter vars roll är större än eller lika med 5000 .

Åtkomstpolicy i MODX

Att ställa in privilegier för en grupp i MODX Revolution görs med hjälp av åtkomstpolicyer. Den (åtkomstpolicyn) tilldelas en grupp i förhållande till vissa MODX-entiteter, nämligen kontexten, resursgruppen, elementkategorin, filkällan och namnområdet. Dessutom indikerar det också minimal roll, som användaren av den här gruppen behöver för att ha dessa privilegier.

Tänk på en bild.

Privilegier som användare av en grupp får, beroende på vilken roll var och en av dem spelar i den

I det här exemplet:

  • Användare Användare 1(roll i grupp 1 - 2000 ) har alla gruppbehörigheter Grupp 1, vars roll är större än eller lika med 2000. Det vill säga, detta är K1, K2 och G2.
  • Användare Användare 2 har den högsta rollen i gruppen (0) och därför alla dess privilegier ( K1, K2, G1 och G2).
  • Användare Användare 3 har i gruppen Grupp 1 den lägsta rollen 9999 ). I enlighet med den kan han utföra åtgärder i det system som definieras i K2 och G2.

En åtkomstpolicy är en uppsättning rättigheter som ges till en användare att utföra åtgärder på en webbplats som kör CMS MODX Revolution.

Varför implementeras det på detta sätt? Detta beror på det faktum att det finns många rättigheter i MODX och det är bekvämare att tilldela dem i grupper (med andra ord med hjälp av en åtkomstpolicy), snarare än en åt gången.

Till exempel åtkomstpolicyn Ladda, Lista och Visa har följande uppsättning behörigheter:

  • last (lasta föremål);
  • lista (få en samling objekt);
  • vy (visa objekt).

Hur du skapar din egen åtkomstpolicy

När du ställer in behörigheter för en grupp användare är du inte begränsad till de befintliga (förinstallerade) policyerna i MODX-systemet. Du kan skapa nya om det behövs. Policyskapandet i MODX bygger på mall för åtkomstpolicy. En åtkomstpolicymall är en MODX Revolution-enhet som definierar den maximala listan över tillgängliga behörigheter när en åtkomstpolicy skapas.

Alltså för att skapa en åtkomstpolicy med nödvändiga behörigheter nödvändig:

  1. Hitta en lämplig åtkomstpolicymall (redigera vid behov en befintlig eller skapa en ny).
  2. Skapa en åtkomstpolicy genom att välja lämplig mall.
  3. Inkludera från hela listan över behörigheter som erbjuds av mallen, endast de som du vill ge användarna (om de kommer att ha denna policy).
Hur uppsättningen tillgängliga åtkomstpolicybehörigheter bestäms

När du skapar en åtkomstpolicy, börja alltid med att tilldela det minsta antal rättigheter som en användare behöver för att utföra vissa åtgärder i systemet. Om det behövs kan du alltid utöka de behörigheter som beviljats ​​användaren.

Anonym användare

I MODX Revolution är alla obehöriga besökare anonyma och tillhör gruppen (anonym). Du kan enkelt verifiera detta om du skapar följande kodavsnitt, placerar dess anrop i resursmallen och sedan öppnar sidan.

Php-kodavsnitt GetUser:

user->get("användarnamn");

Anropa ett utdrag på en sida:

[[!GetUser]]

Resultat av arbetet:

(anonym)

Anonyma användares handlingar på webbplatsen i MODX regleras genom att ställa in gruppbehörigheter (anonym). Om det behövs kan du ge den här gruppen ytterligare privilegier eller begränsa dem.

Typiska instruktioner för att ställa in behörigheter

I det här avsnittet kommer vi att titta på instruktioner som du kan använda när du behöver:

  • begränsa åtkomst till vissa resurser för anonyma användare;
  • skapa en innehållshanterare som behöver ges tillgång till att arbeta med resurser i adminpanelen, samt möjlighet att ladda upp bilder.

Begränsa tillgången till vissa resurser

Låt oss överväga ett exempel där vi begränsar anonyma användares åtkomst till vissa resurser (till exempel till ett personligt konto, till sidan "Ändra lösenord", etc.). Tillgång till dessa resurser kommer endast att ges till registrerade användare.

För att göra detta behöver du:

  1. Skapa resursgrupp Användare(Innehåll -> Resursgrupper -> "Skapa resursgrupp"-knappen). I formuläret som visas anger du i fältet "Namn" - Användare och klicka på knappen "Spara". Lägg de nödvändiga resurserna i den (åtkomst som du vill begränsa för anonyma besökare).
  2. Skapa användargrupp Användare(Kugghjulsikon -> Åtkomstkontroll -> Ny användargrupp-knapp). I dialogrutan som öppnas anger du i fältet "Namn" - Användare, "Kontexter" - webb, "Backend Policys" - (ingen policy).
  3. Växla till gruppredigeringsläget (välj alternativet "Redigera användargrupp" i snabbmenyn Användare).
  4. Öppna fliken "Behörigheter" och i den "Åtkomst till resursgrupper". Klicka på knappen "Lägg till resursgrupp" och fyll i formuläret som öppnas ("Resursgrupp" - grupp, "Kontext" - (webb), Minsta roll är Medlem (9999), "Åtkomstpolicy" - Ladda, Lista och Visa).

Efter det kommer alla anonyma eller andra användare (som inte har rättigheter) att få 404 resurs(eftersom han inte ens har rätten ladda) om han försöker öppna någon sida från den här gruppen.

Om du vill att anonyma användare, när du öppnar skyddade sidor, ska skickas till någon annan (till exempel auktorisering), måste du dessutom utföra följande (nämligen ge rättigheten ladda för denna resursgrupp):

  1. Öppna Systeminställningar(Kugghjulsikon -> Systeminställningar). Välj namnutrymmet "kärna", "Webbplats". Hitta parameter unauthorized_page(Felsida 403 "Åtkomst nekad") och ange som ett värde - resurs-id, som innehåller formuläret "Auktorisering".
  2. Växla till gruppredigeringsläge (anonym). I avsnittet "Åtkomst till resursgrupper" (fliken "Behörigheter") lägg till resursgrupp Användare och ställ in de nödvändiga rättigheterna för det (i det här fallet "Kontext" - (webb), Minsta roll är Medlem (9999), "Åtkomstpolicy" - Endast ladda).
Konfigurera åtkomst till användarresursgruppen för anonyma användare

Ställa in behörigheter för innehållshanteraren

I det här exemplet kommer vi att skapa en "Managers"-grupp, vars användare kommer att kunna ladda upp bilder till en katalog i adminpanelen och arbeta med vissa resurser.

För att göra detta kan du till exempel använda följande instruktion:

1. Skapa en ny åtkomstpolicyhanterare med nödvändiga rättigheter:

  • Öppna sidan "Åtkomstkontroll" (ikonen "Kugghjul" -> Åtkomstkontroll) och gå till fliken "Åtkomstpolicy".
  • Gör en kopia av policyn "Content Editor".
  • Redigera den skapade kopian, nämligen ändra namnfältet till Manager och markera rutorna bredvid rättigheterna directory_list, file_list, file_manager, file_remove, file_tree, file_upload. Som ett resultat kommer administratörsåtkomstpolicyn att ha 30 behörigheter. Detta måste göras för att ge användaren rättigheter att arbeta med filer.
  • Klicka på knappen "Spara".
Inställningsformulär för chefsåtkomstpolicy

2. Dölj resurser som chefer inte ska ha åtkomst till i adminpanelen:

  • Öppna sidan Resursgrupper och klicka på knappen Skapa resursgrupp.
  • I formuläret som öppnas anger du "Namn" - ClosedForManagers, "Kontexter" - mgr och Mark Alternativet "Ge automatiskt åtkomst till administratörsgruppen".
  • Klicka på knappen "Spara".
  • Dra till den skapade gruppen resurserna som måste döljas för chefer i adminpanelen.

3. Ge åtkomst till katalogen där användaren ska ladda upp bilder.

  • Öppna sidan "Filkällor", klicka på knappen "Skapa ny filkälla".
  • I formuläret som öppnas anger du texten i fältet "Namn". bilder, i "Beskrivning" - Bilder, i "Filkälltyp" - Filsystem.
  • Klicka på knappen "Spara".
  • Redigera den nyskapade filkällan (höger musknapp -> Redigera åtgärd).
  • Ändra värdet på parametrar: basePath - tillgångar/bilder/, baseUrl - tillgångar/bilder/, tillåtnaFiltyper - jpg, jpeg, png, gif.
  • Klicka på knappen "Spara".
Konfigurera bildfilens källa

En filkälla som inte har en användargrupp kopplad till sig kommer att vara tillgänglig för alla backend-användare. Därför, för att förhindra användare av gruppen Managers från att visa andra filkällor som inte är associerade med mer än en grupp, kan de till exempel tilldelas användargruppen Administratör.

MODX - Associera en filsystemfilkälla med administratörsgruppen

MODX-åtkomstkontrollsystemet, med hjälp av filkällan, tillåter olika användare att specificera vissa kataloger som de kommer att ha tillgång till, samt att bestämma uppsättningen av deras privilegier i dem. Det är med andra ord ett system som till exempel kan användas för att ge vissa användare vissa kataloger, och andra - andra.

4. Skapa ny användargrupp och tilldela de nödvändiga rättigheterna till den.

  • Öppna sidan "Åtkomstkontroll", gå till fliken "Användargrupper och användare", klicka på knappen "Ny användargrupp".
  • I dialogrutan som öppnas, fyll i följande fält: "Namn" - chefer; "Beskrivning" - Chefer; "Kontexter" - webb, mgr; "Backend Policy" - chef.
  • Klicka på knappen "Spara".
  • Växla till redigeringsläget för den nyskapade användargruppen "Hanterare" (högerklicka på gruppen -> objekt i snabbmenyn "Redigera").
  • Gå till fliken "Behörigheter".
  • Öppna avsnittet "Åtkomst till sammanhang". Kontextåtkomst webb: "Minimum roll" - Medlem (9999); Åtkomstpolicy - Ladda, Lista och Visa. Kontextåtkomst mgr: "Minimum roll" - Medlem (9999), Åtkomstpolicy - chef.
  • I avsnittet "Åtkomst till filkälla" lägger du till en ny post med följande värden: "Källa" - bilder; "Minimumroll" - Medlem (9999), "Åtkomstpolicy" - Media Source Admin.
  • Klicka på knappen "Spara".

5. Skapa användare och lägg till den i gruppen "Manager". Ställ in värdet på rollen till 9999 (Medlem). Den här rollen kommer att räcka för att han ska få alla behörigheter från denna grupp. Detta beror på det faktum att vi inte tilldelade åtkomstpolicyer för den här gruppen som skulle kräva en roll som är större än 9999.

Lägga till en användare i chefsgruppen (medlemsroll)