feat(core): TenantContext 新增 department_ids 字段
为行级数据权限做准备,TenantContext 新增 department_ids 字段 存储用户所属部门 ID 列表。当前阶段 JWT 中间件填充为空列表, 待 user_positions 关联表建立后补充查询逻辑。
This commit is contained in:
@@ -52,6 +52,7 @@ pub async fn jwt_auth_middleware_fn(
|
|||||||
user_id: claims.sub,
|
user_id: claims.sub,
|
||||||
roles: claims.roles,
|
roles: claims.roles,
|
||||||
permissions: claims.permissions,
|
permissions: claims.permissions,
|
||||||
|
department_ids: vec![],
|
||||||
};
|
};
|
||||||
|
|
||||||
// Reconstruct the request with the TenantContext injected into extensions.
|
// Reconstruct the request with the TenantContext injected into extensions.
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ mod tests {
|
|||||||
user_id: Uuid::now_v7(),
|
user_id: Uuid::now_v7(),
|
||||||
roles: roles.into_iter().map(String::from).collect(),
|
roles: roles.into_iter().map(String::from).collect(),
|
||||||
permissions: permissions.into_iter().map(String::from).collect(),
|
permissions: permissions.into_iter().map(String::from).collect(),
|
||||||
|
department_ids: vec![],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -113,6 +113,7 @@ mod tests {
|
|||||||
user_id: Uuid::now_v7(),
|
user_id: Uuid::now_v7(),
|
||||||
roles: vec!["admin".to_string()],
|
roles: vec!["admin".to_string()],
|
||||||
permissions: vec!["user.read".to_string()],
|
permissions: vec!["user.read".to_string()],
|
||||||
|
department_ids: vec![],
|
||||||
};
|
};
|
||||||
assert_eq!(ctx.roles.len(), 1);
|
assert_eq!(ctx.roles.len(), 1);
|
||||||
assert_eq!(ctx.permissions.len(), 1);
|
assert_eq!(ctx.permissions.len(), 1);
|
||||||
@@ -154,4 +155,6 @@ pub struct TenantContext {
|
|||||||
pub user_id: Uuid,
|
pub user_id: Uuid,
|
||||||
pub roles: Vec<String>,
|
pub roles: Vec<String>,
|
||||||
pub permissions: Vec<String>,
|
pub permissions: Vec<String>,
|
||||||
|
/// 用户所属部门 ID 列表(行级数据权限使用)
|
||||||
|
pub department_ids: Vec<Uuid>,
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user