Appearance
1.3 成员和组织架构
织信采用多租户架构,系统中用户分为系统账号 Account、 团队成员 CompanyMember、 应用成员 User 三种。系统账号通过注册或者管理后台添加, 每个Account可加入到多个团队中成为CompanyMember, 每个CompanyMember在团队中可以加入多个应用成为 User。每一个团队成员可以归属于一个或者多个部门 Dept,部门之间也有父子关系。每个部门可以有一个或者多个CompanyMember作为部门负责人。

1.3.1 系统账号
系统账号的来源有以下几个途径
- 用户自行注册
- 系统管理员通过后台添加
- 在脚本中调用
informat.system.addAccount()函数添加
在管理后台可以对系统中的所有账号执行禁用,强制修改密码等操作。系统账号只是登录织信的凭证,在没有加入团队的情况下,在登录系统后不能执行任何操作。
1.3.2 团队成员
系统账号可以加入到多个团队中,在每个团队中CompanyMember会被赋予不同的团队角色,团队角色会关联其可以操作的权限,团队成员可以拥有多个角色。 关于角色权限,请参见角色权限。 每个团队默认会有两个角色
管理员拥有所有权限,可进行应用设计成员只有使用应用的权限在加入团队时也需要设置团队成员所属的
部门 Dept

团队成员的来源有以下几种途径:
- 用户创建账号后,自行创建团队后会将自己加入到团队中并赋予
管理员角色 - 接受邀请后加入团队
- 管理员在管理后台将其加入到团队
- 在脚本中调用
informat.company.addCompanyMember()函数
移除团队成员有以下几种途径:
- 在管理后台移除
- 用户自行退出
- 在脚本中调用
informat.company.deleteCompanyMember()函数
1.3.3 应用成员
团队成员可以加入到多个应用中,在每个应用中User会被赋予不同的应用角色,应用角色会关联其可操作的权限,User可以拥有多个角色。
每个应用默认有一个管理员 admin的角色,拥有所有的权限。

应用成员的来源有以下几种途径:
- 应用管理员将用户加入到应用中
- 应用管理员设置应用的授权方式为
按照角色和部门授权,并且该团队成员的部门或者团队角色属于授权的范围 - 在脚本中调用
informat.user.addUser()函数
移除应用成员有以下几种途径:
- 应用管理员将用户移除
- 如果加入时的授权方式为
按照角色和部门授权,并且该团队成员的部门或者团队角色不属于授权的范围 - 在脚本中调用
informat.user.deleteUser()函数
1.3.4 部门
在每个团队中,都可以构建部门组织架构树,来满足组织架构管理的需求。每个用户都至少需要加入一个部门,在用户信息中,在departmentList中会记录用户所在部门列表。

部门的来源有以下几种途径:
- 团队部署后,以该团队的名称自行创建团队
- 应用管理员将自行创建部门
- 在脚本中调用
informat.dept.addDept()函数
移除部门有以下几种途径:
- 应用管理员将用户移除
- 在脚本中调用
informat.dept.deleteDept()函数

