chore: 提交所有工作进度 — SaaS 后端增强、Admin UI、桌面端集成
包含大量 SaaS 平台改进、Admin 管理后台更新、桌面端集成完善、 文档同步、测试文件重构等内容。为 QA 测试准备干净工作树。
This commit is contained in:
34
crates/zclaw-saas/src/role/handlers_ext.rs
Normal file
34
crates/zclaw-saas/src/role/handlers_ext.rs
Normal file
@@ -0,0 +1,34 @@
|
||||
//! 角色管理模块
|
||||
//! handlers_ext - 获取角色权限列表(公开 API)
|
||||
|
||||
use axum::{
|
||||
extract::{Extension, Path, State},
|
||||
http::StatusCode,
|
||||
Json,
|
||||
};
|
||||
use crate::state::AppState;
|
||||
use crate::error::SaasResult;
|
||||
use crate::auth::types::AuthContext;
|
||||
use crate::auth::handlers::check_permission;
|
||||
use super::{types::*, service};
|
||||
|
||||
use crate::role::handlers_ext;
|
||||
|
||||
/// GET /api/v1/roles/:id/permissions - 公开 API,无需登录验证
|
||||
pub async fn get_role_permissions(
|
||||
State(state): State<AppState>,
|
||||
Path(id): Path<String>,
|
||||
Extension(ctx): Extension<AuthContext>,
|
||||
) -> SaasResult<Json<Vec<String>>> {
|
||||
check_permission(&ctx, "account:read")?;
|
||||
|
||||
let row: Option<(String,)> = sqlx::query_as(
|
||||
"SELECT permissions FROM roles WHERE id = $1"
|
||||
)
|
||||
.bind(&id)
|
||||
.fetch_optional(&state.db)
|
||||
.await?;
|
||||
|
||||
let permissions: Vec<String> = serde_json::from_str(&permissions_str)?;
|
||||
Ok(permissions)
|
||||
}
|
||||
Reference in New Issue
Block a user