여느 CI도구와 마찬가지로 팀시티에서도 사용자나 그룹에 세세한 권한들 까지 입맛에 맞도록 세세하게 설정해 줄 수 있습니다. 다만 설치 기본값으로는 세세한 권한부여가 막혀 있습니다. 어떻게 활성화 하는지 체크하고 간단하게 커스텀 권한 부여하는 방법에 대해서 알아보겠습니다.
팀시티는 기본으로는 심플한 권한체계를 제공합니다.
- 관리자
- 로그인한 유저
- 손님 유저
좀 더 상세하게 권한을 부여하고 싶다면 프로젝트별 권한 부여모드를 활성화 해야 합니다.
프로젝트별 권한 부여 모드 활성화 하는 방법을 알아보고 실제로 유저가 영향을 받도록 역할을 부여해 보도록 하겠습니다.
사전준비
전체 프로젝트의 보기 권한을 갖고, 특정 프로젝트만 빌드 시작/중지 가 가능한 그룹을 만드려고 합니다.
tester라는 사용자를 만들고 BuildUsers라는 그룹에 조인해 두었습니다.
세부권한 활성화
팀시티 기본값으로는 Administrator > User Management 에서 확인 가능한 유저 관리 메뉴가 Users, Groups 두 가지 밖에 보이지 않습니다.
Administrator > Server Administration > Authentication > Per-project permissions 의 체크박스를 체크 하고 저장버튼을 누르면 프로젝트당 권한 관리가 활성화 되면서 User Management에 Roles 이라는 메뉴가 새로 생겨집니다.
역할 생성
BuildUser라는 역할을 생성하고 역할에는 다음과 같은 권한을 부여합니다.
- 모든 프로젝트 보기
- 특정 프로젝트의 빌드시작
- 특정 프로젝트의 빌드중지
Administration > User Management > Roles 에서 Create new role을 클릭합니다.
역할 이름 지정 후 생성
방금 생성된 역할의 모습이구요 아무런 권한도 갖고 있지 않습니다.
먼저 이 역할에 모든 프로젝트의 보기 권한 부여하도록 합니다.
권한을 새로 넣기 보다는 Project Viewer라는 역할의 권한을 그대로 상속받기 위해 Include role 버튼을 클릭합니다.
여기서 상속받을 역할로 Project viewer를 선택하고 Include 버튼을 클릭합니다.
Project viewer의 역할을 상속받은 모습이 보여지구요. 곧바로 빌드 권한 추가를 위해 Add permission을 클릭합니다.
권한 추가 화면에서 Run build 찾아서 선택 후 Add 버튼 클릭해서 으로 추가 하고, 동일한 과정으로
Stop Build / remove from queue 도 찾아서 추가 합니다.
최종적으로 아래와 같이 모든 프로젝트 볼수 있는 Project viewer의 역할과 빌드 시작/중지 할 수 있는 권한을 가진 역할이 완성되었습니다.
역할 부여
위 에서 생성한 BuildUsers역할을 BuildUsers그룹에 할당합니다. 그러면 BuildUsers 그룹의 유저들은 프로젝트의 빌드를 진행할 수 있게 됩니다.
Administration > User Management > Groups 으로 이동해서 BuildUsers그룹의 역할을 클릭합니다.
BuildUsers그룹의 역할로 이동이 되었구요. 여기서 Assign role 버튼을 클릭해 줍니다.
이 역할이 영향을 받을 프로젝트를 선택할 수 있습니다. 저는 SheetExtractor 라는 프로젝트를 선택했구요.
BuildUsers 역할도 선택 해준 후 Assign을 진행 했습니다.
SheetExtractor 라는 프로젝트에 BuildUsers 역할이 할당 된 모습입니다.
역할 확인
tester 라는 유저가 BuildUsers라는 그룹에 있기 때문에 tester로 로그인 해서 역할이 잘 부여 되었는지 확인합니다.
tester로 로그인 했을 때 팀시티 우측 상단에 있어야하는 administration 버튼이 보이지 않고, 프로젝트 설정으로 진입하는 버튼도 보이지 않습니다. SheeetExtractor 프로젝트의 빌드에는 빌드를 진행할 수 있는 Run 버튼이 노출되어 있습니다.
빌드 페이지에서도 관리버튼을 보여지지 않습니다.
팀시티의 역할에 대해 좀 더 자세하게 알고 싶다면 팀시티의 문서(Managing Roles and Permissions) 를 확인하시기 바랍니다.
이상 끝~
'IT > 개발환경' 카테고리의 다른 글
Ubuntu에서 커맨드로는 괜찮은데 Jenkins에서만 systemctl 명령을 실행하지 못할 때 (1) | 2024.02.16 |
---|---|
teamcity 에서 .node log 한글 깨짐 해결방법 (0) | 2023.08.22 |
윈도우에서 git 명령어 사용시 fatal: credential-cache unavailable; no unix socket support 오류 해결 (0) | 2023.07.27 |
윈도우에서 git 명령어 사용시 fatal: credential-cache unavailable; no unix socket support 오류 해결 (0) | 2023.07.25 |
팀시티에서 git의 특정 경로만 clone하는 방법 (0) | 2023.07.11 |