MCPcopy
hub / github.com/koderover/zadig / UpdateRoleImpl

Function UpdateRoleImpl

pkg/microservice/user/core/handler/permission/role.go:193–267  ·  view source on GitHub ↗
(c *gin.Context, ctx *internalhandler.Context)

Source from the content-addressed store, hash-verified

191}
192
193func UpdateRoleImpl(c *gin.Context, ctx *internalhandler.Context) {
194
195 data, err := c.GetRawData()
196 if err != nil {
197 log.Errorf("UpdateRole c.GetRawData() err : %v", err)
198 ctx.RespErr = e.ErrInvalidParam.AddErr(err)
199 return
200 }
201 c.Request.Body = io.NopCloser(bytes.NewBuffer(data))
202
203 args := &permission.CreateRoleReq{}
204 if err := c.ShouldBindJSON(args); err != nil {
205 ctx.RespErr = err
206 return
207 }
208
209 err = userhandler.GenerateUserAuthInfo(ctx)
210 if err != nil {
211 ctx.UnAuthorized = true
212 ctx.RespErr = fmt.Errorf("failed to generate user authorization info, error: %s", err)
213 return
214 }
215
216 projectName := c.Query("namespace")
217 if projectName == "" {
218 ctx.RespErr = e.ErrInvalidParam.AddDesc("namespace is empty")
219 return
220 }
221 name := c.Param("name")
222 args.Name = name
223
224 detail := "角色名称:" + args.Name
225 detailEn := "Role Name: " + args.Name
226 internalhandler.InsertDetailedOperationLog(c, ctx.UserName, projectName, setting.OperationSceneProject, "更新", "角色", detail, detailEn, string(data), types.RequestBodyTypeJSON, ctx.Logger, args.Name)
227
228 // authorization checks
229 if !ctx.Resources.IsSystemAdmin {
230 if projectName == "*" {
231 ctx.UnAuthorized = true
232 return
233 }
234 if authInfo, ok := ctx.Resources.ProjectAuthInfo[projectName]; !ok {
235 ctx.UnAuthorized = true
236 return
237 } else if !authInfo.IsProjectAdmin {
238 ctx.UnAuthorized = true
239 return
240 }
241 }
242
243 //licenseStatus, err := plutusenterprise.New().CheckZadigXLicenseStatus()
244 //if err != nil {
245 // ctx.RespErr = fmt.Errorf("failed to validate zadig license status, error: %s", err)
246 // return
247 //}
248 //if !((licenseStatus.Type == plutusenterprise.ZadigSystemTypeProfessional ||
249 // licenseStatus.Type == plutusenterprise.ZadigSystemTypeEnterprise) &&
250 // licenseStatus.Status == plutusenterprise.ZadigXLicenseStatusNormal) {

Callers 2

OpenAPIUpdateRoleFunction · 0.85
UpdateRoleFunction · 0.85

Calls 5

ErrorfFunction · 0.92
UpdateRoleFunction · 0.92
AddErrMethod · 0.80
AddDescMethod · 0.80
ErrorfMethod · 0.45

Tested by

no test coverage detected