Modx는 기본 파일 소스입니다. MODx 혁명: 프론트엔드에서 자산 생성 및 파일 로드

WebHow 블로그의 모든 독자들에게 좋은 오후입니다! 마지막으로 기사에서 코드 강조 표시를 위한 훌륭한 플러그인을 찾았고 이제 본격적으로 비즈니스를 시작할 수 있습니다. 농담은 차치하고, 오늘 게시판, 카탈로그 또는 기타 서비스를 MODx 웹사이트에서 구성하려는 사람들을 위한 가혹한 게시물이 있을 것입니다. 방문자가 직접 콘텐츠를 게시할 것입니다.

MODx에 대해 조금이라도 아는 사람은 콘텐츠를 게시하려면 사용자가 관리자 패널에 액세스할 수 있어야 한다는 것을 알고 있습니다. 물론 오른쪽에서 왼쪽으로 배포하고 싶지는 않습니다. 따라서 사용자가 사이트 페이지에서 직접 리소스를 만들고 파일을 업로드할 수 있는지 확인해야 합니다.

저는 프로그래머가 아닙니다. 처음 MODx에서 게시판을 만들어야 했을 때 제가 할 수 있는 일은 기성품 솔루션을 찾는 것뿐이었습니다. 프론트엔드에서 리소스를 게시할 수 있도록 하는 스니펫에 대한 다양한 옵션 MODx 혁명충분하지 않은 것으로 나타났습니다.

원칙은 모든 사람에게 거의 동일합니다. FormIt 도움말스 니펫의 이름이 쓰여진 호출에서 양식이있는 페이지가 생성됩니다. 각 광고 유형에 대해 자체 TV 필드(예: 도시, 전화 또는 이미지 업로드 필드)가 생성됩니다. 사용자가 양식을 제출하면 리소스가 생성됩니다.

그러나 내가 찾은 거의 모든 스니펫은 매우 성가신 것이었습니다. 각 TV 매개변수는 스니펫 코드로 작성되어야 했고 이것은 저에게 적합하지 않았습니다. 각 광고 유형에 대해 최소 3개의 추가 필드, 그리고 스 니펫에 모두 작성하십시오 ... 아니요, 더 좋고 쉬운 방법이 있습니다. 공식 포럼 MODx.com의 영어 부분에서 제가 찾았습니다. 그리고 영어를 잘 말하고 읽지 못하거나 검색하기에 너무 게으른 경우 적합한 옵션주제의 여러 중, 나는 그것을 사용하는 방법을 말할 것입니다.

나는 이 주제에 대해 적었다. 단계별 비디오 지침... 플레이어 바로 아래에 모든 자료가 있습니다.

Form2resource 스니펫 코드

