- Add Workspace domain (entity, repository, service, handler, DTO) - Add multi-tenant K8s client with tenant binding and quota management - Add K8s diagnostics client (instance diagnostics) - Add authorization middleware (authz package) - Restructure frontend to feature-based architecture (features/) - Add User Management page in configuration - Add AccessDenied page and route guards - Refactor shared components (form inputs, layout, UI) - Update Tailwind config for new design system - Add comprehensive documentation (docs/, tasks/, plans) - Improve cluster service with better kubeconfig handling - Add tests for crypto, config, helm client, tenant binding
82 lines
3.4 KiB
Go
82 lines
3.4 KiB
Go
package dto
|
|
|
|
// RegisterRequest 用户注册请求
|
|
type RegisterRequest struct {
|
|
Username string `json:"username" binding:"required"`
|
|
Password string `json:"password" binding:"required,min=6"`
|
|
Role string `json:"role,omitempty"`
|
|
WorkspaceID string `json:"workspaceId,omitempty"`
|
|
Namespace string `json:"namespace,omitempty"`
|
|
DefaultClusterID string `json:"defaultClusterId,omitempty"`
|
|
QuotaCPU string `json:"quotaCpu,omitempty"`
|
|
QuotaMemory string `json:"quotaMemory,omitempty"`
|
|
QuotaGPU string `json:"quotaGpu,omitempty"`
|
|
QuotaGPUMem string `json:"quotaGpuMemory,omitempty"`
|
|
IsActive *bool `json:"isActive,omitempty"`
|
|
MustChangePassword *bool `json:"mustChangePassword,omitempty"`
|
|
}
|
|
|
|
// LoginRequest 用户登录请求
|
|
type LoginRequest struct {
|
|
Username string `json:"username" binding:"required"`
|
|
Password string `json:"password" binding:"required"`
|
|
}
|
|
|
|
// RefreshTokenRequest 刷新 Token 请求
|
|
type RefreshTokenRequest struct {
|
|
RefreshToken string `json:"refreshToken" binding:"required"`
|
|
}
|
|
|
|
// AuthResponse 认证响应
|
|
type AuthResponse struct {
|
|
AccessToken string `json:"accessToken"`
|
|
RefreshToken string `json:"refreshToken"`
|
|
UserID string `json:"userId"`
|
|
Username string `json:"username"`
|
|
Role string `json:"role"`
|
|
WorkspaceID string `json:"workspaceId"`
|
|
WorkspaceName string `json:"workspaceName,omitempty"`
|
|
Namespace string `json:"namespace,omitempty"`
|
|
DefaultClusterID string `json:"defaultClusterId,omitempty"`
|
|
QuotaCPU string `json:"quotaCpu,omitempty"`
|
|
QuotaMemory string `json:"quotaMemory,omitempty"`
|
|
QuotaGPU string `json:"quotaGpu,omitempty"`
|
|
QuotaGPUMem string `json:"quotaGpuMemory,omitempty"`
|
|
Permissions []string `json:"permissions,omitempty"`
|
|
PermissionVersion int `json:"permissionVersion"`
|
|
}
|
|
|
|
// UserResponse 用户信息响应
|
|
type UserResponse struct {
|
|
ID string `json:"id"`
|
|
Username string `json:"username"`
|
|
Email string `json:"email"`
|
|
Role string `json:"role"`
|
|
WorkspaceID string `json:"workspaceId"`
|
|
WorkspaceName string `json:"workspaceName,omitempty"`
|
|
Namespace string `json:"namespace,omitempty"`
|
|
DefaultClusterID string `json:"defaultClusterId,omitempty"`
|
|
QuotaCPU string `json:"quotaCpu,omitempty"`
|
|
QuotaMemory string `json:"quotaMemory,omitempty"`
|
|
QuotaGPU string `json:"quotaGpu,omitempty"`
|
|
QuotaGPUMem string `json:"quotaGpuMemory,omitempty"`
|
|
IsActive bool `json:"isActive"`
|
|
MustChangePassword bool `json:"mustChangePassword"`
|
|
CreatedAt string `json:"createdAt"`
|
|
UpdatedAt string `json:"updatedAt"`
|
|
}
|
|
|
|
// UpdateUserRequest 管理员更新用户状态/角色请求
|
|
type UpdateUserRequest struct {
|
|
Role string `json:"role,omitempty"`
|
|
WorkspaceID string `json:"workspaceId,omitempty"`
|
|
Namespace string `json:"namespace,omitempty"`
|
|
DefaultClusterID string `json:"defaultClusterId,omitempty"`
|
|
QuotaCPU string `json:"quotaCpu,omitempty"`
|
|
QuotaMemory string `json:"quotaMemory,omitempty"`
|
|
QuotaGPU string `json:"quotaGpu,omitempty"`
|
|
QuotaGPUMem string `json:"quotaGpuMemory,omitempty"`
|
|
IsActive *bool `json:"isActive,omitempty"`
|
|
MustChangePassword *bool `json:"mustChangePassword,omitempty"`
|
|
}
|