🚑 swagger document authority

This commit is contained in:
landaiqing
2024-09-03 13:23:51 +08:00
parent a925bbc871
commit 2f505d81f5
13 changed files with 383 additions and 131 deletions

View File

@@ -1,11 +1,17 @@
package dto
import "schisandra-cloud-album/model"
import (
"schisandra-cloud-album/model"
)
// AddPermissionRequestDto 添加权限请求dto
type AddPermissionRequestDto struct {
Permissions []model.ScaAuthPermission `json:"permissions"`
Permissions []model.ScaAuthPermission `form:"permissions[]" json:"permissions"`
}
// AddPermissionToRoleRequestDto 添加权限到角色请求dto
type AddPermissionToRoleRequestDto struct {
RoleKey string `json:"role_key"`
Permissions []model.ScaAuthPermission `json:"permissions"`
RoleKey string `json:"role_key"`
Permission string `json:"permission"`
Method string `json:"method"`
}

View File

@@ -21,8 +21,9 @@ var permissionService = service.Service.PermissionService
// @Router /api/auth/permission/add [post]
func (PermissionAPI) AddPermissions(c *gin.Context) {
addPermissionRequestDto := dto.AddPermissionRequestDto{}
err := c.ShouldBindJSON(&addPermissionRequestDto)
err := c.ShouldBind(&addPermissionRequestDto.Permissions)
if err != nil {
global.LOG.Error(err)
return
}
err = permissionService.CreatePermissions(addPermissionRequestDto.Permissions)
@@ -34,3 +35,36 @@ func (PermissionAPI) AddPermissions(c *gin.Context) {
result.OkWithMessage(ginI18n.MustGetMessage(c, "CreatedSuccess"), c)
return
}
// AssignPermissionsToRole 给指定角色分配权限
// @Summary 给指定角色分配权限
// @Description 给指定角色分配权限
// @Tags 权限管理
// @Accept json
// @Produce json
// @Param permissions body dto.AddPermissionToRoleRequestDto true "权限列表"
// @Router /api/auth/permission/assign [post]
func (PermissionAPI) AssignPermissionsToRole(c *gin.Context) {
permissionToRoleRequestDto := dto.AddPermissionToRoleRequestDto{}
err := c.ShouldBind(&permissionToRoleRequestDto)
if err != nil {
global.LOG.Error(err)
result.FailWithMessage(ginI18n.MustGetMessage(c, "AssignFailed"), c)
return
}
policy, err := global.Casbin.AddPolicy(permissionToRoleRequestDto.RoleKey, permissionToRoleRequestDto.Permission, permissionToRoleRequestDto.Method)
if err != nil {
global.LOG.Error(err)
result.FailWithMessage(ginI18n.MustGetMessage(c, "AssignFailed"), c)
return
}
if policy == false {
result.FailWithMessage(ginI18n.MustGetMessage(c, "AssignFailed"), c)
return
}
result.OkWithMessage(ginI18n.MustGetMessage(c, "AssignSuccess"), c)
return
}