Modx არის ფაილის ნაგულისხმევი წყარო. MODx Revolution: რესურსების შექმნა და ფაილების ჩატვირთვა ფრონტენტიდან

კარგი შუადღე WebHow ბლოგის ყველა მკითხველს! საბოლოოდ ვიპოვე შესანიშნავი მოდული სტატიებში კოდის ხაზგასმისთვის და ახლა შემიძლია სერიოზულ საქმეს მივუდგე. ასე რომ, ხუმრობების გარდა, დღეს იქნება მკაცრი პოსტი მათთვის, ვინც ოცნებობს, მოაწყოს ბიულეტენი, კატალოგი ან სხვა სერვისი MODx საიტზე, სადაც ვიზიტორები საკუთარ კონტენტს განათავსებენ.

ყველამ, ვინც ოდნავ იცნობს MODx-ს, იცის, რომ კონტენტის განთავსებისთვის მომხმარებელს უნდა ჰქონდეს წვდომა ადმინისტრაციულ პანელზე. რა თქმა უნდა, არ მინდა მარცხნივ და მარჯვნივ გავანაწილო. ამიტომ, ჩვენ უნდა დავრწმუნდეთ, რომ მომხმარებლებს შეუძლიათ შექმნან რესურსები და ატვირთონ ფაილები მათ პირდაპირ საიტის გვერდებიდან.

მე არ ვარ პროგრამისტი და როდესაც პირველად მომიწია შეტყობინებების დაფის შექმნა MODx-ზე, ყველაფერი რაც შემეძლო გამეკეთებინა იყო მზა გამოსავლის ძიება. ფრაგმენტების სხვადასხვა ვარიანტები, რომლებიც საშუალებას მოგცემთ გამოაქვეყნოთ რესურსი წინა ბოლოდან MODx Revolutionსაკმაოდ ბევრი აღმოჩნდა.

ყველას დაახლოებით ერთი და იგივე პრინციპი აქვს: როდის FormI helpიქმნება გვერდი ფორმის მქონე, რომლის გამოძახებაში წერია ფრაგმენტის სახელი. თითოეული ტიპის რეკლამისთვის იქმნება საკუთარი სატელევიზიო ველები, მაგალითად, ქალაქი, ტელეფონი ან ველი სურათების ატვირთვისთვის. როდესაც მომხმარებელი წარადგენს ფორმას, იქმნება რესურსი.

თუმცა, თითქმის ყველა ფრაგმენტი, რომლის პოვნაც მოვახერხე, ძალიან შრომატევადი იყო: ტელევიზორის თითოეული პარამეტრი ჩაწერილი უნდა ყოფილიყო სნიპტის კოდში და ეს არ მაწყობდა. რადგან თითოეული ტიპის რეკლამა დავგეგმე მინიმუმ 3 დამატებითი ველები, და ჩაწერეთ ყველა ფრაგმენტში... არა, უკეთესი და მარტივი გზა არსებობს. ვიპოვე ოფიციალური MODx.com ფორუმის ინგლისურენოვან ნაწილზე და თუ კარგად არ ლაპარაკობ და არ კითხულობ ინგლისურს, ან უბრალოდ ძალიან ეზარება ყურება შესაფერისი ვარიანტითემის რამდენიმედან მე გეტყვით როგორ გამოიყენოთ იგი.

დავწერე ამ თემაზე ნაბიჯ ნაბიჯ ვიდეო ინსტრუქციები. ამისთვის ყველა მასალას ნახავთ მოთამაშის ქვემოთ.

სნიპეტის კოდი formit2resource

