사용자 관리

사용자를 관리하기 위한 API 입니다.

사용하는 HTTP 메소드(Method) 종류와 용도는 다음과 같습니다.

  • POST : 새로 만들기
  • GET : 얻어오기
  • PUT : 수정하기
  • DELETE : 제거하기

사용자 인증 (User Authentication)

HTTP Basic / Digest 인증을 사용합니다. 사용자는 시스템 설정 권한이 있어야 합니다.

HTTP Basic / Digest authentication is required. The user must have permission to configure system.

사용자 속성

이름형식설명
id정수사용자 ID
name문자열사용자 이름
password문자열사용자 비밀 번호
description문자열설명
permission권한 정보권한 정보

권한 정보

이름형식설명
systems시스템 권한획득한 시스템 권한 목록
cameras카메라 권한카메라 보기/제어 권한 목록

시스템 권한

  • configure : 시스템 설정
  • search : 녹화 자료 검색
  • device : 장치 제어
  • network : 네트웍을 통한 접속
  • backup : 녹화 자료 백업

카메라 권한

  • camera: 카메라 번호 (1 ~ N)
  • view : 보기 권한
  • control : 장치 제어 권한

사용자 목록

GET /api/users

다음은 사용자 목록을 얻어오는 예제입니다.

요청

GET /api/users HTTP/1.1
Host: demo.emstone.com
Authorization: [Basic Authentication]
Content-Type: application/json

응답

HTTP/1.1 200 OK
Content-Type: application/json

{
  "users": [
    {
      "id": 1,
      "name": "admin",
      "description": "Administrator",
      "strict_password": 1,
      "permission": {
        "systems": [ "configure", "network", "device", "search", "backup" ],
        "cameras": [
          { "camera": 1, "view": true, "control": true },
          { "camera": 2, "view": true, "control": true },
          { "camera": 3, "view": true, "control": true },
          { "camera": 4, "view": true, "control": true }
        ]
      }
    },
    {
      "id": 2,
      "name": "guest",
      "description": "Guest",
      "strict_password": 1,
      "permission": {
        "systems": [ "network" ],
        "cameras": [
          { "camera": 1, "view": true, "control": false },
          { "camera": 2, "view": true, "control": false },
          { "camera": 3, "view": true, "control": false },
          { "camera": 4, "view": true, "control": false }
        ]
      }
    }
  ]
}

특정 사용자 정보

GET /api/users/:id

다음은 id1 인 사용자 정보를 얻어오는 예제입니다.

요청

GET /api/users/1 HTTP/1.1
Host: demo.emstone.com
Authorization: [Basic Authentication]
Content-Type: application/json

응답

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": 1,
  "name": "admin",
  "description": "Administrator",
  "strict_password": 1,
  "permission": {
    "systems": [ "configure", "network", "device", "search", "backup" ],
    "cameras": [
      { "camera": 1, "view": true, "control": true },
      { "camera": 2, "view": true, "control": true },
      { "camera": 3, "view": true, "control": true },
      { "camera": 4, "view": true, "control": true }
    ]
  }
}

사용자 추가

POST /api/users HTTP/1.1

다음은 namedooly 인 사용자를 추가하는 예제 입니다.

요청

POST /api/users
Host: demo.emstone.com
Authorization: [Basic Authentication]
Content-Type: application/json

{
  "name": "dooly",
  "password": "passwordfordooly",
  "description": "Danosaur Dooly",
  "permission": {
    "systems": [ "network" ],
    "cameras": [
      { "camera": 1, "view": true, "control": false },
      { "camera": 2, "view": true, "control": false },
      { "camera": 3, "view": true, "control": false },
      { "camera": 4, "view": true, "control": false }
    ]
  }
}

응답

HTTP/1.1 201 Created
Content-Type: application/json

{
  "name": "dooly",
  "description": "Danosaur Dooly",
  "strict_password": 1,
  "permission": {
    "systems": [ "network" ],
    "cameras": [
      { "camera": 1, "view": true, "control": false },
      { "camera": 2, "view": true, "control": false },
      { "camera": 3, "view": true, "control": false },
      { "camera": 4, "view": true, "control": false }
    ]
  }
}

사용자 수정

PUT /api/users/:id

다음은 id3 인 사용자의 암호와 설명을 수정하는 예제입니다.

요청

PUT /api/users/3 HTTP/1.1
Host: demo.emstone.com
Authorization: [Basic Authentication]
Content-Type: application/json

{
  "password": "newpassword"
  "description": "Dooly"
}

응답

HTTP/1.1 200 OK
Content-Type: application/json

{
  "name": "dooly",
  "description": "Dooly",
  "strict_password": 1,
  "permission": {
    "systems": [ "network" ],
    "cameras": [
      { "camera": 1, "view": true, "control": false },
      { "camera": 2, "view": true, "control": false },
      { "camera": 3, "view": true, "control": false },
      { "camera": 4, "view": true, "control": false }
    ]
  }
}

사용자 제거

DELETE /api/users/:id

다음은 id3 인 사용자를 제거하는 예제입니다.

요청

DELETE /api/users/3 HTTP/1.1
Host: demo.emstone.com
Authorization: [Basic Authentication]
Content-Type: application/json

응답

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": 3
}