getObject("modResource", 배열("id" => $ hook-> getValue("resource_id"))); if (empty ($ doc)) ($ doc = $ modx-> newObject ("modResource"); $ doc-> set ("createdby", $ modx-> user-> get("id"));) else ($ doc-> set("editedby", $ modx-> user-> get("id"));) $ allFormFields = $ hook-> getValues ​​(); foreach ($ allFormFields as $ 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- > 설정("별칭", $별칭); $ doc-> set("템플릿", $ 템플릿); $ 문서-> 저장(); foreach ($ allFormFields as $ field => $ value) (if (! empty ($ value) && $ tv = $ modx-> getObject ("modTemplateVar", array ("name" => $ field))) (/ * 체크박스 및 다중 선택 요소 처리 * / if (is_array($ 값)) ($ featureInsert = array(); while (list($ featureValue, $ featureItem) = each($ 값)) ($ featureInsert = $ featureItem;) $ value = implode("||", $ featureInsert);) $ tv-> setValue ($ doc-> get("id"), $ value); $ tv-> save();)) $ modx-> cacheManager -> 새로 고침(); true를 반환합니다.

Form2file 스니펫 코드

사용자-> get("ID"); // 사용자가 지정한 루트의 경로 // 이 양식 제출을 위한 고유한 경로 생성 $ uploadpath = "assets / uploads /".$ mydir." / "; // 고유 폴더에 대한 전체 경로 가져오기 $ target_path = $ modx-> config ["base_path"]. $ 업로드 경로; // 업로드된 파일 이름 가져오기: $ submitfiles = array_keys ($ _ FILES); // 파일을 통해 루프 foreach ($ submitfiles as $ sf) (// 파일 이름을 가져오고 좋은지 확인합니다. $ filename = basename ($ _ FILES [$ sf] ["name"]); // 파일 "s 확장자 가져오기 $ 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("Ym-d_G-i-s_"). $ filename; // 날짜 및 시간 추가 // 새 파일의 전체 경로 $ myTarget = $ target_path . $ filename ; // 파일이 존재하지 않는 경우 이동할 디렉토리 생성 mkdir ($ target_path, 0755, true); // 파일이 적절한 폴더로 성공적으로 이동되었습니까? if (move_uploaded_file ($ _ FILES [$ sf ] [" tmp_name "], $ myTarget)) (// 새 전체 경로로 새 자리 표시자를 설정합니다(이후 후크에서 필요한 경우) $ myFile = $ 업로드 길. $ 파일 이름; $ hook-> setValue ($ sf, $ myFile); // 파일에 대한 권한 설정 if (! chmod ($ myTarget, 0644)) (/ * 일부 디버그 기능 * /)) else (// 파일이 업로드되지 않았습니다. $ errorMsg = "파일을 업로드하는 데 문제가 발생했습니다."; $ hook-> addError ($ sf, $ errorMsg); $ output = false; // 제출 오류 발생)) else (// 파일 형식이 허용되지 않음 $ errorMsg = "파일 형식이 허용되지 않습니다."; $ hook-> addError ($ sf, $ errorMsg); $ output = false; // 제출 오류 생성) // 파일이 없으면 "t error, 그러나 공백을 반환) else ($ hook-> setValue ($ sf," ");) $ 카운터 = $ 카운터 + 1;) $ 출력을 반환합니다.

친구! 양식 코드에서 TV 필드와 리소스 ID를 대체하는 것을 잊지 마십시오. 조심하면 성공할 것입니다.

FormIt 호출

[[!폼잇? & hooks = `formit2file, formit2resource, redirect` & redirectTo =` 메시지 페이지 ID` & 템플릿 = `광고 템플릿 ID`]]

폼으로 청크를 호출하기 위한 조건

[[! + modx.user.id: is = `0`: then =` 광고를 게재하려면 승인이 필요합니다. [[! Loginza? & 그룹 = `3` & profileFields =` 사용자 이름, 이메일, 전체 이름, 사진`]] `: else =` [[$ form_add]] `]]

샘플 양식 코드

[[+ fi.error.error_message]]

이름
[[+ fi.error.pagetitle]]
*
도시
[[+ fi.error.city]]
*

상세 설명

[[+ fi.error.content]]

사진 첨부:

카탈로그에는 최대 5개의 사진을 배치할 수 있습니다. 허용되는 형식: .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(그룹 Group1의 역할 - 2000 ) 그룹의 모든 권한을 가집니다. 그룹1역할이 2000 이상입니다. 즉, 이것은 K1, K2그리고 G2.
  • 사용자 사용자2그룹(0)에서 가장 높은 역할을 가지므로 모든 권한( K1, K2, D1그리고 G2).
  • 사용자 사용자3그룹에 있다 그룹1가장 낮은 역할( 9999 ). 그에 따라 그는 시스템에서 다음과 같이 정의된 작업을 수행할 수 있습니다. K2그리고 G2.

액세스 정책은 CMS MODX Revolution에서 제공하는 웹 사이트에서 작업을 수행하기 위해 사용자에게 부여된 권한 집합입니다.

왜 이런 식으로 구현됩니까? 이는 MODX에 많은 권한이 있고 한 번에 하나씩 부여하기 보다는 그룹으로(즉, 접근 정책을 사용하여) 할당하는 것이 더 편리하기 때문입니다.

예를 들어 액세스 정책 로드, 나열 및 보기다음 권한 집합이 있습니다.

  • 로드(객체 로드);
  • 목록(객체 컬렉션 가져오기);
  • 보기(객체 보기).

고유한 액세스 정책을 만드는 방법

사용자 그룹에 대한 권한을 설정할 때 MODX 시스템의 기존(사전 설치된) 정책으로 제한되지 않습니다. 필요한 경우 새로 만들 수 있습니다. MODX의 정책 생성은 다음을 기반으로 합니다. 액세스 정책 템플릿... 액세스 정책 템플릿은 액세스 정책을 생성할 때 사용할 수 있는 최대 권한 목록을 정의하는 MODX Revolution의 엔터티입니다.

따라서 필요한 권한으로 액세스 정책 생성필요한:

  1. 적절한 액세스 정책 템플릿을 찾습니다(필요한 경우 기존 템플릿을 편집하거나 새로 생성).
  2. 적합한 템플릿을 선택하여 액세스 정책을 생성합니다.
  3. 템플릿이 제공하는 전체 권한 목록에서 사용자에게 부여할 권한만 포함합니다(사용자가 이 정책을 가질 경우).
사용 가능한 액세스 정책 권한 집합을 결정하는 방법

액세스 정책을 만들 때 항상 사용자가 시스템에서 특정 작업을 수행하기에 충분한 최소 권한 수를 할당하는 것으로 시작하십시오. 필요한 경우 항상 사용자에게 부여된 권한을 확장할 수 있습니다.

익명 사용자

MODX Revolution에서 무단 사이트 방문자는 익명이며 그룹에 속합니다. (익명의)... 다음 스니펫을 만들고 리소스 템플릿에서 이를 호출한 다음 페이지를 열면 쉽게 확인할 수 있습니다.

GetUser 스니펫용 PHP 코드:

사용자-> get("사용자 이름");

페이지에서 스니펫 호출:

[[! GetUser]]

작업 결과:

(익명의)

MODX의 사이트에서 익명 사용자의 작업은 그룹 권한을 설정하여 규제됩니다. (익명의)... 필요한 경우 이 그룹에 추가 권한을 부여하거나 제한할 수 있습니다.

권한 설정에 대한 일반적인 지침

이 섹션에서는 다음이 필요할 때 사용할 수 있는 지침을 살펴보겠습니다.

  • 익명 사용자의 특정 리소스에 대한 액세스를 제한합니다.
  • 관리자 패널의 리소스 작업에 대한 액세스 권한과 사진 업로드 기능을 제공해야 하는 콘텐츠 관리자를 만듭니다.

특정 리소스에 대한 액세스 제한

특정 리소스(예: 개인 계정, "비밀번호 변경" 페이지 등)에 대한 익명 사용자의 액세스를 제한하는 예를 고려하십시오. 등록된 사용자에게만 이러한 리소스에 대한 액세스를 제공합니다.

이렇게 하려면 다음을 수행해야 합니다.

  1. 창조하다 사용자 리소스 그룹(콘텐츠 -> 리소스 그룹 -> 리소스 그룹 만들기 버튼). 나타나는 양식에서 "이름" 필드에 입력하십시오. 사용자"저장" 버튼을 클릭합니다. 필요한 리소스를 여기에 배치합니다(익명 방문자의 액세스를 제한해야 함).
  2. 창조하다 사용자 그룹(아이콘 "기어" -> 액세스 제어 -> "새 사용자 그룹" 버튼). 열리는 대화 상자에서 "이름" 필드에 입력하십시오. 사용자, "컨텍스트" - 편물, "백엔드 정책" - (정책 없음).
  3. 그룹 편집 모드로 전환합니다(사용자 컨텍스트 메뉴에서 "사용자 그룹 편집" 항목 선택).
  4. "액세스 권한" 탭을 열고 "리소스 그룹에 대한 액세스" 탭을 엽니다. "리소스 그룹 추가" 버튼을 클릭하고 열린 양식("리소스 그룹" - 그룹, "문맥" - (편물), 최소 역할은 회원(9999), "액세스 정책" - 로드, 나열 및 보기).

그 후, 모든 익명 또는 다른 사용자(권한이 없는)는 다음을 받게 됩니다. 404 리소스(그는 권리조차 없기 때문에 ) 그가 이 그룹의 페이지를 열려고 시도하는 경우.

익명의 사용자가 보호된 페이지를 열 때 다른 사람에게 보내게 하려면(예: 권한 부여), 추가로 다음을 수행해야 합니다(즉, 권한 부여 이 리소스 그룹의 경우):

  1. 열려있는 환경 설정("기어" 아이콘 -> 시스템 설정). 네임스페이스 "core", 섹션 "Site"를 선택합니다. 매개변수 찾기 무단_페이지(오류 페이지 403 "액세스 거부됨") 값으로 지정 - 리소스 ID"승인" 양식을 포함합니다.
  2. 그룹 편집 모드로 전환 (익명의)... "리소스 그룹에 대한 액세스" 섹션("액세스 권한" 탭)에서 추가 사용자 리소스 그룹필요한 권한을 설정합니다(이 경우 "컨텍스트" - (편물), 최소 역할은 회원(9999), "액세스 정책" - 로드 전용).
익명 사용자에 대한 사용자 리소스 그룹에 대한 액세스 구성

콘텐츠 관리자에 대한 권한 설정

이 예에서는 사용자가 관리자 패널의 디렉토리에 이미지를 업로드하고 특정 리소스로 작업할 수 있는 "Managers" 그룹을 만듭니다.

이를 위해 예를 들어 다음 지침을 사용할 수 있습니다.

1. 새로 만들기 관리자 액세스 정책필요한 권리와 함께:

  • "접근 제어" 페이지("기어" 아이콘 -> 액세스 제어)를 열고 "접근 정책" 탭으로 이동합니다.
  • "콘텐츠 편집기" 정책의 사본을 만드십시오.
  • 생성된 복사본을 편집합니다. 즉 이름 필드를 Manager로 변경하고 directory_list, file_list, file_manager, file_remove, file_tree, file_upload 권한 반대편에 있는 상자를 선택합니다. 결과적으로 Manager 액세스 정책에는 30개의 권한이 부여됩니다. 사용자에게 파일 작업 권한을 부여하려면 이 작업을 수행해야 합니다.
  • "저장" 버튼을 클릭합니다.
관리자 액세스 정책 구성 양식

2. 관리자가 관리자 패널에서 액세스할 수 없는 리소스를 숨깁니다.

  • 리소스 그룹 페이지를 열고 리소스 그룹 생성 버튼을 클릭합니다.
  • 열리는 양식에서 "이름"을 입력하십시오. ClosedForManagers, "컨텍스트" - 관리자그리고 표시"자동으로 관리자 그룹에 대한 액세스 권한 부여" 옵션.
  • "저장" 버튼을 클릭합니다.
  • 관리자 패널에서 관리자에 대해 숨겨야 하는 생성된 그룹으로 리소스를 드래그합니다.

3. 사용자가 사진을 업로드할 디렉토리에 대한 액세스를 제공합니다.

  • "파일 소스" 페이지를 열고 "새 파일 소스 만들기" 버튼을 클릭합니다.
  • 열리는 양식에서 "이름" 필드에 텍스트를 입력합니다. 이미지, "설명"에서 - 이미지, "파일 소스 유형"에서 - 파일 시스템.
  • "저장" 버튼을 클릭합니다.
  • 새로 생성된 파일 소스를 편집합니다(마우스 오른쪽 버튼 -> "편집" 작업).
  • 매개변수 값 변경: basePath - 자산 / 이미지 /, baseUrl - 자산 / 이미지 /, 허용된 파일 유형 - jpg, jpeg, png, gif.
  • "저장" 버튼을 클릭합니다.
이미지 파일의 소스 구성

연결된 사용자 그룹이 없는 파일 소스는 백엔드의 모든 사용자가 사용할 수 있습니다. 따라서 예를 들어 Manager 그룹의 사용자가 둘 이상의 그룹과 연결되지 않은 다른 파일 소스를 표시하지 못하도록 하려면 이들을 Administrator 사용자 그룹에 할당할 수 있습니다.

MODX - 파일 시스템 소스를 관리자 그룹에 연결

파일 소스를 사용하는 MODX 액세스 제어 시스템을 사용하면 여러 사용자가 액세스할 특정 디렉토리를 설정할 수 있을 뿐만 아니라 권한 집합을 정의할 수 있습니다. 즉, 예를 들어 일부 사용자에게는 일부 디렉토리가 제공되고 다른 사용자에게는 다른 사용자가 제공될 수 있는 시스템입니다.

4. 만들기 새 사용자 그룹필요한 권한을 할당합니다.

  • "액세스 제어" 페이지를 열고 "사용자 그룹 및 사용자" 탭으로 이동한 다음 "새 사용자 그룹" 버튼을 클릭합니다.
  • 열리는 대화 상자에서 다음 필드를 채우십시오. "이름" - 관리자; "설명" - 관리자; "컨텍스트"- 웹, 관리자; "백엔드 정책" - 관리자.
  • "저장" 버튼을 클릭합니다.
  • 방금 생성한 사용자 그룹 "관리자"의 편집 모드로 전환합니다(컨텍스트 메뉴 "편집"에서 그룹 -> 항목을 마우스 오른쪽 버튼으로 클릭).
  • "접근 권한" 탭으로 이동합니다.
  • "컨텍스트에 대한 액세스" 섹션을 엽니다. 컨텍스트 액세스 편물: "최소한의 역할" - 회원(9999); 액세스 정책 - 로드, 나열 및 보기... 컨텍스트 액세스 관리자: "최소한의 역할" - 회원(9999), 액세스 정책 - 관리자.
  • "파일 소스에 대한 액세스" 섹션에서 다음 값으로 새 항목을 추가하십시오. "소스" - 이미지; "최소한의 역할"- 회원(9999), "액세스 정책" - 미디어 소스 관리자.
  • "저장" 버튼 클릭

5. 만들기 사용자"관리자" 그룹에 추가합니다. 역할 값을 9999(구성원)로 설정합니다. 이 역할은 그가 이 그룹의 모든 권한을 얻는 데 충분합니다. 이는 이 그룹에 대해 9999보다 큰 역할이 필요한 액세스 정책을 할당하지 않았기 때문입니다.

관리자 그룹에 사용자 추가(구성원 역할)

Evolution에서는 모든 것이 매우 간단했습니다. 사용자 권한을 생성하면 끝입니다! 그리고 여기서 많은 단계를 수행해야 하지만, 반면에 Modx Revolution에서는 문서 및 파일에 대한 권한이 있으므로 원하는 모든 작업을 수행할 수 있습니다(물론 이것을 이해한다면). 자, 시작하겠습니다!

1. 관리자 패널의 상단 메뉴에서 "보안" - "접근 제어"로 이동합니다.

2. "접근 정책" 탭으로 이동합니다.

3. "접근 정책 생성" 버튼 클릭

필드가 있는 창을 엽니다. 이름 필드에 "manager"라고 쓰고 액세스 정책 템플릿은 AdministratorTemplate입니다. 저장 버튼 클릭

4. "관리자" 액세스 정책을 저장하면 액세스 정책 목록에 나타납니다.

5. 편집 관리자

6. 불필요한 매개변수를 체크 해제

열리는 이 페이지의 맨 아래에 옵션(권한) 목록이 있습니다. 사이트가 제대로 작동하는 데 필요한 문서, 파일, 요소를 편집하거나 삭제하지 않으려면 관리자 패널에서 리소스를 표시하는 매개변수를 선택 취소해야 합니다.

다음 매개변수에서 확인 표시를 제거합니다.

  • access_permissions 사용자 액세스 권한에 대한 설정이 있는 페이지를 표시합니다.
  • 대시보드 대시보드 보기 및 관리
  • element_tree 왼쪽 탐색 창에서 요소 트리를 보는 기능
  • menu_reports 상단 메뉴에 "보고서" 항목 표시
  • menu_security 최상위 메뉴에 "보안" 항목 표시
  • menu_system 최상위 메뉴에 "시스템" 항목을 표시합니다.
  • menu_tools 상단 메뉴에 "도구" 항목 표시
  • new_static_resource 새 정적 리소스를 만듭니다.
  • remove_locks 사이트의 모든 잠금을 제거합니다.

7. "보안" - "액세스 제어" - "역할" 탭으로 이동합니다.


8. "새로 만들기" 버튼을 누르고 관리자, 순위 - 9에서 운전하는 이름 필드에서 "저장" 버튼을 누릅니다.


9. 변경 사항을 저장하고 "보안" - "액세스 제어" - "사용자 그룹"으로 이동합니다.


"관리자"를 마우스 오른쪽 버튼으로 클릭하고 "사용자 그룹 만들기"를 클릭합니다.

10. 새 그룹 생성: 이름 - 관리자, 백엔드 정책 - 정책 없음, "저장" 클릭

11. 사용자 그룹 목록에서 찾아 "편집"을 클릭합니다.

12. "컨텍스트에 대한 액세스" 메뉴로 이동하여 "컨텍스트 추가"를 클릭합니다.

13. 컨텍스트 - 관리자, 최소 역할 - 관리자 - 9, 액세스 정책 - 관리자

14. 컨텍스트 추가

보다 정확하게는 기존 웹을 편집합니다. 컨텍스트 - 웹, 최소 역할 - 관리자 - 9, 액세스 정책 - 관리자. "저장" 버튼 클릭

15. 우리는 그런 그림을 보게 될 것입니다! "사용자 그룹: 관리자" 탭에 모든 것을 저장합니다.

16. 다음: "보안" - "사용자 관리"

17. 새 사용자 만들기(이것은 우리의 클라이언트가 됩니다) - "새 사용자" 버튼을 누릅니다.

당신은 그에게 당신이 원하는 어떤 이름을 줄 수 있습니다, 나는 그를 - 매니저

18. 사용자 이름 - 관리자, 확인란 클릭 - 활성, 이메일 드라이브

19. 비밀번호 지정

20. 저장하기 전에 "접근 권한" 탭으로 이동하십시오.

21. "그룹에 사용자 추가" 버튼, 사용자 그룹 - "관리자", 역할 - "관리자"를 누릅니다.

우리는 저장합니다. 이렇게 하면 클라이언트가 문서 트리의 페이지를 편집하고 생성하는 데만 액세스할 수 있는 관리자 패널의 생성이 완료됩니다. 그러나 이 사용자는 여전히 시스템의 모든 파일에 액세스할 수 있습니다. 이제 그가 Modx Revolution 사이트의 루트에 생성할 하나의 폴더에만 액세스할 수 있도록 만들 것입니다.

22. "도구" - "파일 소스" 탭으로 이동합니다.

23. 모든 파일 소스 목록이 열립니다. 기본적으로 하나만 생성됩니다 - 파일 시스템

새 파일 소스를 만들기 전에 먼저 이 소스를 변경해야 합니다. 마우스 오른쪽 버튼으로 "파일 시스템"을 클릭하고 "편집"을 선택하십시오.

24. 이 창이 열립니다. "사용자 그룹 추가"를 클릭하십시오.

25. 사용자 그룹 - 관리자, 최소 역할 - 수퍼유저 - 0, 정책 - 미디어 소스 관리자. "저장"을 클릭하십시오

26. 파일 소스로 돌아가서 새 파일 소스 생성

"매니저"라고 부르자, 파일 소스 팀 - 파일 시스템

27. 새 파일 소스 "Manager"를 마우스 오른쪽 버튼으로 클릭하고 "편집"을 선택합니다.

28. 그런 창이 열립니다! 처음 4개의 매개변수를 변경해야 합니다.

필드의 basePath에 다음을 입력합니다. / 관리자 /, basePathRelative 및 baseUrlRelative는 "Yes" 값과 함께 그대로 둡니다. baseUrl 필드에 작성합니다. 관리자 /

29. 우리는 TV 매개 변수로 이동합니다.

30. 가장 최근 탭인 "파일 소스"를 클릭합니다.

파일 소스를 "파일 시스템"에서 "관리자"로 변경합니다. 우리는 저장합니다!

31. "관리자"에 사용자 그룹 추가

이제 모든 단계를 수행한 후 "파일 소스" - "관리자"로 이동하여 이 파일 소스에 사용자 그룹을 추가합니다.

32. 사용자 그룹 - 관리자, 최소 역할 - 관리자 - 9, 정책 - 미디어 소스 관리자. "저장"을 클릭하십시오

일단 저장되면 관리자를 위해 "관리자" 파일 소스가 사라집니다. 이 파일 소스를 편집하려면 "보안 - 액세스 제어" 메뉴로 이동해야 합니다. 편집을 위해 관리자 그룹을 열고 "파일 소스" 탭에서 관리자 소스를 찾아 삭제합니다. 그래야만 관리자에서 이 소스를 다시 편집할 수 있습니다.

33. 만일의 경우를 대비하여 캐시를 지우십시오.

파일 시스템에 대한 제한된 권한과 액세스 권한을 가진 사용자가 생성됩니다!

충분히 쉽다고는 할 수 없지만, 자동으로 하면 뭔가 어렵게 느껴지지 않을 것이다. 나는 당신이 그것을 했길 바랍니다! 프로젝트에 행운을 빕니다!

이 공유