getObject("modResource", array("id"=>$hook->getValue("resource_id"))); if (ცარიელი($doc))($doc = $modx->newObject("modResource"); $doc->set("შექმნილია", $modx->user->get("id")); ) სხვა ( $doc->set("editedby", $modx->user->get("id")); ) $allFormFields = $hook->getValues(); foreach ($allFormFields როგორც $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, მასივი (" alias"=>$newAlias))!= 0) ($newAlias ​​= $alias; $newAlias.= "-" . $count; $count++; ) $alias = $newAlias; >set("alias" ,$alias); $doc->set("template", $template); $doc->save(); foreach ($allFormFields როგორც $field=>$value) (if (!empty($value) && $tv = $modx->getObject("modTemplateVar", მასივი ("name"=>$field))) ( /* ამუშავებს საკონტროლო ველებს და მრავალჯერ ირჩევს ელემენტებს */ if (is_array($value)) ($featureInsert = array(); while (list($featureValue, $featureItem) = თითოეული ($value)) ( $featureInsert = $featureItem; ) $value = implode("||",$featureInsert($doc->get("id"), $tv->refresh(); დაბრუნება true;

formit2file სნიპეტის კოდი

user->get("id"); // გზა root-დან, რომელსაც მომხმარებელი აზუსტებს // შექმენით უნიკალური ბილიკი ამ ფორმის წარდგენისთვის $uploadpath = "აქტივები/ატვირთვები/".$mydir."/"; // მიიღეთ სრული გზა უნიკალური საქაღალდეში $target_path = $modx->config["base_path"] . $uploadpath; // მიიღეთ ატვირთული ფაილების სახელები: $submittedfiles = array_keys($_FILES); // გადაატრიალეთ ფაილები foreach ($submittedfiles როგორც $sf) ( // მიიღეთ ფაილის სახელი და დარწმუნდით, რომ ის კარგია. $filename = basename($_FILES[$sf]["name"]); // მიიღეთ ფაილის გაფართოება $ ext = pathinfo($filename, PATHINFO_EXTENSION $ext = mb_strtolower($ext // არის ფაილის სახელი ცარიელი (ფაილი არ არის ატვირთული) if($filename != "") ( // არის); ეს არის ფაილის სწორი ტიპი if(in_array($ext, $ext_array)) ( // გაასუფთავეთ ფაილის სახელი და შექმენით უნიკალური $filename = $counter . "." . $ext; $filename = str_replace(" ", " _" , $filename); // შორისები $filename = date("Y-m-d_G-i-s_") . $filename; // დაამატეთ თარიღი და დრო // სრული გზა ახალ ფაილში $myTarget = $target_path. // შექმენით დირექტორია გადასატანად, თუ ის არ არსებობს "], $myTarget)) ( // დააყენეთ ახალი ჩანაცვლების ველი ახალი სრული ბილიკით (თუ დაგჭირდებათ შემდეგ კაკვებში) $myFile = $uploadpath . $filename; $hook->setValue($sf,$myFile); // დააყენეთ ნებართვები ფაილზე if (!chmod($myTarget, 0644)) ( /*გამართვის ზოგიერთი ფუნქცია*/ ) ) else ( // ფაილი არ არის ატვირთული $errorMsg = "პრობლემა იყო ფაილის ატვირთვისას."; $hook->addError($sf, $output = false // წარმოდგენის შეცდომა ) else ( // ფაილის ტიპი დაუშვებელია $errorMsg = "ფაილის ტიპი დაუშვებელია."; $sf, $errorMsg = false // თუ ფაილი არ არის, არ შეცდეთ, მაგრამ დააბრუნეთ ცარიელი ) else ($hook->setValue($sf, ""); მრიცხველი = $counter + 1 დაბრუნება $output;

Მეგობრები! არ დაგავიწყდეთ თქვენი სატელევიზიო ველების და თქვენი რესურსების ID-ების ჩასმა ფორმის კოდში. ფრთხილად იყავით და წარმატებას მიაღწევთ.

FormI-ის დარეკვა

[[!FormIt? &hooks=`formit2file,formit2resource,გადამისამართება` &redirectTo=`გვერდის ID შეტყობინებით` &template=`რეკლამის შაბლონის ID` ]]

ბლანკის ფორმის გამოძახების პირობა

[[!+modx.user.id:is=`0`:then=`რეკლამის განთავსებისთვის საჭიროა ავტორიზაცია [[!Loginza? &groups=`3` &profileFields=`მომხმარებლის სახელი,ელფოსტა,სრული სახელი,ფოტო`]]`:else=`[[$form_add]]`]]

ფორმის კოდის მაგალითი

[[+fi.error.error_message]]

სახელი
[[+fi.error.pagetitle]]
*
ქალაქი
[[+fi.error.city]]
*

Დეტალური აღწერა

[[+fi.error.content]]

ფოტოების მიმაგრება:

კატალოგში შეგიძლიათ განათავსოთ ხუთამდე ფოტო. მისაღები ფორმატები: .jpg, .png, .gif
მთავარი ფოტო ან ლოგო * [[+fi.error.img]]
დამატებითი ფოტო (1) [[+fi.error.foto1]]
დამატებითი ფოტო (2) [[+fi.error.foto2]]
დამატებითი ფოტო (3) [[+fi.error.foto3]]
დამატებითი ფოტო (4) [[+fi.error.foto4]]

სურათის ჩვენების პირობა

[[*img:notempty=``]]
ახლა თქვენი საიტის მომხმარებლებს შეუძლიათ არა მხოლოდ განათავსონ რეკლამები, არამედ შეავსონ ისინი ფოტოებით, ისევე როგორც ნებისმიერ ბიულეტენზე. მაგრამ რა მოხდება, თუ შეცდომა დაუშვა ფორმის შევსებისას? მაგალითად, ადამიანმა დაუშვა შეცდომა და მიუთითა არასწორი ტელეფონის ნომერი, ან შეიძლება უბრალოდ სურდა რეკლამაში დამატება ან მისი პროდუქტის ფასის შეცვლა.

შემდეგ ჯერზე გეტყვით... დღეისთვის სულ ეს არის, იმედი მაქვს ეს სტატია თქვენთვის სასარგებლო იყო.

სტატია, რომელშიც განვიხილავთ, თუ როგორ არის ორგანიზებული წვდომის უფლებების სისტემა MODX Revolution-ში, ასევე რამდენიმე სტანდარტული ინსტრუქცია მომხმარებლებისთვის ნებართვების დაყენებისთვის.

წვდომის უფლებების სისტემა MODX-ში

MODX Revolution არ გაძლევთ უფლებას პირდაპირ მიანიჭოთ მომხმარებლის უფლებები. ამ სისტემაში ეს მოქმედება ხორციელდება მეშვეობით მომხმარებელთა ჯგუფი.

სხვა სიტყვებით რომ ვთქვათ, მომხმარებლისთვის გარკვეული უფლებების მინიჭებისთვის აუცილებელია:

  • შექმენით ჯგუფი და მიანიჭეთ მას საჭირო პრივილეგიები;
  • განათავსეთ ერთი ან მეტი მომხმარებელი ამ ჯგუფში.

მაგრამ ჯგუფში მომხმარებელი არ ნიშნავს, რომ ის მიიღებს მის ყველა პრივილეგიას. უფლებები, რომლებსაც მომხმარებელი მიიღებს, განისაზღვრება ამ ჯგუფში მისთვის მინიჭებული როლის გამოყენებით.მომხმარებლის როლი (რანგი) ჯგუფში განისაზღვრება 0-დან 9999-მდე რიცხვის გამოყენებით. ეს მნიშვნელობა განსაზღვრავს რომელი მომხმარებელი მიიღებს ჯგუფის პრივილეგიებს და რომელი არა.

Სხვა სიტყვებით როლიარის მექანიზმი, რომელიც საშუალებას აძლევს სხვადასხვა მომხმარებლებს ერთი და იგივე ჯგუფის ფარგლებში მინიჭონ სხვადასხვა უფლებები.

მოდით შევხედოთ პატარა მაგალითს.


ამ მაგალითში:

  • მომხმარებელი მომხმარებელი 1ეკუთვნის ჯგუფს ჯგუფი 1. მას აქვს ის ჯგუფური პრივილეგიები, რომელთა როლიც უფრო დიდია 2000 .
  • მომხმარებელი მომხმარებელი 2შედგება 2 ჯგუფისგან. მას აქვს 2 ჯგუფის პრივილეგია. პირველი ჯგუფიდან ( ჯგუფი 1) მას აქვს ის პრივილეგიები, რომელთა როლიც მეტია ან ტოლია 1000 . და მეორედან ( ჯგუფი 2) - ის პრივილეგიები, რომელთა როლიც მეტია ან ტოლია 9999 .
  • მომხმარებელი მომხმარებელი 3არის ჯგუფში ჯგუფი 2. ეს ჯგუფი ანიჭებს მას იმ უფლებებს, რომელთა როლიც მეტია ან ტოლია 5000 .

MODX წვდომის პოლიტიკა

ჯგუფის პრივილეგიების დაყენება MODX Revolution-ში ხდება გამოყენებით წვდომის პოლიტიკა. წვდომის პოლიტიკა ენიჭება ჯგუფს MODX-ის გარკვეულ ერთეულებთან, კერძოდ, კონტექსტთან, რესურსების ჯგუფთან, ელემენტის კატეგორიასთან, ფაილის წყაროსთან და სახელთა სივრცესთან დაკავშირებით. გარდა ამისა, ასევე მითითებულია მინიმალური როლი, რომელიც ამ ჯგუფის მომხმარებელს უნდა ჰქონდეს ამ პრივილეგიები.

მოდით შევხედოთ სურათს.

პრივილეგიები, რომლებსაც იღებენ ჯგუფის მომხმარებლები, იმის მიხედვით, თუ რა როლს ასრულებს მასში თითოეული მათგანი

ამ მაგალითში:

  • მომხმარებელი მომხმარებელი 1(როლი 1 ჯგუფში - 2000 ) აქვს ჯგუფის ყველა პრივილეგია ჯგუფი 1, რომლის როლიც მეტია ან ტოლია 2000. ე.ი. ეს K1, K2და G2.
  • მომხმარებელი მომხმარებელი 2აქვს უმაღლესი როლი ჯგუფში (0) და შესაბამისად ყველა მისი პრივილეგია ( K1, K2, G1და G2).
  • მომხმარებელი მომხმარებელი 3აქვს ჯგუფში ჯგუფი 1ყველაზე დაბალი როლი ( 9999 ). მის შესაბამისად, მას შეუძლია განახორციელოს მოქმედებები განსაზღვრულ სისტემაში K2და G2.

წვდომის პოლიტიკა არის უფლებების ერთობლიობა, რომელიც მინიჭებულია მომხმარებელს მოქმედებების შესასრულებლად ვებსაიტზე, რომელიც მუშაობს CMS MODX Revolution.

რატომ ხორციელდება ეს ასე? ეს გამოწვეულია იმით, რომ MODX-ში ბევრი უფლებაა და უფრო მოსახერხებელია მათი მინიჭება ჯგუფებად (სხვა სიტყვებით რომ ვთქვათ, წვდომის პოლიტიკის გამოყენებით), ვიდრე ერთჯერადად.

მაგალითად, წვდომის პოლიტიკა ჩატვირთვა, სია და ნახვააქვს შემდეგი ნებართვების ნაკრები:

  • დატვირთვა (ობიექტების დატვირთვა);
  • სია (მიიღეთ ობიექტების კოლექცია);
  • ხედი (ობიექტების დათვალიერება).

როგორ შევქმნათ საკუთარი წვდომის პოლიტიკა

მომხმარებელთა ჯგუფისთვის ნებართვების დაყენებისას, თქვენ არ შემოიფარგლებით MODX სისტემაში არსებული (წინასწარ დაინსტალირებული) პოლიტიკით. საჭიროების შემთხვევაში, შეგიძლიათ შექმნათ ახალი. პოლიტიკის შექმნა MODX-ში ეფუძნება წვდომა პოლიტიკის შაბლონზე. წვდომის პოლიტიკის შაბლონი არის MODX Revolution ერთეული, რომელიც განსაზღვრავს ნებართვების მაქსიმალურ სიას წვდომის პოლიტიკის შექმნისას.

ამრიგად, იმისათვის, რომ შექმენით წვდომის პოლიტიკა საჭირო ნებართვებითსაჭირო:

  1. იპოვეთ წვდომის პოლიტიკის შესაფერისი შაბლონი (საჭიროების შემთხვევაში, შეცვალეთ არსებული ან შექმენით ახალი).
  2. შექმენით წვდომის პოლიტიკა შესაბამისი შაბლონის არჩევით.
  3. შაბლონის მიერ შემოთავაზებული ნებართვების მთელი სიიდან შეიტანეთ მხოლოდ ის, რაც გსურთ მიანიჭოთ მომხმარებლებს (თუ მათ ექნებათ ეს პოლიტიკა).
როგორ განისაზღვრება ხელმისაწვდომი წვდომის პოლიტიკის ნებართვების ნაკრები

წვდომის პოლიტიკის შექმნისას ყოველთვის დაიწყეთ უფლებების მინიმალური რაოდენობის მინიჭებით, რომლებიც საკმარისია მომხმარებლისთვის სისტემაში გარკვეული მოქმედებების შესასრულებლად. საჭიროების შემთხვევაში, ყოველთვის შეგიძლიათ გააფართოვოთ მომხმარებლისთვის მინიჭებული ნებართვები.

ანონიმური მომხმარებელი

MODX Revolution-ში საიტის ნებისმიერი არაავტორიზებული ვიზიტორი ანონიმურია და ეკუთვნის ჯგუფს (ანონიმური). ამის გადამოწმება მარტივად შეგიძლიათ, თუ შექმნით შემდეგ ნაწყვეტს, განათავსებთ მის ზარს რესურსის შაბლონში და შემდეგ გახსნით გვერდს.

Php სნიპეტის კოდი GetUser:

user->get("username");

ფრაგმენტის გამოძახება გვერდზე:

[[!GetUser]]

შედეგი:

(ანონიმური)

ანონიმური მომხმარებლების ქმედებები საიტზე MODX-ში რეგულირდება ჯგუფის ნებართვების დაყენებით (ანონიმური). საჭიროების შემთხვევაში, შეგიძლიათ ამ ჯგუფს მიანიჭოთ დამატებითი პრივილეგიები ან შეზღუდოთ ისინი.

ტიპიური ინსტრუქციები ნებართვების დაყენებისთვის

ამ განყოფილებაში ჩვენ განვიხილავთ ინსტრუქციებს, რომლებიც შეგიძლიათ გამოიყენოთ, როდესაც გჭირდებათ:

  • შეზღუდოს წვდომა გარკვეულ რესურსებზე ანონიმური მომხმარებლებისთვის;
  • შექმენით კონტენტის მენეჯერი, რომელსაც უნდა მიეცეს წვდომა რესურსებთან მუშაობისთვის ადმინისტრაციულ პანელში, ასევე სურათების ატვირთვის შესაძლებლობა.

გარკვეულ რესურსებზე წვდომის შეზღუდვა

მოდით განვიხილოთ მაგალითი, რომელშიც ჩვენ შევზღუდავთ წვდომას გარკვეულ რესურსებზე ანონიმური მომხმარებლებისთვის (მაგალითად, პირად ანგარიშზე, "პაროლის შეცვლა" გვერდზე და ა.შ.). ამ რესურსებზე წვდომას მხოლოდ დარეგისტრირებულ მომხმარებლებს მივცემთ.

ამისათვის საჭიროა:

  1. Შექმნა მომხმარებელთა რესურსების ჯგუფი(კონტენტი -> რესურსების ჯგუფები -> ღილაკი „რესურსების ჯგუფის შექმნა“). ფორმაში, რომელიც გამოჩნდება, შეიყვანეთ "სახელი" ველში - მომხმარებლებიდა დააჭირეთ ღილაკს "შენახვა". განათავსეთ მასში საჭირო რესურსები (რომელზე წვდომა შეზღუდული უნდა იყოს ანონიმური ვიზიტორებისთვის).
  2. Შექმნა მომხმარებელთა ჯგუფი მომხმარებლები(გადაცემათა კოლოფის ხატულა -> წვდომის კონტროლი -> ახალი მომხმარებლის ჯგუფის ღილაკი). დიალოგურ ფანჯარაში, რომელიც იხსნება, შეიყვანეთ "სახელი" ველში - მომხმარებლები, "კონტექსტები" - ვებ, "Backend Policy" - (პოლიტიკის გარეშე).
  3. გადადით ჯგუფის რედაქტირების რეჟიმში (მომხმარებლების კონტექსტური მენიუში აირჩიეთ „მომხმარებელთა ჯგუფის რედაქტირება“).
  4. გახსენით ჩანართი "წვდომის უფლებები" და მასში "წვდომა რესურსების ჯგუფებზე". დააჭირეთ ღილაკს "რესურსების ჯგუფის დამატება" და შეავსეთ ფორმა, რომელიც იხსნება ("რესურსების ჯგუფი" - ჯგუფი, "კონტექსტი" - (ვებ), მინიმალური როლი - წევრი (9999), „წვდომის პოლიტიკა“ – ჩატვირთვა, სია და ნახვა).

ამის შემდეგ ნებისმიერი ანონიმური ან სხვა მომხმარებელი (რომელსაც არ აქვს უფლებები) მიიღებს 404 რესურსი(რადგან მას უფლებაც კი არ აქვს დატვირთვა) თუ ის ცდილობს ამ ჯგუფის რომელიმე გვერდის გახსნას.

თუ გსურთ, რომ ანონიმური მომხმარებლები, დაცული გვერდების გახსნისას, სხვას გაუგზავნონ (მაგალითად, ავტორიზაცია), მაშინ დამატებით უნდა გააკეთოთ შემდეგი (კერძოდ, მისცეთ უფლება დატვირთვაამ რესურსების ჯგუფისთვის):

  1. გახსენით სისტემის პარამეტრები(გადაცემათა კოლოფის ხატულა -> სისტემის პარამეტრები). აირჩიეთ "ძირითადი" სახელთა სივრცე, "საიტი" განყოფილება. პარამეტრის პოვნა არაავტორიზებული_გვერდი(შეცდომა გვერდი 403 „წვდომა აკრძალულია“) და მიეცით მნიშვნელობა - რესურსის ID„ავტორიზაციის“ ფორმის შემცველი.
  2. გადადით ჯგუფური რედაქტირების რეჟიმში (ანონიმური). "რესურსების ჯგუფებზე წვდომა" განყოფილებაში (ჩანართი "წვდომის უფლებები") დაამატეთ მომხმარებელთა რესურსების ჯგუფიდა მიეცით მას საჭირო უფლებები (ამ შემთხვევაში "კონტექსტი" - (ვებ), მინიმალური როლი - წევრი (9999), „წვდომის პოლიტიკა“ – მხოლოდ ჩატვირთვა).
ანონიმური მომხმარებლებისთვის მომხმარებელთა რესურს ჯგუფზე წვდომის დაყენება

კონტენტის მენეჯერისთვის ნებართვების დაყენება

ამ მაგალითში ჩვენ შევქმნით "მენეჯერების" ჯგუფს, რომლის მომხმარებლები შეძლებენ სურათების ატვირთვას ადმინისტრაციულ პანელში არსებულ დირექტორიაში და იმუშაონ გარკვეულ რესურსებთან.

ამისათვის შეგიძლიათ, მაგალითად, გამოიყენოთ შემდეგი ინსტრუქციები:

1. შექმენით ახალი წვდომის პოლიტიკის მენეჯერისაჭირო უფლებებით:

  • გახსენით "წვდომის კონტროლი" გვერდი (გადაცემათა კოლოფის ხატულა -> წვდომის კონტროლი) და გადადით "წვდომის პოლიტიკის" ჩანართზე.
  • გააკეთეთ „კონტენტის რედაქტორის“ პოლიტიკის ასლი.
  • შეცვალეთ შექმნილი ასლი, შეცვალეთ სახელის ველი მენეჯერად და მონიშნეთ ველები უფლებების დირექტორია_list, file_list, file_manager, file_remove, file_tree, file_upload. შედეგად, მენეჯერის წვდომის პოლიტიკას ექნება 30 ნებართვა. ეს უნდა გაკეთდეს იმისათვის, რომ მომხმარებელს მიენიჭოს ფაილებთან მუშაობის უფლება.
  • დააჭირეთ ღილაკს "შენახვა".
მენეჯერის წვდომის პოლიტიკის კონფიგურაციის ფორმა

2. დამალეთ რესურსები, რომლებზეც მენეჯერებს არ უნდა ჰქონდეთ წვდომა ადმინისტრაციულ პანელში:

  • გახსენით "რესურსების ჯგუფების" გვერდი და დააჭირეთ ღილაკს "რესურსების ჯგუფის შექმნა".
  • ფორმაში, რომელიც იხსნება, შეიყვანეთ "სახელი" - დახურულია მენეჯერებისთვის, "კონტექსტები" - მგრდა მარკო"ავტომატური მინიჭება წვდომის ადმინისტრატორის ჯგუფზე".
  • დააჭირეთ ღილაკს "შენახვა".
  • გადაიტანეთ რესურსები, რომლებიც უნდა იყოს დამალული მენეჯერებისთვის ადმინისტრაციულ პანელში შექმნილ ჯგუფში.

3. უზრუნველყოს წვდომა დირექტორიაზე, რომელშიც მომხმარებელი ატვირთავს სურათებს.

  • გახსენით "ფაილის წყაროების" გვერდი, დააჭირეთ ღილაკს "შექმენით ახალი ფაილის წყარო".
  • ფორმაში, რომელიც იხსნება, შეიყვანეთ ტექსტი "სახელი" ველში სურათები, "აღწერილობაში" - სურათები, "ფაილის წყაროს ტიპი" - Ფაილების სისტემა.
  • დააჭირეთ ღილაკს "შენახვა".
  • შეცვალეთ ახლად შექმნილი ფაილის წყარო (მაუსის მარჯვენა ღილაკი -> მოქმედება "რედაქტირება").
  • შეცვალეთ პარამეტრების მნიშვნელობა: basePath – აქტივები/გამოსახულებები/, baseUrl – აქტივები/გამოსახულებები/დაშვებული ფაილის ტიპები - jpg, jpeg, png, gif.
  • დააჭირეთ ღილაკს "შენახვა".
სურათების ფაილის წყაროს დაყენება

ფაილის წყარო, რომელსაც არ აქვს მასთან დაკავშირებული მომხმარებელთა ჯგუფი, ხელმისაწვდომი იქნება ყველა დამხმარე მომხმარებლისთვის. ამიტომ, იმისათვის, რომ არ მოხდეს სხვა ფაილების წყაროები, რომლებიც არ არის დაკავშირებული ერთ ჯგუფთან, არ აჩვენონ მენეჯერების ჯგუფის მომხმარებლებს, ისინი შეიძლება, მაგალითად, მიენიჭოთ ადმინისტრატორის მომხმარებელთა ჯგუფს.

MODX - ფაილური სისტემის ფაილის წყაროს ასოცირება ადმინისტრატორის ჯგუფთან

MODX წვდომის კონტროლის სისტემა ფაილის წყაროს გამოყენებით საშუალებას აძლევს სხვადასხვა მომხმარებლებს მიუთითონ კონკრეტული დირექტორიები, რომლებზეც მათ ექნებათ წვდომა, ასევე განსაზღვრონ მათში მათი პრივილეგიების ნაკრები. სხვა სიტყვებით რომ ვთქვათ, ეს არის სისტემა, რომლის დახმარებით, მაგალითად, ზოგიერთ მომხმარებელს შეიძლება მიეცეს ზოგიერთი დირექტორია, ხოლო ზოგს - სხვებს.

4. შექმენით ახალი მომხმარებლის ჯგუფიდა მიანიჭეთ მას აუცილებელი უფლებები.

  • გახსენით "წვდომის კონტროლი" გვერდი, გადადით "მომხმარებელთა ჯგუფები და მომხმარებლები" ჩანართზე, დააჭირეთ ღილაკს "ახალი მომხმარებელთა ჯგუფი".
  • დიალოგურ ფანჯარაში, რომელიც იხსნება, შეავსეთ შემდეგი ველები: "სახელი" - მენეჯერები; "აღწერა" - მენეჯერები; "კონტექსტები" - ვებ, მგრ; "Backend Policy" - მენეჯერი.
  • დააჭირეთ ღილაკს "შენახვა".
  • გადადით ახლად შექმნილი მომხმარებლის ჯგუფის „მენეჯერების“ რედაქტირების რეჟიმში (დააწკაპუნეთ მაუსის მარჯვენა ღილაკით ჯგუფზე -> პუნქტზე კონტექსტური მენიუში „რედაქტირება“).
  • გადადით "წვდომის უფლებების" ჩანართზე.
  • გახსენით განყოფილება "წვდომა კონტექსტებზე". კონტექსტზე წვდომა ვებ: "მინიმალური როლი" - წევრი (9999); წვდომის პოლიტიკა - ჩატვირთვა, სია და ნახვა. კონტექსტზე წვდომა მგრ: "მინიმალური როლი" - წევრი (9999),წვდომის პოლიტიკა - მენეჯერი.
  • "ფაილის წყაროზე წვდომის" განყოფილებაში დაამატეთ ახალი ჩანაწერი შემდეგი მნიშვნელობებით: "წყარო" - სურათები; "მინიმალური როლი" - წევრი (9999), „წვდომის პოლიტიკა“ – მედია წყაროს ადმინისტრატორი.
  • დააჭირეთ ღილაკს "შენახვა".

5. შექმენით მომხმარებელიდა დაამატეთ იგი "მენეჯერის" ჯგუფში. დააყენეთ როლის მნიშვნელობა 9999-ზე (წევრი). ეს როლი მისთვის საკმარისი იქნება ამ ჯგუფის ყველა ნებართვის მისაღებად. ეს გამოწვეულია იმით, რომ ამ ჯგუფისთვის ჩვენ არ მივუნიშნეთ წვდომის პოლიტიკა, რომელიც მოითხოვდა 9999-ზე მეტ როლს.

მომხმარებლის დამატება მენეჯერის ჯგუფში (წევრის როლი)

ევოლუციაში ყველაფერი საკმაოდ მარტივი იყო: თქვენ უქმნით უფლებებს მომხმარებლისთვის და დაასრულეთ! და აქ თქვენ უნდა გააკეთოთ საკმაოდ ბევრი ნაბიჯი, მაგრამ მეორეს მხრივ, Modx Revolution-ში შეგიძლიათ გააკეთოთ ის, რაც გსურთ დოკუმენტებისა და ფაილების უფლებებით (თუ ეს გესმით, რა თქმა უნდა). აბა, დავიწყოთ!

1. გადადით "უსაფრთხოება" - "Access Control" ადმინისტრაციული პანელის ზედა მენიუში

2. გადადით "წვდომის პოლიტიკის" ჩანართზე

3. დააწკაპუნეთ ღილაკზე „დაშვების პოლიტიკის შექმნა“.

გაიხსნება ფანჯარა ველებით. სახელის ველში ვწერთ „მენეჯერს“, წვდომის პოლიტიკის შაბლონი არის AdministratorTemplate. დააჭირეთ შენახვის ღილაკს

4. „მენეჯერის“ წვდომის პოლიტიკის შენახვის შემდეგ, ჩვენ ვხედავთ, რომ ის ჩანს ჩვენს წვდომის პოლიტიკის სიაში

5. რედაქტირების მენეჯერი

6. მოხსენით არასაჭირო პარამეტრები

ამ გვერდის ბოლოში, რომელიც იხსნება, არის პარამეტრების სია (ნებართვები). ჩვენ უნდა გავაუქმოთ ის პარამეტრები, რომლებიც პასუხისმგებელია ადმინისტრაციულ პანელში ნებისმიერი რესურსის ჩვენებაზე, რათა თავიდან ავიცილოთ საიტის სწორი მუშაობისთვის საჭირო დოკუმენტების, ფაილების, ელემენტების რედაქტირება ან წაშლა.

მოხსენით შემდეგი პარამეტრები:

  • access_permissions აჩვენებს გვერდს მომხმარებლის წვდომის უფლებების პარამეტრებით
  • დაფები დაფების ნახვა და მართვა
  • element_tree ელემენტის ხის ნახვის შესაძლებლობა ნავიგაციის მარცხენა პანელში
  • menu_reports აჩვენეთ ელემენტი „ანგარიშები“ ზედა მენიუში
  • menu_security აჩვენეთ "უსაფრთხოება" ელემენტი ზედა მენიუში
  • menu_system აჩვენეთ "სისტემის" ელემენტი ზედა მენიუში
  • menu_tools აჩვენეთ "ინსტრუმენტები" ელემენტი ზედა მენიუში
  • new_static_resource შექმენით ახალი სტატიკური რესურსები.
  • remove_locks ამოიღეთ ყველა საკეტი საიტზე

7. გადადით "უსაფრთხოება" - "Access Control" - "Roles" ჩანართზე


8. დააწკაპუნეთ ღილაკზე „ახლის შექმნა“, სახელის ველში შეიყვანეთ მენეჯერი, რანგი - 9, დააჭირეთ ღილაკს „შენახვა“


9. შეინახეთ ცვლილებები და გადადით მენიუში "Security" - "Access Control" - "User Groups"


დააწკაპუნეთ მაუსის მარჯვენა ღილაკით "ადმინისტრატორზე" და დააჭირეთ "მომხმარებელთა ჯგუფის შექმნა"

10. შექმენით ახალი ჯგუფი: სახელი - მენეჯერი, Backend Policy - პოლიტიკა არ არის, დააწკაპუნეთ "შენახვა"

11. იპოვეთ ის მომხმარებელთა ჯგუფების სიაში და დააწკაპუნეთ „რედაქტირება“

12. გადადით მენიუში "წვდომა კონტექსტებზე" და დააწკაპუნეთ "კონტექსტის დამატება"

13. კონტექსტი - mgr, მინიმალური როლი - მენეჯერი - 9, წვდომის პოლიტიკა - მენეჯერი

14. სხვა კონტექსტის დამატება

უფრო სწორად, ვასწორებთ არსებულ ვებს: კონტექსტი - ვებ, მინიმალური როლი - მენეჯერი - 9, წვდომის პოლიტიკა - ადმინისტრატორი. დააჭირეთ ღილაკს "შენახვა".

15. ასეთ სურათს ვიხილავთ! ჩვენ ყველაფერს ვინახავთ "მომხმარებლების ჯგუფი: მენეჯერი" ჩანართში

16. შემდეგი: "უსაფრთხოება" - "მომხმარებლის მენეჯმენტი"

17. შექმენით ახალი მომხმარებელი (ეს იქნება ჩვენი კლიენტი) - დააჭირეთ ღილაკს „ახალი მომხმარებელი“.

თქვენ შეგიძლიათ დაარქვით მას ნებისმიერი სახელი, რომელიც მოგწონთ, მე მას მენეჯერს დავარქმევ

18. მომხმარებლის სახელი - მენეჯერი, დააწკაპუნეთ ველზე - აქტიური, შეიყვანეთ ელ

19. მიუთითეთ პაროლი

20. შენახვამდე გადადით "წვდომის უფლებების" ჩანართზე

21. დააწკაპუნეთ ღილაკზე "მომხმარებლის დამატება ჯგუფში", მომხმარებლის ჯგუფი - "მენეჯერი", როლი - "მენეჯერი"

Გადარჩენა. ეს ასრულებს ადმინისტრაციული პანელის შექმნას, სადაც კლიენტს აქვს წვდომა მხოლოდ დოკუმენტის ხეში გვერდების რედაქტირებასა და შექმნაზე. მაგრამ ამ მომხმარებელს ჯერ კიდევ აქვს წვდომა სისტემის ყველა ფაილზე. ასე რომ, ჩვენ ახლა დავრწმუნდებით, რომ მას აქვს წვდომა მხოლოდ ერთ საქაღალდეზე, რომელსაც შევქმნით Modx Revolution საიტის ძირში.

22. გადადით "ინსტრუმენტები" - "ფაილის წყაროები" ჩანართზე

23. გაიხსნება ყველა ფაილის წყაროს სია. ნაგულისხმევად იქმნება მხოლოდ ერთი - ფაილური სისტემა

ფაილის ახალი წყაროს შექმნამდე, ჯერ ეს უნდა შეცვალოთ. დააწკაპუნეთ მარჯვენა ღილაკით "ფაილის სისტემაზე" და აირჩიეთ "რედაქტირება"

24. გაიხსნება შემდეგი ფანჯარა. დააჭირეთ "მომხმარებელთა ჯგუფის დამატება"

25. მომხმარებელთა ჯგუფები - ადმინისტრატორი, მინიმალური როლი - სუპერ მომხმარებელი - 0, პოლიტიკა - მედია წყარო ადმინისტრატორი. დააწკაპუნეთ "შენახვა"

26. დაუბრუნდით ფაილის წყაროებს და შექმენით ახალი ფაილის წყარო

მოდით ვუწოდოთ მას "მენეჯერი", ფაილის წყაროს დრო - ფაილური სისტემა

27. დააწკაპუნეთ მარჯვენა ღილაკით ფაილის ახალ წყაროზე „მენეჯერი“ და აირჩიეთ „რედაქტირება“

28. გაიხსნება ასეთი ფანჯარა! ჩვენ უნდა შევცვალოთ პირველი 4 პარამეტრი

ჩვენ შევიყვანთ მნიშვნელობას basePath ველში /მენეჯერი/, basePathRelative და baseUrlRelative რჩება ისე, როგორც არის მნიშვნელობებით "Yes", baseUrl ველში ვწერთ მენეჯერი/

29. გადადით ტელევიზორის პარამეტრზე

30. დააწკაპუნეთ ბოლო ჩანართზე „ფაილის წყაროები“

და შეცვალეთ ფაილის წყარო "ფაილსისტემიდან" "მენეჯერზე". გადავარჩინოთ!

31. დაამატეთ მომხმარებლის ჯგუფი "მენეჯერს"

ახლა, გადადგმული ყველა ნაბიჯის შემდეგ, გადადით "ფაილის წყაროზე" - "მენეჯერი" და დაამატეთ მომხმარებლის ჯგუფი ამ ფაილის წყაროს.

32. მომხმარებელთა ჯგუფები - მენეჯერი, მინიმალური როლი - მენეჯერი - 9, პოლიტიკა - მედია წყარო ადმინ. დააწკაპუნეთ "შენახვა"

შენახვის შემდეგ დაუყოვნებლივ, "მენეჯერის" ფაილის წყარო გაქრება ადმინისტრატორისთვის. იმისათვის, რომ შეძლოთ ამ ფაილის წყაროს რედაქტირება, თქვენ უნდა გადახვიდეთ მენიუში "უსაფრთხოება - წვდომის კონტროლი". გახსენით მენეჯერის ჯგუფი რედაქტირებისთვის: მენეჯერი და ჩანართში „ფაილის წყაროები“ იპოვეთ და წაშალეთ მენეჯერის წყარო. მხოლოდ ამის შემდეგ შევძლებთ ამ წყაროს ხელახლა რედაქტირებას, როგორც ადმინისტრატორი.

33. ყოველი შემთხვევისთვის, გაასუფთავეთ ქეში

და შეიქმნა ჩვენი მომხმარებელი შეზღუდული უფლებებით და ფაილურ სისტემაზე წვდომით!

მე არ ვიტყვი, რომ ეს საკმარისად მარტივია, მაგრამ თუ ამას ავტომატურად გააკეთებთ, არაფერი რთული არ მოგეჩვენებათ. იმედი მაქვს, ყველაფერი გამოგივიდა! წარმატებებს გისურვებთ თქვენს პროექტებში!

გააზიარეთ