package v1 import ( "aps_crm/model" "aps_crm/model/request" "aps_crm/pkg/contextx" "aps_crm/pkg/ecode" "github.com/gin-gonic/gin" ) type AuthorityApi struct{} // CreateAuthority // // @Tags Authority // @Summary 创建角色 // @Security ApiKeyAuth // @accept application/json // @Produce application/json // @Param data body request.AddAuthority true "查询参数" // @Success 200 {object} contextx.Response{} // @Router /api/authority/add [post] func (a *AuthorityApi) CreateAuthority(c *gin.Context) { var params request.AddAuthority ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } errCode, auth := checkAuthorityParams(¶ms) if errCode != ecode.OK { ctx.Fail(errCode) return } errCode, auth.Id = authorityService.CreateAuthority(auth) if errCode != ecode.OK { ctx.Fail(errCode) } casbinInfos := append(request.DefaultCasbin(), params.CasbinInfos...) //_ = menuService.AddMenuAuthority(systemReq.DefaultMenu(), authority.Id) _ = casbinService.UpdateCasbin(auth.Id, casbinInfos) ctx.Ok() } //DeleteAuthority //@Tags Authority //@Summary 删除角色 //@Security ApiKeyAuth //@accept application/json //@Produce application/json //@Param data body request.AddAuthority true "删除角色" //@Router /authority/deleteAuthority [post] //func (a *AuthorityApi) DeleteAuthority(c *gin.Context) { // var authority system.SysAuthority // err := c.ShouldBindJSON(&authority) // if err != nil { // response.FailWithMessage(err.Error(), c) // return // } // err = utils.Verify(authority, utils.AuthorityIdVerify) // if err != nil { // response.FailWithMessage(err.Error(), c) // return // } // err = authorityService.DeleteAuthority(&authority) // if err != nil { // 删除角色之前需要判断是否有用户正在使用此角色 // global.GVA_LOG.Error("删除失败!", zap.Error(err)) // response.FailWithMessage("删除失败"+err.Error(), c) // return // } // response.OkWithMessage("删除成功", c) //} // UpdateAuthority // @Tags Authority // @Summary 更新角色信息 // @Security ApiKeyAuth // @accept application/json // @Produce application/json // @Param data body request.AddAuthority true "权限id, 权限名, 父角色id" // @Router /authority/updateAuthority [post] //func (a *AuthorityApi) UpdateAuthority(c *gin.Context) { // var auth system.SysAuthority // err := c.ShouldBindJSON(&auth) // if err != nil { // response.FailWithMessage(err.Error(), c) // return // } // err = utils.Verify(auth, utils.AuthorityVerify) // if err != nil { // response.FailWithMessage(err.Error(), c) // return // } // authority, err := authorityService.UpdateAuthority(auth) // if err != nil { // global.GVA_LOG.Error("更新失败!", zap.Error(err)) // response.FailWithMessage("更新失败"+err.Error(), c) // return // } // response.OkWithDetailed(systemRes.SysAuthorityResponse{Authority: authority}, "更新成功", c) //} // GetAuthorityList // @Tags Authority // @Summary 分页获取角色列表 // @Security ApiKeyAuth // @accept application/json // @Produce application/json // @Param data body request.AddAuthority true "页码, 每页大小" // @Router /authority/getAuthorityList [post] //func (a *AuthorityApi) GetAuthorityList(c *gin.Context) { // var pageInfo request.PageInfo // err := c.ShouldBindJSON(&pageInfo) // if err != nil { // response.FailWithMessage(err.Error(), c) // return // } // err = utils.Verify(pageInfo, utils.PageInfoVerify) // if err != nil { // response.FailWithMessage(err.Error(), c) // return // } // list, total, err := authorityService.GetAuthorityInfoList(pageInfo) // if err != nil { // global.GVA_LOG.Error("获取失败!", zap.Error(err)) // response.FailWithMessage("获取失败"+err.Error(), c) // return // } // response.OkWithDetailed(response.PageResult{ // List: list, // Total: total, // Page: pageInfo.Page, // PageSize: pageInfo.PageSize, // }, "获取成功", c) //} // SetMenuAuthority // // @Tags Authority // @Summary 设置角色菜单 // @Security ApiKeyAuth // @accept application/json // @Produce application/json // @Param data body request.SetAuthorityMenu true "设置角色资源权限" // @Success 200 {object} contextx.Response{} // @Router /api/authority/setMenuAuthority [post] func (a *AuthorityApi) SetMenuAuthority(c *gin.Context) { var params request.SetAuthorityMenu ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } menus, errCode := menuService.GetMenusByIds(params.Menus) if errCode != ecode.OK { ctx.Fail(ecode.MenuListErr) return } auth := model.Authority{ Id: params.AuthorityId, Menus: menus, } err := authorityService.SetMenuAuthority(&auth) if err != nil { ctx.Fail(ecode.SetMenuAuthorityErr) return } ctx.Ok() } func checkAuthorityParams(params *request.AddAuthority) (int, model.Authority) { return ecode.OK, model.Authority{ AuthorityName: params.AuthorityName, } }