Options
All
  • Public
  • Public/Protected
  • All
Menu

Module context

Index

Functions

bindMasterSession

  • bindMasterSession(masterToken: string): void
  • 将当前会话绑定到指定会话上, 需要满足如下条件才能绑定:

    1. 当前会话所属租户为指定会话所属租户的子租户

    2. 当前会话和父租户会话都不必须要是业务用户的会话

    3. 当会话已经绑定了一个父租户会话时,无法再绑定一个新的会话

    当会话绑定后有如下特性:

    1. 当前会话的使用会延长当前会话的有效期和被绑定的父租户会话的有效期

    2. 绑定是单向的, 父租户的使用不会延长子租户的会话有效期, 且父租户会话失效会导致子租户会话失效。 但子租户失效不会影响到父租户会话的使用。

    Parameters

    • masterToken: string

      父租户上的会话 token

    Returns void

delSessionValue

  • delSessionValue(): void
  • 清空用户会话级别的缓存键值对。

    Returns void

deleteLocalValue

  • deleteLocalValue(key: string): void
  • 删除请求上下变量

    Parameters

    • key: string

      变量名

    Returns void

expirePortalUserSession

  • expirePortalUserSession(username: string): void
  • 失效指定用户的所有会话, 只支持业务用户

    example
    import * as context from 'context';
    
    let username = "从入参中或者其他地方获取需要失效会话的业务用户名";
    console.log(context.expirePortalUserSession(username));
    

    Parameters

    • username: string

      业务用户名

    Returns void

getClient

  • getClient(): string
  • 获取请求客户端的ip地址信息。获取原则:

    1. 从http header中的X-Forwarded-For, X-Real-Ip的设置值中获取。
    2. 如果1没有获取到,则直接返回request中的remote address, 这个值因为会经过中间代理如nginx转发,已经不是原始的客户端的ip地址了。

    Returns string

getError

  • 获取当前执行上下文中的错误信息。

    deprecated

    接口已经标识在未来版本弃用.

    Returns Error

getExtDataFilters

  • getExtDataFilters(): Dict
  • 从会话级缓存中获取外部的数据过滤器信息。

    Returns Dict

getExtPermissions

  • getExtPermissions(): Dict
  • 从会话级别的缓存中获取外部业务的权限信息。

    {"customAPI1": true, "customAPI2": false}

    Returns Dict

getHost

  • getHost(): string
  • 获取服务的url信息,因为安全问题,此处固定返回值:http://localhost, 以保证能调用本服务节点的restful api。

    Returns string

getHttp

  • 获取http信息。

    Returns Http

getHttpBody

  • getHttpBody(): any
  • 获取http请求的body信息。

    deprecated

    接口已经标识在未来版本弃用, 请使用getHttp().request.body

    Returns any

getHttpHeader

  • 获取http请求的header信息。

    deprecated

    接口已经标识在未来版本弃用, 请使用getHttp().request.header

    Returns Header

getHttpPathVars

  • getHttpPathVars(): Dict
  • 获取http请求的路径参数对

    deprecated

    接口已经标识在未来版本弃用, 请使用getHttp().request.pathVars

    Returns Dict

getLocalValue

  • getLocalValue(key: string): string | null
  • 获取请求上下文变量

    Parameters

    • key: string

      变量名

    Returns string | null

    变量值,如果变量名不存在,返回undefined

getLocale

  • getLocale(): string
  • 获取登录用户的的locale信息。

    Returns string

getLogLevel

  • 获取脚本console.log的日志打印级别

    Returns LogLevel

getOrganizationTimeZone

  • 获取租户的组织时区索引值。

    Returns TimeZones

getRequestType

  • 获取脚本执行触发请求类型

    Returns RequestType

getRole

  • getRole(): string
  • 获取登录用户的role信息。

    Returns string

getSessionValue

  • getSessionValue(keys: string[]): Dict
  • 依据输入的key列表,获取会话级别的session键值对。

    Parameters

    • keys: string[]

      需要查询的key列表。

    Returns Dict

getTenantId

  • getTenantId(): string
  • 获取用户归档租户的id。

    Returns string

getTenantName

  • getTenantName(): string
  • 获取用户归档租户的名称。

    Returns string

getThirdPartyToken

  • getThirdPartyToken(): string
  • 当用户是使用同一身份认证功能对接的第三方系统登录时,获取登录用户的外部系统的token。

    Returns string

getTimeZone

  • 获取登录用户的时区索引值。

    Returns TimeZones

getTimedTaskId

  • getTimedTaskId(): string
  • 获取定时任务id, 用于定时任务触发的脚本流程中。

    Returns string

getToken

  • getToken(): string
  • 获取登录用户的access token。

    Returns string

getTypedSessionValue

  • getTypedSessionValue(keys: string[]): Dict
  • 依据输入的key列表,获取会话级别的session键值对。 需要与 {@link setSessionValueExt} 一起使用, 主要区别在与保留了字段的类型

    Parameters

    • keys: string[]

      需要查询的key列表。

    Returns Dict

getUserId

  • getUserId(): string
  • 获取登录用户的id。

    Returns string

getUserName

  • getUserName(): string
  • 获取登录用户的名称。

    Returns string

getUserSessionList

  • 获取用户会话列表, 只支持业务用户

    Returns Session[]

getUserType

  • 获取登录用户类型。

    Returns UserType

kickOut

  • kickOut(): void
  • 踢出当前用户的所有其他会话, 只支持业务用户

    example
    import * as context from 'context';
    
    console.log(context.kickOut());
    

    Returns void

