什么是业务用户
AppCube平台存在两类用户:用户(User)和业务用户(PortalUser)。
● 用户(User)也可以称为平台用户,是指访问AppCube的开发者帐号,用来管理 应用和业务用户。购买AppCube的帐号默认拥有所有权限,是管理员用户,可添 加其他用户帐号并为其配置需要的权限。
● 业务用户(PortalUser)是访问在AppCube中开发的一个业务应用的用户帐号。
当一个项目使用了AppCube提供的业务服务功能,而业务用户是用这个项目注册 的帐号来开通试用业务系统的,并不是直接注册AppCube的帐号,这种用户即是 AppCube的业务用户。
例如,在AppCube中注册了帐号“A”,并使用帐号“A”在AppCube中开发了一个应 用“X”。帐号“B”是通过应用“X”注册的帐号,并登录使用应用“X”。这种情况 下,帐号“A”是管理员用户(User),帐号“B”是业务用户(PortalUser)。
图1-1 用户类型
业务用户拥有哪些能力
● 业务用户可以根据权限访问应用、查看导航条菜单。
● 业务用户可以根据权限查看应用的页面布局。
在AppCube中新添加的业务用户,若没有配置指定的权限,默认使用系统预置的Portal User Profile权限。若业务用户需要额外的权限,需要对业务用户进行权限的配置,具体操作请参见如
3. 将鼠标放在“Script”上,单击界面上出现的“+”,在弹出菜单中选择“脚 本”。
4. 在弹窗中,选中“创建一个新脚本”,在“名称”文本框中输入
“registerPortalUser”,单击“添加”。
5. 在代码编辑器中插入如下脚本代码。
import * as buffer from "buffer";
import * as crypto from "crypto";
import * as db from "db";
//定义入参结构,注册帐号的用户名、密码为必填字段。若根据业务需要,需其他注册帐号的字段,则根据
portalUser表字段按入参格式进行新增即可。
//表字段格式参考portalUser表,代码入参格式参考下方:username入参格式。
@action.object({ type: "param" }) export class ActionInput {
@action.param({ type: 'String', required: true, label: 'string' }) username: string;
@action.param({ type: 'String', required: true, label: 'string' }) password: string;
}//定义出参结构,若根据业务需要,出参结构包含多个字段,根据已有格式添加其他字段即可
@action.object({ type: "param" }) export class ActionOutput { @action.param({ type: 'String' }) msg: string;
}//使用数据对象PortalUser
@useObject(['PortalUser'])
@action.object({ type: "method" })
export class RegisterPortalUser { //定义接口类,接口的入参为ActionInput,出参为ActionOutput @action.method({ input: 'ActionInput', output: 'ActionOutput' })
public registerPortalUser(input: ActionInput): ActionOutput {
let out = new ActionOutput(); //新建出参ActionOutput类型的实例,作pu为返回值
}function _salt(password: string, saltBuf: buffer.Buffer, encoding: buffer.Encoding = buffer.Encoding.Base64): string {
const passwordBuf = buffer.from(password)
const crypt = crypto.pbkdf2(passwordBuf, saltBuf, 1000, 32, crypto.Hashs.SHA1) return crypt.toString(encoding)
}function salt(password: string, encoding: buffer.Encoding = buffer.Encoding.Base64): object { const saltBuf = crypto.randomBytes(6)
const saltedPassword = _salt(password, saltBuf, encoding) return {
salt: saltBuf.toString(encoding), saltedPassword: saltedPassword }
}
注意
在使用业务用户时,为了保证数据安全,用户密码要自行加密,以密文形式进行 存储。示例代码可参考上述代码。
6. 单击编辑器上方 ,保存脚本。
7. 测试脚本能否正常执行。
a. 单击编辑器上方 ,执行脚本。
b. 在界面底部输入测试数据,单击测试窗口右上角执行图标。
{ "username": "test_cs", "password": "******"
}
其中,******为test_cs业务用户对应的密码。执行完成后,在“输出”页签会 返回查询结果。返回结果如图1-3所示,表明“test_cs”业务用户注册成功。
图1-3 返回结果
8. 单击编辑器上方 ,启用脚本。
在“管理 > 用户 > 业务用户”中,可查看已添加的业务用户。
图1-4 查看已添加的业务用户