diff --git a/backend/internal/database/database.go b/backend/internal/database/database.go index 96a0f8f..9ad9555 100644 --- a/backend/internal/database/database.go +++ b/backend/internal/database/database.go @@ -308,7 +308,7 @@ func initData() { Username: "dev", Email: &devEmail, Password: string(hashedPassword), - Role: "developer", + Role: "admin", Status: "active", } DB.Create(&devUser) @@ -324,7 +324,7 @@ func initData() { Username: "agent", Email: &agentEmail, Password: string(hashedPassword), - Role: "developer", + Role: "agent", Status: "active", } DB.Create(&agentUser) @@ -678,7 +678,7 @@ func initTicketData() { Username: "dev", Email: &devEmail, Password: string(hashedPassword), - Role: "developer", + Role: "admin", Status: "active", } DB.Create(&devUser) diff --git a/backend/internal/middleware/middleware.go b/backend/internal/middleware/middleware.go index d99c49c..fb5c062 100644 --- a/backend/internal/middleware/middleware.go +++ b/backend/internal/middleware/middleware.go @@ -114,7 +114,7 @@ func AdminAuth() gin.HandlerFunc { } } -// DeveloperAuth 开发者权限中间件 +// DeveloperAuth 开发者权限中间件(管理员即开发者) func DeveloperAuth() gin.HandlerFunc { return func(c *gin.Context) { role, exists := c.Get("role") @@ -124,8 +124,8 @@ func DeveloperAuth() gin.HandlerFunc { return } - if role != "developer" && role != "admin" { - response.Error(c, http.StatusForbidden, "Developer access required") + if role != "admin" { + response.Error(c, http.StatusForbidden, "Admin access required") c.Abort() return } diff --git a/backend/internal/model/models.go b/backend/internal/model/models.go index fdcde6c..867c815 100644 --- a/backend/internal/model/models.go +++ b/backend/internal/model/models.go @@ -6,7 +6,7 @@ import ( "gorm.io/gorm" ) -// User 平台用户模型(开发者、管理员) +// User 平台用户模型(管理员、代理商) type User struct { ID uint `gorm:"primaryKey" json:"id"` Username string `gorm:"uniqueIndex;size:50" json:"username"` diff --git a/backend/internal/router/developer/agent_apps.go b/backend/internal/router/developer/agent_apps.go index 7ef8bbd..88180b3 100644 --- a/backend/internal/router/developer/agent_apps.go +++ b/backend/internal/router/developer/agent_apps.go @@ -362,8 +362,8 @@ func handleInviteAgent(c *gin.Context) { response.Error(c, 404, "开发者不存在") return } - if agent.Role != "developer" { - response.Error(c, 400, "该用户不是开发者") + if agent.Role != "agent" { + response.Error(c, 400, "该用户不是代理商") return } @@ -421,8 +421,8 @@ func handleRequestAuthorization(c *gin.Context) { response.Error(c, 404, "开发者不存在") return } - if developer.Role != "developer" { - response.Error(c, 400, "该用户不是开发者") + if developer.Role != "admin" { + response.Error(c, 400, "该用户不是管理员") return } diff --git a/backend/internal/router/developer/agents.go b/backend/internal/router/developer/agents.go index 7db43a6..c8c78fd 100644 --- a/backend/internal/router/developer/agents.go +++ b/backend/internal/router/developer/agents.go @@ -47,7 +47,7 @@ type AgentTreeNode struct { func handleGetAgents(c *gin.Context) { var users []model.User - if err := database.DB.Where("role = ?", "admin"). + if err := database.DB.Where("role = ?", "agent"). Preload("ParentAgent"). Order("created_at DESC"). Find(&users).Error; err != nil { @@ -123,7 +123,7 @@ func handleGetAgents(c *gin.Context) { func handleGetAgentsTree(c *gin.Context) { var users []model.User - if err := database.DB.Where("role = ?", "admin"). + if err := database.DB.Where("role = ?", "agent"). Preload("ParentAgent"). Order("created_at DESC"). Find(&users).Error; err != nil { @@ -239,7 +239,7 @@ func handleCreateAgent(c *gin.Context) { if req.ParentAgentID != nil { var parentAgent model.User - if err := database.DB.Where("id = ? AND role = ?", *req.ParentAgentID, "admin").First(&parentAgent).Error; err != nil { + if err := database.DB.Where("id = ? AND role = ?", *req.ParentAgentID, "agent").First(&parentAgent).Error; err != nil { response.Error(c, 404, "上级代理不存在") return } @@ -283,7 +283,7 @@ func handleGetAgentDetail(c *gin.Context) { agentID := c.Param("id") var user model.User - if err := database.DB.Where("id = ? AND role = ?", agentID, "admin"). + if err := database.DB.Where("id = ? AND role = ?", agentID, "agent"). Preload("ParentAgent"). First(&user).Error; err != nil { response.Error(c, 404, "代理不存在") @@ -378,7 +378,7 @@ func handleUpdateAgent(c *gin.Context) { agentID := c.Param("id") var user model.User - if err := database.DB.Where("id = ? AND role = ?", agentID, "admin").First(&user).Error; err != nil { + if err := database.DB.Where("id = ? AND role = ?", agentID, "agent").First(&user).Error; err != nil { response.Error(c, 404, "代理不存在") return } @@ -402,7 +402,7 @@ func handleUpdateAgent(c *gin.Context) { return } var parentAgent model.User - if err := database.DB.Where("id = ? AND role = ?", *req.ParentAgentID, "admin").First(&parentAgent).Error; err != nil { + if err := database.DB.Where("id = ? AND role = ?", *req.ParentAgentID, "agent").First(&parentAgent).Error; err != nil { response.Error(c, 404, "上级代理不存在") return } @@ -446,7 +446,7 @@ func handleUpdateAgentStatus(c *gin.Context) { agentID := c.Param("id") var user model.User - if err := database.DB.Where("id = ? AND role = ?", agentID, "admin").First(&user).Error; err != nil { + if err := database.DB.Where("id = ? AND role = ?", agentID, "agent").First(&user).Error; err != nil { response.Error(c, 404, "代理不存在") return } @@ -477,7 +477,7 @@ func handleDeleteAgent(c *gin.Context) { agentID := c.Param("id") var user model.User - if err := database.DB.Where("id = ? AND role = ?", agentID, "developer").First(&user).Error; err != nil { + if err := database.DB.Where("id = ? AND role = ?", agentID, "agent").First(&user).Error; err != nil { response.Error(c, 404, "代理不存在") return } @@ -500,7 +500,7 @@ func handleGetAgentCards(c *gin.Context) { agentID := c.Param("id") var user model.User - if err := database.DB.Where("id = ? AND role = ?", agentID, "developer").First(&user).Error; err != nil { + if err := database.DB.Where("id = ? AND role = ?", agentID, "agent").First(&user).Error; err != nil { response.Error(c, 404, "代理不存在") return } @@ -557,7 +557,7 @@ func handleUpdateAgentCards(c *gin.Context) { agentID := c.Param("id") var user model.User - if err := database.DB.Where("id = ? AND role = ?", agentID, "developer").First(&user).Error; err != nil { + if err := database.DB.Where("id = ? AND role = ?", agentID, "agent").First(&user).Error; err != nil { response.Error(c, 404, "代理不存在") return } diff --git a/backend/internal/router/developer/cloud.go b/backend/internal/router/developer/cloud.go index 775429f..2bc94d8 100644 --- a/backend/internal/router/developer/cloud.go +++ b/backend/internal/router/developer/cloud.go @@ -419,8 +419,8 @@ func handleCreateCloudVariable(c *gin.Context) { req.Scope = "app" } - if req.WritePermission != "developer" && req.WritePermission != "user" && req.WritePermission != "app_user" { - req.WritePermission = "developer" + if req.WritePermission != "admin" && req.WritePermission != "user" && req.WritePermission != "app_user" { + req.WritePermission = "admin" } if req.Status != "active" && req.Status != "inactive" { @@ -489,7 +489,7 @@ func handleUpdateCloudVariable(c *gin.Context) { variable.DataType = req.DataType } variable.MaxRecords = req.MaxRecords - if req.WritePermission == "developer" || req.WritePermission == "user" || req.WritePermission == "app_user" { + if req.WritePermission == "admin" || req.WritePermission == "user" || req.WritePermission == "app_user" { variable.WritePermission = req.WritePermission } variable.Description = req.Description @@ -571,8 +571,8 @@ func handleUploadCloudVariable(c *gin.Context) { scope = "app" } - if writePermission != "developer" && writePermission != "user" { - writePermission = "developer" + if writePermission != "admin" && writePermission != "user" { + writePermission = "admin" } var user model.User diff --git a/backend/internal/router/frontend/frontend.go b/backend/internal/router/frontend/frontend.go index ed10ed1..33ac13e 100644 --- a/backend/internal/router/frontend/frontend.go +++ b/backend/internal/router/frontend/frontend.go @@ -130,7 +130,7 @@ func handleRegister(c *gin.Context) { req.Username, req.Email, req.Phone, req.Role, req.Type) if req.Role == "" { - req.Role = "developer" + req.Role = "admin" } username := req.Username @@ -794,7 +794,7 @@ func handleGetPublicStats(c *gin.Context) { var totalApps, totalUsers, totalVerifications int64 database.DB.Model(&model.Application{}).Count(&totalApps) - database.DB.Model(&model.User{}).Where("role = ?", "developer").Count(&totalUsers) + database.DB.Model(&model.User{}).Where("role = ?", "admin").Count(&totalUsers) database.DB.Model(&model.Card{}).Where("status = ?", "used").Count(&totalVerifications) response.Success(c, gin.H{ diff --git a/backend/internal/service/auth.go b/backend/internal/service/auth.go index b238133..6ccc4da 100644 --- a/backend/internal/service/auth.go +++ b/backend/internal/service/auth.go @@ -70,7 +70,7 @@ func (s *AuthService) Login(username, password, agentPath string) (map[string]in // Register 用户注册 func (s *AuthService) Register(username, email, password string) error { - return s.RegisterWithRole(username, email, "", password, "developer") + return s.RegisterWithRole(username, email, "", password, "admin") } // RegisterWithRole 用户注册(带角色) @@ -115,7 +115,7 @@ func (s *AuthService) RegisterWithRole(username, email, phone, password, role st } if role == "" { - role = "developer" + role = "admin" } user := model.User{ diff --git a/database/schema.sql b/database/schema.sql index 24f668b..e5ae468 100644 --- a/database/schema.sql +++ b/database/schema.sql @@ -14,7 +14,7 @@ CREATE TABLE IF NOT EXISTS users ( signature VARCHAR(255) DEFAULT NULL COMMENT '个性签名', points INT DEFAULT 0 COMMENT '积分', level INT DEFAULT 1 COMMENT '等级', - role ENUM('user', 'developer', 'agent', 'admin') DEFAULT 'user' COMMENT '角色', + role ENUM('user', 'agent', 'admin') DEFAULT 'user' COMMENT '角色', status ENUM('active', 'inactive', 'banned') DEFAULT 'active' COMMENT '状态', agent_id BIGINT UNSIGNED DEFAULT NULL COMMENT '所属代理ID', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', diff --git a/frontend/src/components/developer-sidebar/index.vue b/frontend/src/components/developer-sidebar/index.vue index 902f0ba..8af11ca 100644 --- a/frontend/src/components/developer-sidebar/index.vue +++ b/frontend/src/components/developer-sidebar/index.vue @@ -7,10 +7,10 @@ import TeamSwitcher from '@/components/app-sidebar/team-switcher.vue' import NavFooter from '@/components/developer-sidebar/nav-footer.vue' const user = reactive({ - name: '开发者', - email: 'developer@example.com', - avatar: '/avatars/developer.jpg', - role: 'developer', + name: '管理员', + email: 'admin@example.com', + avatar: '/avatars/admin.jpg', + role: 'admin', }) onMounted(() => { diff --git a/frontend/src/components/marketing-layout/the-header.vue b/frontend/src/components/marketing-layout/the-header.vue index 43f3df0..ea2d91d 100644 --- a/frontend/src/components/marketing-layout/the-header.vue +++ b/frontend/src/components/marketing-layout/the-header.vue @@ -228,7 +228,7 @@ watch(route, () => { {{ t('nav.pricing') }} -