localKeys

  • localKeys(): string[]
  • 获取请求上下变量名列表

    Returns string[]

login

  • 业务用户登录

    调用此接口后成功后, 上下文信息和权限都会变成新登录用户(继承业务权限)。

    example
    import * as context from 'context';
    import * as date from 'date';
    
    let username = "从入参中获取用户名";
    let password = "从入参中获取用户密码";
    
    console.log(context.login(username, {
        noCookie: true,
        timezone: date.TimeZones.AfricaAlgiers,
        locale: context.Locale.En_US,
        password: password
    }));
    console.log(context.getLocale());
    console.log(context.getTimeZone());
    console.log(context.getUserName());
    

    Parameters

    • username: string

      业务用户名

    • Optional opt: LoginOption

      登录可选参数

    Returns LoginResult

logout

  • 登出指定会话, 只能登出相同租户的会话

    example
    import * as context from 'context';
    
    let token = "从入参或者其他地方获取";
    console.log(context.logout({ token: token }));
    

    Parameters

    Returns void

setError

  • setError(name: string, message: string): void
  • 设置响应的错误信息。

    deprecated

    接口已经标识在未来版本弃用, 请使用error.Error

    Parameters

    • name: string
    • message: string

    Returns void

setExtDataFilters

  • setExtDataFilters(dataFilters: Dict): void
  • 设置外部的数据过滤器转会话级缓存中。

    数据过滤器的键是维度变量的名称,数据过滤器的值代表当前用户可以访问的范围。

    数据过滤器格式:

    { "DEPARTMENT":"HR|IT|DEVELOPMENT", "COUNTRY":"China" }
    

    Parameters

    • dataFilters: Dict

      数据过滤器

    Returns void

setExtPermissions

  • setExtPermissions(permissions: Dict): void
  • 设置外部业务权限信息到会话级别的缓存中。

    Parameters

    • permissions: Dict

      权限数据键值对

    Returns void

setHttpHeader

  • setHttpHeader(key: string, value: string): void
  • 设置http请求的响应的header值。

    deprecated

    接口已经标识在未来版本弃用, 请使用getHttp().response.setHeader

    Parameters

    • key: string

      header key

    • value: string

      header value

    Returns void

setHttpStatus

  • setHttpStatus(code: number): void
  • 设置请求的http的响应状态码, http状态码, 必须是一个有效的HTTP 1xx-5xx状态码

    deprecated

    接口已经标识在未来版本弃用,请使用新的API: getHttp().response.setStatusCode

    Parameters

    • code: number

      http状态码

    Returns void

setI18nError

  • setI18nError(name: string, ...args: any[]): void
  • 设置国际化错误信息。

    deprecated

    接口已经标识在未来版本弃用, 请使用error.I18nError

    Parameters

    • name: string
    • Rest ...args: any[]

    Returns void

setLocalValue

  • setLocalValue(key: string, value: string): void
  • 设置请求上下的变量 只支持string类型的变量,复杂对象,调用者需要自己采用JSON模块来进行序列化与反序列化 如果存放的变量类型不是string类型,不作任何隐式转换,接口抛异常 请求上下文local变量总大小限制默认为1MB,key的总大小也限制默认为1MB;如需要修改,请联系管理员配置 变量个数限制默认为1000个;如需要修改,请联系管理员配置

    Parameters

    • key: string

      变量名

    • value: string

      变量值

    Returns void

setLocale

  • setLocale(locale: Locale): void
  • 更新会话语言信息, 如果传入的语言信息不支持,则报错

    Parameters

    • locale: Locale

      语言信息,目前支持 zh_CN|en_US

    Returns void

setLogLevel

  • 设置脚本console.log的日志打印级别

    Parameters

    Returns void

setResponseValue

  • setResponseValue(value: any): void
  • 获取http请求的响应的返回值,一般不用调用此接口。正常情况下,脚本执行完后,会有自己的返回值。

    调用此API的场景:

    • 需要返回特殊类型的值:如二进制文件流等。
    • 需要定制脚本API返回内容的JSON内容。

    特别注意: 如果通过API改变了脚本的返回内容,则AppCube开发studio中脚本调试窗口无法正确处理新的响应值。 输出参数,日志窗口会没有任何响应。

    deprecated

    接口已经标识在未来版本弃用,请使用getHttp().response.setBody

    Parameters

    • value: any

      特殊的响应值

    Returns void

setRole

  • setRole(roleName: string): void
  • 设置登录用户的role信息。

    Parameters

    • roleName: string

      角色名称。

    Returns void

setSessionValue

  • setSessionValue(value: Dict): void
  • 设置会话级级别的缓存键值对。

    Parameters

    • value: Dict

      键值对

    Returns void

setTimeZone

  • 更新会话时区, 如果传入的时区不支持,则报错

    Parameters

    Returns void

setTypedSessionValue

  • setTypedSessionValue(value: Dict): void
  • 设置会话级级别的缓存键值对。 不能与 setSessionValue 一起使用, 主要区别在与保留了字段的类型。

    Parameters

    • value: Dict

      键值对

    Returns void

throwError

  • throwError(name: string, ...args: any[]): void
  • 抛出国际化错误信息。

    deprecated

    接口已经标识在未来版本弃用, 请使用error.I18nError

    Parameters

    • name: string
    • Rest ...args: any[]

    Returns void

verifyToken

  • 校验当前租户 token 有效性, 如果 token 无效则返回 null

    import * as context from 'context';
    
    let token = "从入参获取其他地方获取token";
    console.log(context.verifyToken(token));
    

    Parameters

    • token: string

      会话 token

    Returns TokenVerifyResponse | null