ServiceUser

ServiceUserServiceLogin으로 가입한 제품 end-user, 곧 회원 계정입니다. Weegloo 플랫폼 계정(콘텐츠 스튜디오에 로그인하는 Weegloo User)과는 별개의 신원이며, ServiceUser의 토큰은 ACMA/ACDA에 인증됩니다.

ServiceUser는 회원이 ServiceLogin으로 직접 가입할 때 만들어집니다. 그래서 이 API에는 생성 엔드포인트가 없고, 조회와 관리자(Weegloo User)에 의한 일부 수정만 있습니다.

리소스 구조

다음은 ServiceUser 한 명의 단일 조회 응답입니다. sys(시스템 속성)와 함께, 회원 표시 정보와 권한 설정을 담는 본문 속성 nickname·avatarUrl·roleOverride·enableLogin을 가집니다.

{
  "sys": {
    "id": "3trmXRM3RqbgSnifyg7PSusr01Ex",
    "type": "ServiceUser",
    "space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
    "provider": "google",
    "email": "buyer@example.com",
    "createdAt": "2026-06-18T12:50:00.000Z",
    "updatedAt": "2026-06-18T12:50:00.000Z"
  },
  "nickname": "단골손님",
  "avatarUrl": "https://lh3.example.com/a/buyer-avatar",
  "roleOverride": null,
  "enableLogin": true
}

주요 키:

  • sys.email: 회원이 가입에 쓴 이메일 주소입니다. sys.provider와 함께 어떤 계정으로 가입했는지를 나타냅니다.
  • sys.provider: 가입에 쓴 OAuth 제공자입니다(예: google).
  • roleOverride: 이 회원에게만 다른 ServiceUserRole을 줄 때 넣는 Refer입니다. 비어 있으면(null) ServiceLogin의 기본 역할을 따릅니다.

시스템 속성 (sys)

모든 ServiceUser는 공통 시스템 속성을 sys 객체에 담습니다. spaceRefer 모양({ "sys": { "id", "type": "Refer", "targetType" } })으로 들어갑니다.

속성타입설명
idstring리소스 고유 식별자.
typestring리소스 종류. ServiceUser는 항상 "ServiceUser".
spaceRefer<Space>ServiceUser가 속한 Space.
providerstring가입에 쓴 OAuth 제공자 (예: google).
emailstring가입에 쓴 이메일 주소.
createdAtstring (date-time)가입(생성) 시각.
updatedAtstring (date-time)마지막 수정 시각.

ServiceUser는 회원이 자기 가입으로 만드는 리소스라, 다른 CMA 리소스와 달리 syscreatedBy·updatedBy·version이 없습니다. version이 없으므로 수정(PUT·PATCH)에도 X-Weegloo-Version 헤더를 보내지 않습니다. 발행 개념도 없어 publish·archive·status도 없습니다.

본문 속성

속성타입설명
nicknamestring회원 표시 이름.
avatarUrlstring프로필 이미지 주소 (선택).
roleOverrideRefer<ServiceUserRole>이 회원에게만 줄 ServiceUserRole (선택). 지정하면 ServiceLogin의 기본 역할보다 우선합니다.
enableLoginboolean로그인 허용 여부. 끄면 이 회원의 로그인을 막습니다.

회원 관리

ServiceUser는 가입으로 생깁니다. 관리자(Weegloo User)가 수정(PUT·PATCH)으로 조정할 수 있는 것은 다음 두 가지입니다.

  • roleOverride 지정/해제: 특정 회원에게만 다른 ServiceUserRole을 줍니다. 유료 등급, 모더레이터, 베타 그룹처럼 한 회원만 다르게 대우할 때 씁니다. 지정한 roleOverrideServiceLogindefaultRole보다 우선합니다.
  • enableLogin 토글: 끄면 그 회원의 로그인을 막습니다.

회원을 명단에서 내보내는 일은 콘텐츠 스튜디오에서 합니다. 절차와 함께 지워지는 것은 서비스 회원 관리하기에서 다룹니다.

한 회원에게 다른 회원이 만든 리소스까지 다루게 하려면, 그 권한을 담은 ServiceUserRole을 따로 만들어 그 회원의 roleOverride에 지정합니다. 회원이 무엇에 접근하는지는 그 회원에게 적용되는 ServiceUserRole이 정합니다. 규칙의 createdBy 필터를 :self로 걸면 그 액션은 자기가 만든 것만 대상으로 삼고, 필터를 걸지 않으면 다른 회원이 만든 것까지 대상으로 삼습니다. 두 역할을 나눠 만드는 방법은 ServiceUserRole에서 다룹니다.

API

아래 모든 엔드포인트의 기준 URL은 https://cma.weegloo.com/v1이며, Authorization 헤더에 CMA를 인증하는 Bearer 토큰이 필요합니다. ServiceUserversion이 없는 리소스라 수정(PUT·PATCH)에도 X-Weegloo-Version 헤더를 보내지 않습니다. 생성 엔드포인트는 없습니다(가입으로 생성).

목록 조회를 sys.email로 걸러낼 때는 정확 일치 계열 연산자만 씁니다(eq·ne·in·nin). 회원의 주소는 암호화되어 저장되므로 그 표현 위에서는 같은지 다른지만 판정할 수 있고, prefix나 순서 비교는 오류 없이 0건을 돌려줍니다. 주소로 회원을 찾았는데 결과가 비어 있으면 연산자를 먼저 확인하세요. 주소 일부로 찾는 검색은 이 필터로 대신할 수 없습니다.