계정 수정
지정한 계정의 정보를 수정합니다.
필요 권한
관리자 이상의 계정으로 이용할 수 있습니다. 단, 본인 계정의 정보는 역할을 제외하고 본인이 직접 수정할 수 있습니다.
HTTP 요청
PUT /api/sonar/users/:guid
cURL 예시
curl -H "Authorization: Bearer <API_KEY>" \
-d login=jsmith \
-d role_id=2 \
-d name="John Smith" \
-d idle_behavior=lock \
-d idle_timeout=600 \
-d email="john.smith@example.com" \
-X PUT \
https://HOSTNAME/api/sonar/users/bfd00bb0-be99-4fd5-8380-166f544975fa
요청 매개변수
| 키 | 필수 | 타입 | 설명 | 비고 |
|---|---|---|---|---|
| guid | O | 문자열 | 계정 식별자 | 36자 |
| login | O | 문자열 | 로그인 계정 이름 | 최대 255자 |
| role_id | O | 32비트 정수 | 역할 ID | 1, 2, 3 중 하나. 하단 참조 |
| name | O | 문자열 | 사용자 성명 | 최소 1자, 최대 50자 |
| O | 문자열 | 이메일 주소 | 최소 1자, 최대 255자 | |
| password | X | 문자열 | 암호 | 최소 9자, 암호 규칙 준수. 미지정 시 기존 암호 유지 |
| api_key | X | 문자열 | API 키 | 36자 GUID. 미지정 시 기존 API 키 유지 |
| company_guid | X | 문자열 | 회사 GUID | 36자 GUID. 미지정 시 기존 회사 유지 |
| title | X | 문자열 | 직함 | 최대 20자. 미지정 시 기존 값 삭제 |
| dept | X | 문자열 | 부서 | 최대 50자. 미지정 시 기존 값 삭제 |
| phone | X | 문자열 | 내선번호 | 최대 50자. 미지정 시 기존 값 삭제 |
| mobile | X | 문자열 | 휴대번호 | 최대 50자. 미지정 시 기존 값 삭제 |
| locale | X | 문자열 | 언어 | en 혹은 ko. 미지정 시 세션 로케일 적용 |
| home_menu_id | X | 32비트 정수 | 첫페이지 메뉴 ID | 미지정 시 기존 값 삭제 |
| ticket_repos | X | 문자열 목록 | 티켓 분류 GUID 목록 | 쉼표(,)로 구분. 미지정 시 기존 값 삭제 |
| readable_tables | X | 문자열 목록 | 읽기 허용 테이블 이름 목록 | 쉼표(,)로 구분. 미지정 시 기존 값 삭제 |
| user_group_guids | X | 문자열 목록 | 계정 그룹 식별자 목록 | 쉼표(,)로 구분. 미지정 시 기존 값 삭제 |
| trust_hosts | X | 문자열 목록 | 접속 허용 IP | 쉼표(,)로 구분. 미지정 시 기존 값 삭제 |
| idle_behavior | X | 문자열 | 세션 유휴 동작 | lock 또는 logout. 미지정 시 기존 값 삭제 |
| idle_timeout | X | 32비트 정수 | 세션 유휴 기준 시간 (초) | 최소 60, 최대 604800. 기본값 600 |
| password_expiration | X | 32비트 정수 | 암호 만료 기준 일자 | 시스템 기본값 -1, 무제한 0, 최소 7, 최대 3650 |
| login_lock_count | X | 32비트 정수 | 로그인 잠금 기준 횟수 | 최소 0, 최대 5. 기본값 5 |
| login_lock_interval | X | 32비트 정수 | 로그인 잠금 유지 시간 (분) | 최소 1, 최대 100000000, 기본값 10 |
| auth_mode | X | 32비트 정수 | 인증 모드 | 모든 인증 방식 시도 0, 외부 인증 전용 1. 기본값 0 |
역할 ID
- (1) 클러스터 관리자: 클러스터 설정을 포함한 모든 관리 권한 부여
- (2) 회사 관리자: 테넌트에 한정된 관리 권한 부여
- (3) 사용자: 대시보드, 위젯, 데이터셋, 티켓과 같은 사용자 객체 편집과 조회성 작업 권한
암호 규칙
- 최소 9자 이상
- 영문, 숫자, 특수문자 혼합
- 3자 이상 연속되는 동일 문자는 허용하지 않음
정상 응답
{}
오류 응답
필수 매개변수가 누락된 경우
HTTP 상태 코드 400 응답
{
"error_code": "null-argument",
"error_msg": "login should be not null"
}
매개변수 값의 길이가 잘못된 경우
HTTP 상태 코드 400 응답
{
"error_code": "invalid-argument",
"error_msg": "'login' must be shorter than or equal to 255 characters."
}
계정 식별자가 GUID 형식이 아닌 경우
HTTP 상태 코드 400 응답
{
"error_code": "invalid-param-type",
"error_msg": "guid should be guid type."
}
로그인 계정 이름이 중복된 경우
HTTP 상태 코드 500 응답
{
"error_code": "illegal-state",
"error_msg": "duplicate-login"
}
이메일 형식이 잘못된 경우
HTTP 상태 코드 400 응답
{
"error_code": "invalid-argument",
"error_msg": "'email' parameter is not a valid email address: foo"
}
암호 인증 모드에서 암호가 누락된 경우
HTTP 상태 코드 400 응답. auth_mode를 지정하지 않았거나 0인 경우 암호를 지정해야 합니다.
{
"error_code": "null-argument",
"error_msg": "password should be not null"
}
암호 복잡도가 충분하지 않은 경우
HTTP 상태 코드 400 응답. 암호에 로그인 계정 이름을 포함
{
"error_code": "invalid-argument",
"error_msg": "password contains login name"
}
HTTP 상태 코드 400 응답. 암호가 영문자, 숫자, 특수문자의 조합으로 구성되지 않음
{
"error_code": "invalid-argument",
"error_msg": "password should contain digits, alphabets, and special characters"
}
HTTP 상태 코드 400 응답. 암호에 동일 문자가 3회 이상 연속됨
{
"error_code": "invalid-argument",
"error_msg": "password should not repeat same characters"
}
지원하지 않는 언어를 지정한 경우
HTTP 상태 코드 400 응답
{
"error_code": "invalid-argument",
"error_msg": "unsupported locale: ru"
}
존재하지 않는 역할 ID를 지정한 경우
HTTP 상태 코드 500 응답
{
"error_code": "illegal-state",
"error_msg": "unknown role id: 5"
}
존재하지 않는 메뉴 ID를 지정한 경우
HTTP 상태 코드 500 응답
{
"error_code": "illegal-state",
"error_msg": "unknown menu id: 0"
}
정의되지 않은 인증 모드를 지정한 경우
HTTP 상태 코드 400 응답
{
"error_code": "invalid-argument",
"error_msg": "auth_mode should be 0 or 1. input is 2."
}
상위 권한의 계정 변경을 시도한 경우
HTTP 상태 코드 500 응답
{
"error_code": "illegal-state",
"error_msg": "no-permission"
}
자기 자신의 역할을 변경 시도한 경우
HTTP 상태 코드 500 응답
{
"error_code": "illegal-state",
"error_msg": "cannot update role by yourself."
}
존재하지 않거나 접근 불가 그룹을 지정한 경우
HTTP 상태 코드 500 응답
{
"error_code": "illegal-state",
"error_msg": "user group not found: 28c1251b-2f7c-4c58-95a1-fc4a1ead877e"
}