Options
All
  • Public
  • Public/Protected
  • All
Menu

Module user/public-api

Index

Variables

LEVEL_ADMIN: 970 = 970

최고 관리자 사용자 등급 번호

see

http://imrbiz.co.kr/documents/users/user-defaults.html

LEVEL_HYPER: 990 = 990

전산 개발자 사용자 등급 번호

see

http://imrbiz.co.kr/documents/users/user-defaults.html

LEVEL_ROOT: 980 = LEVEL_SUPER

전역 관리자 사용자 등급 번호

see

http://imrbiz.co.kr/documents/users/user-defaults.html

LEVEL_SUPER: 980 = 980

전역 관리자 사용자 등급 번호

see

http://imrbiz.co.kr/documents/users/user-defaults.html

Functions

  • 사용자 계정 객체를 최적화

    description
    • permissions 속성 보정
      • 문자열 일 때 보정
      • 빈 문자열 항목 확인
      • 등급과 계정의 권한을 통합
        • 원본 originPermissions 을 저장
    • files 속성 보정
    • values 속성 보정

    Parameters

    Returns GetUserAccount

  • 사용자 등급 개체를 최적화

    description
    • permissions 속성 보정

    Parameters

    Returns Partial<GetUserLevel>

  • fixPermissionProperty(permissions: undefined | null | string | string[]): string[]
  • 권한 속성을 안전하게 변환

    description
    • 정의되지 않았을 때 빈 배열 반환
    • 문자열 일때 배열로 반환
    • 문자열이나 빈 문자열일 때 빈 배열 반환

    Parameters

    • permissions: undefined | null | string | string[]

    Returns string[]

  • getLevelNumber(level: undefined | string | number | Partial<GetUserLevel>): number
  • 등급 상수로 부터 등급 번호 반환

    description

    등급 상수 hyper, super 등에 대해 등급 번호를 반환 등급 상수가 아닌 경우 0 반환

    author

    ksm@imrbiz.co.kr

    Parameters

    Returns number

  • isLevel(level: string | number): boolean
  • 값이 등급 번호나, 등급 상수 인지 검사

    author

    ksm@imrbiz.co.kr

    Parameters

    • level: string | number

    Returns boolean

  • isPermit(account: GetUserAccount, requireConditions: (string | number)[], cache?: Record<string, boolean>): boolean
  • 등급 및 경로 권한 검증

    author

    ksm@imrbiz.co.kr

    example

    일반:

    // 등급 확인
    isPermit({level: 1}, [1])
    isPermit({level: 1}, ['1'])
    isPermit({level: 1}, ['admin'])
    isPermit({level: 1}, ['super'])
    isPermit({level: 1}, ['hyper'])

    // 경로 확인
    isPermit({permissions:['foo']}, ['foo']}

    // And 조건
    isPermit({permissions: ['foo', 'bar']}, ['foo', 'bar']}

    // Or 조건
    isPermit({permissions: ['foo', 'bar']}, ['foo, bar']}

    캐시:

    const permitCache = {};

    // 넘겨진 권한 배열에서 권한을 검사
    isPermit({permissions: 'foo'}, ['foo'], permitCache);

    // 이전에 검사한 결과를 그대로 반환
    // 사용자 정보가 변경 되었을 때 초기화 필요
    isPermit({permissions: 'foo'}, ['foo'], permitCache);

    Parameters

    • account: GetUserAccount

      level, permissions를 포함하는 사용자 계정 객체

    • requireConditions: (string | number)[]

      검증 조건

    • cache: Record<string, boolean> = {}

      캐시 객체

    Returns boolean

  • isPermitLevel(level: undefined | number | Partial<GetUserLevel>, requireLevel: string | number): boolean
  • 등급 권한 검증

    author

    ksm@imrbiz.co.kr

    Parameters

    • level: undefined | number | Partial<GetUserLevel>
    • requireLevel: string | number

    Returns boolean

  • 권한 경로 구조에 의해 하위로 들여진 구초로 변환

    description

    변환 전:

    [
    {"id": "foo"},
    {"path": "foo/bar"}
    ]

    변환 후:

    [
    {
    "id": "foo",
    "children": [
    {"id": "foo/bar"}
    ]
    }
    ]

    Parameters

    Returns NestedUserPermission[]

Generated using TypeDoc