MM-58776 - Change Ancillary Permissions API to POST (#27504)

* make /ancillary a post

* remove get from client, fix tests

* Update permissions.yaml
Этот коммит содержится в:
Scott Bishel
2024-07-10 08:12:56 -06:00
коммит произвёл GitHub
родитель 7c2a461de8
Коммит 5d7027a172
4 изменённых файлов: 49 добавлений и 4 удалений

Просмотреть файл

@@ -30,3 +30,32 @@
type: string
"400":
$ref: '#/components/responses/BadRequest'
post:
tags:
- permissions
summary: Return all system console subsection ancillary permissions
description: >
Returns all the ancillary permissions for the corresponding system console
subsection permissions appended to the requested permission subsections.
__Minimum server version__: 9.10
operationId: GetAncillaryPermissionsPost
requestBody:
content:
application/json:
schema:
type: array
items:
type: string
description: List of subsection permissions
required: true
responses:
"200":
description: Successfully returned all ancillary and requested permissions
content:
application/json:
schema:
type: array
items:
type: string
"400":
$ref: '#/components/responses/BadRequest'

Просмотреть файл

@@ -12,7 +12,9 @@ import (
)
func (api *API) InitPermissions() {
// to be deprecated - kept for backward compatibility
api.BaseRoutes.Permissions.Handle("/ancillary", api.APISessionRequired(appendAncillaryPermissions)).Methods("GET")
api.BaseRoutes.Permissions.Handle("/ancillary", api.APISessionRequired(appendAncillaryPermissionsPost)).Methods("POST")
}
func appendAncillaryPermissions(c *Context, w http.ResponseWriter, r *http.Request) {
@@ -32,3 +34,17 @@ func appendAncillaryPermissions(c *Context, w http.ResponseWriter, r *http.Reque
w.Write(b)
}
func appendAncillaryPermissionsPost(c *Context, w http.ResponseWriter, r *http.Request) {
permissions, err := model.NonSortedArrayFromJSON(r.Body)
if err != nil || len(permissions) < 1 {
c.Err = model.NewAppError("appendAncillaryPermissionsPost", model.PayloadParseError, nil, "", http.StatusBadRequest).Wrap(err)
return
}
b, err := json.Marshal(model.AddAncillaryPermissions(permissions))
if err != nil {
c.SetJSONEncodingError(err)
return
}
w.Write(b)
}

Просмотреть файл

@@ -8852,8 +8852,8 @@ func (c *Client4) DeleteRemoteCluster(ctx context.Context, remoteClusterId strin
func (c *Client4) GetAncillaryPermissions(ctx context.Context, subsectionPermissions []string) ([]string, *Response, error) {
var returnedPermissions []string
url := fmt.Sprintf("%s/ancillary?subsection_permissions=%s", c.permissionsRoute(), strings.Join(subsectionPermissions, ","))
r, err := c.DoAPIGet(ctx, url, "")
url := fmt.Sprintf("%s/ancillary", c.permissionsRoute())
r, err := c.DoAPIPost(ctx, url, ArrayToJSON(subsectionPermissions))
if err != nil {
return returnedPermissions, BuildResponse(r), err
}

Просмотреть файл

@@ -4130,8 +4130,8 @@ export default class Client4 {
getAncillaryPermissions = (subsectionPermissions: string[]) => {
return this.doFetch<string[]>(
`${this.getPermissionsRoute()}/ancillary?subsection_permissions=${subsectionPermissions.join(',')}`,
{method: 'get'},
`${this.getPermissionsRoute()}/ancillary`,
{method: 'post', body: JSON.stringify(subsectionPermissions)},
);
};