uVersion
한국어
다운로드 →

Wiki

권한

그룹 또는 사용자에게 저장소 폴더에 대한 read / write / none 접근 권한을 부여합니다. 패턴, 우선순위, 기본 해석, 권한 테스트.

소개

Permissions 탭은 특정 저장소에 대해 누가 어떤 폴더를 읽거나 쓸 수 있는지 정의합니다. 권한은 그룹 또는 사용자 를 대상으로 하며, 경로 패턴 에 적용되고, 수준(write / read / none)을 가집니다. 역할은 계정이 무엇을 할 수 있는지를, 권한은 어떤 파일에 대해서인지를 정합니다.

접근과 역할

이 탭은 슈퍼 관리자(모든 저장소)와 project_admin (자신이 관리하는 저장소)가 사용할 수 있습니다. 규칙은 항상 선택된 저장소에 연결됩니다.

탭의 세 패널

Permissions 탭은 관리 패널의 PROJECT 행에 있습니다. 여기서 하는 모든 작업은 행 상단의 선택기에 표시된 저장소에만 적용됩니다. 바로 위의 SERVER 행은 반대로 서버 전체에 관한 것이며, 계정과 그룹이 그곳에 있습니다.

이 탭은 위에서 아래로 세 개의 서로 다른 패널 을 쌓아 놓습니다. 이들은 세 가지 서로 다른 질문에 답하며, 앞의 두 개를 폴더 트리와 혼동하는 것이 이 페이지에서 가장 잦은 문의 원인입니다.

패널답하는 질문접근할 수 있는 사람
Project Admins이 프로젝트는 누가 관리하는가?슈퍼 관리자만
Build Access이 프로젝트의 빌드를 누가 다운로드할 수 있는가?슈퍼 관리자와 project_admin
권한 트리누가 어떤 폴더를 읽거나 쓸 수 있는가?슈퍼 관리자와 project_admin
위에서 본 Permissions 탭. 세 패널이 쌓여 채워져 있음: 프로젝트 관리자를 나열하는 Project Admins, 부여된 접근을 나열하는 Build Access, 이어서 권한 트리의 시작 부분. 위에는 PROJECT 행과 저장소 선택기가 보인다.

이 페이지의 나머지는 먼저 주 패널인 권한 트리를 설명하고, 이어서 나머지 두 개를 설명합니다.

세 가지 수준

수준효과
write대상 경로에서 읽기와 쓰기(체크아웃, 체크인).
read읽기 전용: 동기화는 가능하지만 수정은 불가.
none접근 없음: 더 넓은 규칙이 허용하더라도 폴더를 명시적으로 숨깁니다.

접근 권한 부여

1. 올바른 프로젝트에서 Permissions 탭 열기

PROJECT 행, 행 상단의 저장소 선택기: 무엇보다 먼저 표시된 프로젝트를 확인하세요. 규칙은 그 프로젝트에만 연결됩니다.

2. 대상 선택

선택기에서 그룹 또는 사용자를 고릅니다. 목록은 GroupsUsers 두 개의 하위 목록으로 나뉩니다. 하나의 규칙은 둘 중 하나만 대상으로 하며, 둘 다 대상으로 하지 않습니다. 대상이 선택되지 않은 동안 Apply 버튼은 비활성 상태로 유지됩니다.

3. 폴더 체크

폴더 트리 에서 해당 폴더를 체크합니다. 체크박스는 세 가지 상태(전체, 부분, 없음)이며, Filter folders... 필드는 프로젝트가 클 때 트리를 좁혀 줍니다.

4. 수준 선택 후 적용

폴더를 체크하면 곧바로 막대가 나타납니다. 선택된 폴더 수를 알려 주고 세 가지 수준(write, read, none)을 제시합니다. 하나를 고른 뒤 Apply 를 클릭합니다. 그러면 대상의 규칙이 아래 Active rules 표(Path Pattern, Permission, Priority)에 표시되며 하나씩 삭제할 수 있습니다.

여러 폴더가 체크된 폴더 트리, 왼쪽 위의 대상 선택기, 선택된 폴더 수를 알리는 막대와 write·read·none 알약, 오른쪽의 Apply 버튼, 이어서 Active rules 표와 Path Pattern·Permission·Priority 열.

사용자 이름으로 부여

"+ By username" 버튼을 사용하면 보이는 목록에 나타나지 않는 사람에게도 그 정확한 이름 을 입력하여 접근 권한을 부여할 수 있습니다. 이는 아직 어떤 권한도 갖지 않은 playtester 처럼 평소 범위 밖의 계정에 접근 권한을 부여하는 방법입니다.

이름은 정확히 일치해야 합니다(접두사 불가). 이 필드는 식별자와 이름만 반환하며, 역할은 결코 반환하지 않습니다. 기존 계정을 탐색하는 데 사용되지 않도록 하기 위함입니다.

패턴과 우선순위

