(c *gin.Context, ctx *internalhandler.Context)
| 191 | } |
| 192 | |
| 193 | func 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) { |
no test coverage detected