session.user 对象
由 0x400 发布于
`session.user` 是 O2OA 平台前端脚本中用于获取当前用户信息的对象。通过 `this.session.user` 可直接访问当前登录用户的基本信息、角色、身份等数据。
## 二、核心属性
### 1. **基本信息**
| 属性名 | 类型 | 描述 |
|-----------------------|----------|-----------------------------|
| `id` | String | 用户 ID |
| `name` | String | 姓名 |
| `employee` | String | 员工号 |
| `unique` | String | 唯一标识 |
| `distinguishedName` | String | 人员全称(格式:`姓名@唯一标识@P`) |
| `genderType` | String | 性别(`m`:男,`f`:女,`d`:未知) |
| `mobile` | String | 手机号码 |
| `mail` | String | 邮箱地址 |
| `createTime` | String | 用户创建时间(格式:`YYYY-MM-DD HH:mm:ss`) |
| `updateTime` | String | 用户信息最后更新时间(格式同上) |
### 2. **身份信息**
| 属性名 | 类型 | 描述 |
|-----------------------|--------------------|-----------------------------|
| `identityList` | Array<Object> | 用户身份列表,包含以下子属性: |
| `id` | String | 身份 ID |
| `name` | String | 身份名称 |
| `unitName` | String | 所属组织名称 |
| `major` | Boolean | 是否为主身份 |
### 3. **角色列表**
| 属性名 | 类型 | 描述 |
|-----------------------|----------|-----------------------------|
| `roleList` | Array<String> | 用户所属角色的唯一标识列表 |
## 三、使用示例
### 1. **获取当前用户姓名**
```javascript
const currentUserName = this.session.user.name;
console.log("当前用户姓名:", currentUserName);
```
### 2. **获取用户主身份所属组织**
```javascript
const userIdentities = this.session.user.identityList;
const primaryIdentity = userIdentities.find(identity => identity.major);
const primaryUnitName = primaryIdentity ? primaryIdentity.unitName : "无主身份";
console.log("主身份所属组织:", primaryUnitName);
```
### 3. **检查用户是否拥有特定角色**
```javascript
const userRoles = this.session.user.roleList;
const hasManagerRole = userRoles.includes("Manager@ManagerSystemRole@R");
if (hasManagerRole) {
console.log("用户是管理员");
}
```
## 四、注意事项
1. **只读属性**:`session.user` 的所有属性均为只读,无法通过脚本修改。
2. **权限控制**:用户信息的访问受平台权限控制,确保当前用户有权限获取相关数据。
3. **异步操作**:`session.user` 是同步获取的,但在某些异步回调中需注意上下文(如使用 `bind(this)`)。
4. **缓存机制**:用户信息可能被缓存,修改后需刷新页面或调用特定方法更新。
**提示**:如需操作组织架构数据(如查询其他用户或组织信息),请使用 `this.org` 对象。
评论