규칙은 특정 파일이 아니라 경로 패턴, 이른바 glob 을 대상으로 합니다. 이는 축약 표기로, * 는 이름 안의 임의의 문자열을, ** 는 임의의 깊이의 임의의 폴더열을 나타냅니다. 따라서 Content/Maps/**Content/Maps 아래의 모든 것 (하위 폴더 포함)을 가리킵니다. 손으로 쓸 필요는 없습니다. 트리에서 폴더를 체크하면 해당 glob 이 생성됩니다.

체크한 폴더 Foo/Bar 는 패턴 Foo/Bar/** 가 됩니다(해당 폴더와 임의의 깊이에 포함된 모든 것). 저장소 루트는 /** 가 됩니다.

각 규칙에는 폴더의 깊이와 같은 우선순위 가 자동으로 부여됩니다(세그먼트 수, 루트 = 0). 따라서 더 구체적(더 깊은)인 규칙이 더 일반적인 규칙보다 우선합니다. 예: Content/**write, Content/Secret/**none 을 지정하면, Content/ 전체에서 쓰기가 가능하지만 Secret/ 만 제외됩니다.

자동 그룹화 어떤 폴더의 모든 하위 항목을 체크하면, 클라이언트가 이를 단일 규칙 Parent/** 로 묶고(향후 하위 폴더도 포함됩니다), 중복이 된 하위 규칙을 삭제합니다.

기본 해석

명시적 규칙이 경로를 다루지 않을 때, 실효 접근은 다음 모델을 따릅니다:

  • 기본적으로, 일치하는 규칙이 없으면 접근은 read(읽기)입니다.
  • adminlead어디서나 write(역할 우회)를 가집니다.
  • project_admin자신이 관리하는 저장소에서 write 를 가지며, 그 외에는 특별한 권한이 없습니다.
  • 그 밖에는 가장 구체적인 규칙이 적용됩니다. 해당이 없으면 기본 읽기입니다.

다시 말해: 이미 저장소에 접근할 수 있는 사람에게 폴더 읽기를 금지 하려면 아무것도 부여하지 않는 것만으로는 충분하지 않고(기본이 read이므로), 명시적인 none 규칙이 필요합니다.

기본 read는 저장소가 아니라 폴더에 대한 것 기본 read는 「그 사람이 이미 접근할 수 있는 저장소 안에 있는, 이 경로」에 답합니다. 어떤 저장소도 공개로 만들지 않습니다. 어떤 저장소에 대해 none 이외의 규칙을(직접으로도 그룹을 통해서도) 전혀 갖지 않은 계정은 그 저장소를 전혀 볼 수 없습니다: 저장소 목록에도 작업 공간에도 나타나지 않으며, 서버 라우트도 거부합니다.

실용적인 결과이며 불필요한 작업을 덜어 줍니다: 규칙이 전혀 없는 새 프로젝트는 이미 모두에게 닫혀 있습니다. 단, adminlead 역할, 그리고 그 프로젝트 자신의 project_admin 은 예외입니다. 따라서 프로젝트를 「닫기」 위해 곳곳에 none 규칙을 둘 필요가 없습니다. 열고 싶은 것만 부여하면 됩니다. none 규칙은 이미 부여한 접근의 내부 를 나누는 데 씁니다. 예를 들어 Content/ 를 가진 팀에게서 Content/Secret/ 를 숨기기 위해서입니다.

프로젝트 관리자 지정

탭 상단의 Project Admins 패널은 선택된 저장소를 누가 관리하는지 지정합니다. 이는 슈퍼 관리자 전용 입니다: 권한을 부여하는 것은 그것을 행사하는 것보다 한 단계 위이기 때문입니다.

절차는 다음 순서로 두 단계입니다:

1. Users 탭에서 역할 부여

SERVER 행, Users 탭: 그 사람에게 project_admin 역할을 부여합니다. 그 역할이 설정되기 전까지는 이 패널의 목록에 나타나지 않으며, 패널도 이렇게 알려 줍니다: 「No one to add. Give someone the Project Admin role on the Users tab first」.

2. 그 사람을 저장소에 연결

여기로 돌아와 PROJECT 행 선택기에 표시된 저장소를 확인한 다음, Project Admins 패널에서 Add 를 클릭하고 그 사람을 선택한 뒤 Grant 를 클릭합니다. 그 사람은 곧바로 패널 목록에 나타납니다.

추가 중인 Project Admins 패널: Grant 버튼 옆의 Select a project admin 메뉴, 그 아래에 이미 연결된 사람, 이어서 granted by 표시와 빨간 Revoke 십자 표시.

연결 해제

행 끝의 빨간 십자 표시(Revoke)는 그 저장소를 대상 범위에서 제거합니다. 연결 없는 역할은 아무것도 주지 않습니다: 더 이상 어떤 저장소도 관리하지 않는 project_admin 은 Permissions, Rules, Webhooks, Files 그리고 사용자 관리에 대한 접근을 잃습니다. 따라서 마지막 저장소를 제거하면 권한 전체가 제거됩니다.

빌드 접근

Build Access 패널은 이 프로젝트의 게시된 빌드 를 클라이언트의 Games 페이지에서 누가 보고 다운로드할 수 있는지 결정합니다. 슈퍼 관리자 와, 자신의 저장소에 대한 project_admin 에게 열려 있습니다.

이것이 playtester에게 프로젝트를 여는 유일한 방법입니다 playtester 계정은 설계상 경로 권한을 전혀 갖지 않습니다: 이것이 프로젝트 파일을 보지 못하게 합니다. 따라서 어떤 권한 트리에도 나타나지 않으며 트리를 통해 「접근을 줄」 수 없습니다. Build Access 패널은 바로 이 경우를 위해 존재합니다: 파일 접근을 주지 않고 빌드 접근을 줍니다.

1. 추가 양식 열기

Build Access 패널에서 Add 를 클릭합니다. 입력 행이 나타나며, 먼저 대상을 지정하는 방법의 선택으로 시작합니다.

2. 대상 지정

  • User: 목록에 있는 계정, 즉 이미 프로젝트에서 일하는 사람.
  • Group: 그룹 전체. 학생 무리나 반복되는 테스트 팀에 편리합니다.
  • By username: 계정의 정확한 이름을 입력하는 Exact username 필드. playtester 에게는 통상적인 방법입니다. 어떤 목록에도 나타나지 않기 때문입니다. 이름은 접두사 없이 정확히 일치해야 합니다.
추가 중인 Build Access 패널: By username 으로 설정된 유형 메뉴, 입력된 Exact username 필드, 오른쪽의 Grant 버튼, 그 아래에 이미 부여된 행과 빨간 제거 십자 표시.

3. 부여 또는 취소

부여하려면 Grant 를 클릭합니다. 기존 행에서는 Revoke 가 확인과 함께 접근을 제거합니다.

서버가 적용하는 규칙, 순서대로:

누가빌드 접근
admin모든 저장소.
project_admin자신이 관리하는 저장소.
그 밖의 모든 역할download_builds 능력을 가져야 하며(viewer 를 제외한 모든 역할이 가집니다), 그리고 저장소에 접근할 수 있거나, 직접 또는 그룹을 통해 이 패널에 행이 있어야 합니다.

다시 말해: 이미 프로젝트에서 일하는 사람은 여기서 더 필요한 것이 없습니다. 이 패널은 프로젝트 외부 의 사람을 위한 것이며, viewer 는 어떤 경우에도 제외된 채로 남습니다.

권한 테스트

탭 맨 아래의 Test Permission 패널은 「이 사용자가 이 경로에 대해 어떤 실효 접근을 갖는가?」에 답합니다. 어느 규칙이 실제로 결정하는지를 아는 가장 빠른 방법입니다.

1. 사용자와 경로 선택

User 에서 계정을 고른 다음 Path 에 경로를 입력합니다. 예를 들어 /Content/Maps/Level01.umap 입니다. 둘 다 채워지기 전까지 버튼은 비활성 상태로 유지됩니다.

2. 테스트 실행 후 결과 읽기

Test 를 클릭합니다. 결과에는 실효 수준과 함께 결정을 내린 소스패턴 이 표시되어, 접근이 허용되거나 거부되는 이유를 이해할 수 있습니다.

실효 수준과 결정을 내린 소스 및 패턴을 보여주는 결과가 표시된 Test Permission 패널.

볼 권한이 없는 사용자에 대해서는, 테스트가 존재하지 않는 계정과 동일한 「찾을 수 없음」을 반환하여 계정의 존재를 드러내지 않습니다.

흔한 함정

「아무것도 부여하지 않았는데 읽을 수 있다」

이는 read 기본값 때문이며, 그 사람이 이미 접근할 수 있는 저장소 내부 에서만 작동합니다. 프로젝트에서 일하는 사람에게 폴더를 닫으려면 해당 폴더에 명시적인 none 규칙을 설정하세요.

「저장소가 그 사람의 목록에 나타나지 않는다」

그 사람이 이 저장소에 대해 none 이외의 규칙을 전혀 갖지 않는 동안은 정상입니다. read 기본값은 저장소 자체에 대한 접근을 주지 않습니다. 직접 또는 그룹 을 통해 적어도 하나의 read 또는 write 규칙을 부여하면 저장소가 나타납니다. 빌드만 가져오면 되는 playtester 라면, 조치할 곳은 여기가 아닙니다: 빌드 접근 을 참조하세요.

두 규칙이 서로 모순된다

가장 구체적인 것(가장 깊은 깊이)이 이깁니다. 어느 것이 결정하는지는 테스트 로 확인하세요.

none 규칙이 있는데도 lead가 쓰기 상태로 남는다

adminlead 역할은 경로 규칙을 우회합니다(어디서나 write). none 규칙으로도 제한되지 않습니다. project_admin 이 자신의 저장소에 대해 갖는 경우도 마찬가지입니다.

그룹을 통한 접근과 직접 접근

접근은 계정 자체에서 오거나, 소속된 그룹 에서 올 수 있습니다. 규칙을 제거해도 아무것도 바뀌지 않으면, 다른 소스를 찾으세요(어느 것이 적용되는지는 테스트가 알려줍니다).